juicewrld-api-wrapper


Namejuicewrld-api-wrapper JSON
Version 1.0.4 PyPI version JSON
download
home_pagehttps://github.com/HackinHood/juicewrld-api-wrapper
SummaryA comprehensive Python wrapper for the Juice WRLD API
upload_time2025-09-02 15:35:12
maintainerNone
docs_urlNone
authorJuice WRLD API Wrapper
requires_python>=3.7
licenseNone
keywords juice wrld api wrapper music discography python
VCS
bugtrack_url
requirements requests
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Juice WRLD API Wrapper

[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)

A comprehensive Python wrapper for the Juice WRLD API, providing easy access to Juice WRLD's complete discography including released tracks, unreleased songs, recording sessions, and unsurfaced content.

## Features

- **Full API Coverage**: Access to all Juice WRLD API endpoints
- **Type Safety**: Full type hints and data models
- **Error Handling**: Comprehensive exception handling
- **Context Manager Support**: Safe resource management
- **Search & Filtering**: Advanced song search across all categories
- **File Operations**: Browse, download, and manage audio files
- **Audio Streaming**: Modern streaming support with range requests
- **ZIP Operations**: Create and manage ZIP archives

## Requirements

- **Python**: 3.7+ (for dataclasses support)
- **Dependencies**: Only `requests>=2.28.0` (all other imports are built-in Python modules)

## Installation

### Quick Install (Recommended)
```bash
pip install juicewrld-api-wrapper
```

### Alternative Installation Methods

**From PyPI (Latest Release)**
```bash
pip install juicewrld-api-wrapper
```

**From GitHub Repository (Development Version)**
```bash
pip install git+https://github.com/hackinhood/juicewrld-api-wrapper.git
```

**From Source**
```bash
git clone https://github.com/hackinhood/juicewrld-api-wrapper.git
cd juicewrld-api-wrapper
pip install -e .
```

### Verify Installation
```bash
python -c "from juicewrld_api_wrapper import JuiceWRLDAPI; print('Installation successful!')"
```

## Quick Start

### Basic Usage

```python
from juicewrld_api_wrapper import JuiceWRLDAPI

# Initialize the API client
api = JuiceWRLDAPI()

# Get API overview
overview = api.get_api_overview()

# Search for songs
results = api.search_songs("lucid dreams", limit=10)

# Get songs by category
unreleased = api.get_songs_by_category("unreleased", page=1, page_size=20)

# Close the client
api.close()
```

### Audio Streaming

```python
from juicewrld_api_wrapper import JuiceWRLDAPI

api = JuiceWRLDAPI()

# Stream audio directly
stream_result = api.stream_audio_file("Compilation/2. Unreleased Discography/song.mp3")
if stream_result['status'] == 'success':
    stream_url = stream_result['stream_url']
    print(f"Stream URL: {stream_url}")
    print(f"Supports range: {stream_result['supports_range']}")

# Play songs from player endpoint (uses modern streaming)
play_result = api.play_juicewrld_song(song_id)
if play_result.get('stream_url'):
    print(f"Stream URL: {play_result['stream_url']}")

api.close()
```

### Context Manager Usage

```python
from juicewrld_api_wrapper import JuiceWRLDAPI

with JuiceWRLDAPI() as api:
    stats = api.get_stats()
    print(f"Total songs: {stats.total_songs}")
    
    songs = api.get_songs(category="released", page_size=5)
    for song in songs['results']:
        print(f"- {song.name} ({song.length})")
```

## API Endpoints

### Song Management

- `get_songs()` - Get songs with pagination and filtering
- `get_song()` - Get song by ID
- `search_songs()` - Search songs across all categories
- `get_songs_by_category()` - Get songs by specific category


### Categories & Eras

- `get_categories()` - Get available song categories
- `get_eras()` - Get all musical eras
- `get_stats()` - Get comprehensive statistics

### Audio Streaming

- `stream_audio_file(file_path)` - Stream audio files directly
- `play_juicewrld_song(song_id)` - Get streaming URL for player songs

### File Operations

- `browse_files()` - Browse directory structure
- `download_file()` - Download audio files
- `get_cover_art()` - Extract cover art
- `create_zip()` - Create ZIP archives
- `start_zip_job()` - Start background ZIP creation
- `get_zip_job_status()` - Check ZIP job status
- `cancel_zip_job()` - Cancel ZIP jobs

### Artist & Album Information

- `get_artists()` - Get all artists
- `get_artist()` - Get artist by ID
- `get_albums()` - Get all albums
- `get_album()` - Get album by ID

## Data Models

The wrapper provides structured data models for all entities:

```python
from juicewrld_api_wrapper.models import Song, Artist, Album, Era

# Song object with full metadata
song = Song(
    id=36310,
    name="Hit-Boys 2030",
    category="recording_session",
    era=Era(
        id=34,
        name="DRFL", 
        description="Death Race For Love era (December 2018-December 2019)",
        time_frame="(December 2018-December 2019)"
    ),
    track_titles=["Hit-Boys 2030", "Big"],
    credited_artists="Juice WRLD",
    producers="Corbett, Hit-Boy & TreShaunBeatz",
    engineers="Evan Swayne, Jacob Richards, Jaycen Joshua, Max Lord, Mike Seaberg & Rashawn McLean",
    recording_locations="Blue Room West Recording Studio, West Hollywood, Los Angeles, CA.",
    record_dates="Recorded January 11, 2019.",
    length="",
    session_titles="Big-OG Multitrack.ptx",
    session_tracking="Stem Track Files: 27, Total Vocal Takes: 44",
    instrumental_names="Hit-Boys2030 2018, Big-Instrumental V5 FNL",
    dates="Surfaced July 8, 2023."
)

# Access song metadata
print(f"Song: {song.name}")
print(f"Category: {song.category}")
print(f"Era: {song.era.name} ({song.era.time_frame})")
print(f"Track Titles: {', '.join(song.track_titles)}")
print(f"Producers: {song.producers}")
print(f"Recording Location: {song.recording_locations}")
print(f"Session: {song.session_titles}")
print(f"Stem Tracks: {song.session_tracking}")
```

## Audio Streaming

The wrapper provides modern audio streaming capabilities:

### Direct File Streaming
```python
# Stream any audio file directly
stream_result = api.stream_audio_file("Compilation/2. Unreleased Discography/song.mp3")

if stream_result['status'] == 'success':
    stream_url = stream_result['stream_url']
    content_type = stream_result['content_type']
    supports_range = stream_result['supports_range']
    
    print(f"Stream URL: {stream_url}")
    print(f"Content Type: {content_type}")
    print(f"Range Support: {supports_range}")
```

### Player Song Streaming
```python
# Get streaming URL for songs from player endpoint
play_result = api.play_juicewrld_song(song_id)

if play_result.get('stream_url'):
    stream_url = play_result['stream_url']
    print(f"Stream URL: {stream_url}")
```

### Streaming Features
- **Range Requests**: Support for partial content (206 responses)
- **Content Type Detection**: Automatic audio/mpeg detection
- **File Validation**: Checks if files exist before streaming
- **Error Handling**: Graceful fallback for missing files

## Error Handling

```python
from juicewrld_api_wrapper.exceptions import (
    JuiceWRLDAPIError, 
    RateLimitError, 
    NotFoundError,
    AuthenticationError,
    ValidationError
)

try:
    songs = api.get_songs(category="invalid_category")
except NotFoundError:
    print("Category not found")
except RateLimitError:
    print("Rate limit exceeded")
except AuthenticationError:
    print("Authentication required")
except JuiceWRLDAPIError as e:
    print(f"API error: {e}")
```

## Examples

See `examples.py` for comprehensive usage examples covering:

- Basic API operations
- Song search and filtering
- Audio streaming
- Error handling
- Context manager usage

## Configuration

### Environment Variables

```bash
export JUICE_WRLD_API_
export JUICE_WRLD_API_TIMEOUT="30"
```

## Data Categories

- **Released**: Officially released tracks and albums
- **Unreleased**: Confirmed unreleased songs with metadata
- **Recording Sessions**: Studio session recordings and snippets
- **Unsurfaced**: Rare and unsurfaced content

## Search Capabilities

- **Text Search**: Search by song title, artist, or lyrics
- **Category Filtering**: Filter by release status
- **Era Filtering**: Filter by musical era
- **Year Filtering**: Filter by recording/release year
- **Tag Filtering**: Filter by musical tags

## File Path Structure

The API expects file paths relative to the `comp` directory:

```
comp/
├── Compilation/
│   ├── 1. Released Discography/
│   └── 2. Unreleased Discography/
├── Session Edits/
├── Snippets/
└── Original Files/
```

**Example paths:**
- `"Compilation/2. Unreleased Discography/1. JUICED UP THE EP (Sessions)/Ain't Talkin' Toronto (feat. JuiceTheKidd).mp3"`
- `"Snippets/Auto/Auto.mp4"`
- `"Session Edits/song.mp3"`

## Rate Limiting

The wrapper respects API rate limits:
- Search queries: 100 requests/minute
- File downloads: 50 requests/minute
- ZIP creation: 10 requests/minute
- Audio streaming: 30 requests/minute

## Contributing

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Add tests if applicable
5. Submit a pull request

## Project Status

- **Version**: 1.0.4
- **Status**: Production Ready
- **Python Support**: 3.7+
- **Dependencies**: Minimal (only requests)

## Support

For support or questions:
- Check the examples in `examples.py`
- Review the API documentation in `API_ENDPOINTS.md`
- Open an issue on GitHub
- Check the [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines

## Changelog

### v1.0.0
- Initial release
- Full API coverage
- Comprehensive error handling
- Type hints and data models
- Audio streaming support
- ZIP operations
- Modern files/download endpoint integration


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/HackinHood/juicewrld-api-wrapper",
    "name": "juicewrld-api-wrapper",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "Juice WRLD API Wrapper <support@juicewrldapi.com>",
    "keywords": "juice wrld, api, wrapper, music, discography, python",
    "author": "Juice WRLD API Wrapper",
    "author_email": "Juice WRLD API Wrapper <support@juicewrldapi.com>",
    "download_url": "https://files.pythonhosted.org/packages/71/06/5c3dd0e69743466e9250fe3ef419eefc64a2afb2803b09e98ee6182ea1cb/juicewrld_api_wrapper-1.0.4.tar.gz",
    "platform": null,
    "description": "# Juice WRLD API Wrapper\r\n\r\n[![Python 3.7+](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)\r\n\r\nA comprehensive Python wrapper for the Juice WRLD API, providing easy access to Juice WRLD's complete discography including released tracks, unreleased songs, recording sessions, and unsurfaced content.\r\n\r\n## Features\r\n\r\n- **Full API Coverage**: Access to all Juice WRLD API endpoints\r\n- **Type Safety**: Full type hints and data models\r\n- **Error Handling**: Comprehensive exception handling\r\n- **Context Manager Support**: Safe resource management\r\n- **Search & Filtering**: Advanced song search across all categories\r\n- **File Operations**: Browse, download, and manage audio files\r\n- **Audio Streaming**: Modern streaming support with range requests\r\n- **ZIP Operations**: Create and manage ZIP archives\r\n\r\n## Requirements\r\n\r\n- **Python**: 3.7+ (for dataclasses support)\r\n- **Dependencies**: Only `requests>=2.28.0` (all other imports are built-in Python modules)\r\n\r\n## Installation\r\n\r\n### Quick Install (Recommended)\r\n```bash\r\npip install juicewrld-api-wrapper\r\n```\r\n\r\n### Alternative Installation Methods\r\n\r\n**From PyPI (Latest Release)**\r\n```bash\r\npip install juicewrld-api-wrapper\r\n```\r\n\r\n**From GitHub Repository (Development Version)**\r\n```bash\r\npip install git+https://github.com/hackinhood/juicewrld-api-wrapper.git\r\n```\r\n\r\n**From Source**\r\n```bash\r\ngit clone https://github.com/hackinhood/juicewrld-api-wrapper.git\r\ncd juicewrld-api-wrapper\r\npip install -e .\r\n```\r\n\r\n### Verify Installation\r\n```bash\r\npython -c \"from juicewrld_api_wrapper import JuiceWRLDAPI; print('Installation successful!')\"\r\n```\r\n\r\n## Quick Start\r\n\r\n### Basic Usage\r\n\r\n```python\r\nfrom juicewrld_api_wrapper import JuiceWRLDAPI\r\n\r\n# Initialize the API client\r\napi = JuiceWRLDAPI()\r\n\r\n# Get API overview\r\noverview = api.get_api_overview()\r\n\r\n# Search for songs\r\nresults = api.search_songs(\"lucid dreams\", limit=10)\r\n\r\n# Get songs by category\r\nunreleased = api.get_songs_by_category(\"unreleased\", page=1, page_size=20)\r\n\r\n# Close the client\r\napi.close()\r\n```\r\n\r\n### Audio Streaming\r\n\r\n```python\r\nfrom juicewrld_api_wrapper import JuiceWRLDAPI\r\n\r\napi = JuiceWRLDAPI()\r\n\r\n# Stream audio directly\r\nstream_result = api.stream_audio_file(\"Compilation/2. Unreleased Discography/song.mp3\")\r\nif stream_result['status'] == 'success':\r\n    stream_url = stream_result['stream_url']\r\n    print(f\"Stream URL: {stream_url}\")\r\n    print(f\"Supports range: {stream_result['supports_range']}\")\r\n\r\n# Play songs from player endpoint (uses modern streaming)\r\nplay_result = api.play_juicewrld_song(song_id)\r\nif play_result.get('stream_url'):\r\n    print(f\"Stream URL: {play_result['stream_url']}\")\r\n\r\napi.close()\r\n```\r\n\r\n### Context Manager Usage\r\n\r\n```python\r\nfrom juicewrld_api_wrapper import JuiceWRLDAPI\r\n\r\nwith JuiceWRLDAPI() as api:\r\n    stats = api.get_stats()\r\n    print(f\"Total songs: {stats.total_songs}\")\r\n    \r\n    songs = api.get_songs(category=\"released\", page_size=5)\r\n    for song in songs['results']:\r\n        print(f\"- {song.name} ({song.length})\")\r\n```\r\n\r\n## API Endpoints\r\n\r\n### Song Management\r\n\r\n- `get_songs()` - Get songs with pagination and filtering\r\n- `get_song()` - Get song by ID\r\n- `search_songs()` - Search songs across all categories\r\n- `get_songs_by_category()` - Get songs by specific category\r\n\r\n\r\n### Categories & Eras\r\n\r\n- `get_categories()` - Get available song categories\r\n- `get_eras()` - Get all musical eras\r\n- `get_stats()` - Get comprehensive statistics\r\n\r\n### Audio Streaming\r\n\r\n- `stream_audio_file(file_path)` - Stream audio files directly\r\n- `play_juicewrld_song(song_id)` - Get streaming URL for player songs\r\n\r\n### File Operations\r\n\r\n- `browse_files()` - Browse directory structure\r\n- `download_file()` - Download audio files\r\n- `get_cover_art()` - Extract cover art\r\n- `create_zip()` - Create ZIP archives\r\n- `start_zip_job()` - Start background ZIP creation\r\n- `get_zip_job_status()` - Check ZIP job status\r\n- `cancel_zip_job()` - Cancel ZIP jobs\r\n\r\n### Artist & Album Information\r\n\r\n- `get_artists()` - Get all artists\r\n- `get_artist()` - Get artist by ID\r\n- `get_albums()` - Get all albums\r\n- `get_album()` - Get album by ID\r\n\r\n## Data Models\r\n\r\nThe wrapper provides structured data models for all entities:\r\n\r\n```python\r\nfrom juicewrld_api_wrapper.models import Song, Artist, Album, Era\r\n\r\n# Song object with full metadata\r\nsong = Song(\r\n    id=36310,\r\n    name=\"Hit-Boys 2030\",\r\n    category=\"recording_session\",\r\n    era=Era(\r\n        id=34,\r\n        name=\"DRFL\", \r\n        description=\"Death Race For Love era (December 2018-December 2019)\",\r\n        time_frame=\"(December 2018-December 2019)\"\r\n    ),\r\n    track_titles=[\"Hit-Boys 2030\", \"Big\"],\r\n    credited_artists=\"Juice WRLD\",\r\n    producers=\"Corbett, Hit-Boy & TreShaunBeatz\",\r\n    engineers=\"Evan Swayne, Jacob Richards, Jaycen Joshua, Max Lord, Mike Seaberg & Rashawn McLean\",\r\n    recording_locations=\"Blue Room West Recording Studio, West Hollywood, Los Angeles, CA.\",\r\n    record_dates=\"Recorded January 11, 2019.\",\r\n    length=\"\",\r\n    session_titles=\"Big-OG Multitrack.ptx\",\r\n    session_tracking=\"Stem Track Files: 27, Total Vocal Takes: 44\",\r\n    instrumental_names=\"Hit-Boys2030 2018, Big-Instrumental V5 FNL\",\r\n    dates=\"Surfaced July 8, 2023.\"\r\n)\r\n\r\n# Access song metadata\r\nprint(f\"Song: {song.name}\")\r\nprint(f\"Category: {song.category}\")\r\nprint(f\"Era: {song.era.name} ({song.era.time_frame})\")\r\nprint(f\"Track Titles: {', '.join(song.track_titles)}\")\r\nprint(f\"Producers: {song.producers}\")\r\nprint(f\"Recording Location: {song.recording_locations}\")\r\nprint(f\"Session: {song.session_titles}\")\r\nprint(f\"Stem Tracks: {song.session_tracking}\")\r\n```\r\n\r\n## Audio Streaming\r\n\r\nThe wrapper provides modern audio streaming capabilities:\r\n\r\n### Direct File Streaming\r\n```python\r\n# Stream any audio file directly\r\nstream_result = api.stream_audio_file(\"Compilation/2. Unreleased Discography/song.mp3\")\r\n\r\nif stream_result['status'] == 'success':\r\n    stream_url = stream_result['stream_url']\r\n    content_type = stream_result['content_type']\r\n    supports_range = stream_result['supports_range']\r\n    \r\n    print(f\"Stream URL: {stream_url}\")\r\n    print(f\"Content Type: {content_type}\")\r\n    print(f\"Range Support: {supports_range}\")\r\n```\r\n\r\n### Player Song Streaming\r\n```python\r\n# Get streaming URL for songs from player endpoint\r\nplay_result = api.play_juicewrld_song(song_id)\r\n\r\nif play_result.get('stream_url'):\r\n    stream_url = play_result['stream_url']\r\n    print(f\"Stream URL: {stream_url}\")\r\n```\r\n\r\n### Streaming Features\r\n- **Range Requests**: Support for partial content (206 responses)\r\n- **Content Type Detection**: Automatic audio/mpeg detection\r\n- **File Validation**: Checks if files exist before streaming\r\n- **Error Handling**: Graceful fallback for missing files\r\n\r\n## Error Handling\r\n\r\n```python\r\nfrom juicewrld_api_wrapper.exceptions import (\r\n    JuiceWRLDAPIError, \r\n    RateLimitError, \r\n    NotFoundError,\r\n    AuthenticationError,\r\n    ValidationError\r\n)\r\n\r\ntry:\r\n    songs = api.get_songs(category=\"invalid_category\")\r\nexcept NotFoundError:\r\n    print(\"Category not found\")\r\nexcept RateLimitError:\r\n    print(\"Rate limit exceeded\")\r\nexcept AuthenticationError:\r\n    print(\"Authentication required\")\r\nexcept JuiceWRLDAPIError as e:\r\n    print(f\"API error: {e}\")\r\n```\r\n\r\n## Examples\r\n\r\nSee `examples.py` for comprehensive usage examples covering:\r\n\r\n- Basic API operations\r\n- Song search and filtering\r\n- Audio streaming\r\n- Error handling\r\n- Context manager usage\r\n\r\n## Configuration\r\n\r\n### Environment Variables\r\n\r\n```bash\r\nexport JUICE_WRLD_API_\r\nexport JUICE_WRLD_API_TIMEOUT=\"30\"\r\n```\r\n\r\n## Data Categories\r\n\r\n- **Released**: Officially released tracks and albums\r\n- **Unreleased**: Confirmed unreleased songs with metadata\r\n- **Recording Sessions**: Studio session recordings and snippets\r\n- **Unsurfaced**: Rare and unsurfaced content\r\n\r\n## Search Capabilities\r\n\r\n- **Text Search**: Search by song title, artist, or lyrics\r\n- **Category Filtering**: Filter by release status\r\n- **Era Filtering**: Filter by musical era\r\n- **Year Filtering**: Filter by recording/release year\r\n- **Tag Filtering**: Filter by musical tags\r\n\r\n## File Path Structure\r\n\r\nThe API expects file paths relative to the `comp` directory:\r\n\r\n```\r\ncomp/\r\n\u251c\u2500\u2500 Compilation/\r\n\u2502   \u251c\u2500\u2500 1. Released Discography/\r\n\u2502   \u2514\u2500\u2500 2. Unreleased Discography/\r\n\u251c\u2500\u2500 Session Edits/\r\n\u251c\u2500\u2500 Snippets/\r\n\u2514\u2500\u2500 Original Files/\r\n```\r\n\r\n**Example paths:**\r\n- `\"Compilation/2. Unreleased Discography/1. JUICED UP THE EP (Sessions)/Ain't Talkin' Toronto (feat. JuiceTheKidd).mp3\"`\r\n- `\"Snippets/Auto/Auto.mp4\"`\r\n- `\"Session Edits/song.mp3\"`\r\n\r\n## Rate Limiting\r\n\r\nThe wrapper respects API rate limits:\r\n- Search queries: 100 requests/minute\r\n- File downloads: 50 requests/minute\r\n- ZIP creation: 10 requests/minute\r\n- Audio streaming: 30 requests/minute\r\n\r\n## Contributing\r\n\r\n1. Fork the repository\r\n2. Create a feature branch\r\n3. Make your changes\r\n4. Add tests if applicable\r\n5. Submit a pull request\r\n\r\n## Project Status\r\n\r\n- **Version**: 1.0.4\r\n- **Status**: Production Ready\r\n- **Python Support**: 3.7+\r\n- **Dependencies**: Minimal (only requests)\r\n\r\n## Support\r\n\r\nFor support or questions:\r\n- Check the examples in `examples.py`\r\n- Review the API documentation in `API_ENDPOINTS.md`\r\n- Open an issue on GitHub\r\n- Check the [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines\r\n\r\n## Changelog\r\n\r\n### v1.0.0\r\n- Initial release\r\n- Full API coverage\r\n- Comprehensive error handling\r\n- Type hints and data models\r\n- Audio streaming support\r\n- ZIP operations\r\n- Modern files/download endpoint integration\r\n\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive Python wrapper for the Juice WRLD API",
    "version": "1.0.4",
    "project_urls": {
        "Bug Tracker": "https://github.com/HackinHood/juicewrld-api-wrapper/issues",
        "Documentation": "https://github.com/HackinHood/juicewrld-api-wrapper#readme",
        "Homepage": "https://github.com/HackinHood/juicewrld-api-wrapper",
        "Repository": "https://github.com/HackinHood/juicewrld-api-wrapper",
        "Source Code": "https://github.com/HackinHood/juicewrld-api-wrapper"
    },
    "split_keywords": [
        "juice wrld",
        " api",
        " wrapper",
        " music",
        " discography",
        " python"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fe1c48d81997f63721966df68857df3f791672d61e50b573d6011a2bac893a7c",
                "md5": "95674fcec0b73040ecae65cba814db17",
                "sha256": "1198347ed179e8c73e8546b3902c3111f41188e44e7fc0ee8e0ac5b9cf66e141"
            },
            "downloads": -1,
            "filename": "juicewrld_api_wrapper-1.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "95674fcec0b73040ecae65cba814db17",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 19340,
            "upload_time": "2025-09-02T15:35:11",
            "upload_time_iso_8601": "2025-09-02T15:35:11.303236Z",
            "url": "https://files.pythonhosted.org/packages/fe/1c/48d81997f63721966df68857df3f791672d61e50b573d6011a2bac893a7c/juicewrld_api_wrapper-1.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "71065c3dd0e69743466e9250fe3ef419eefc64a2afb2803b09e98ee6182ea1cb",
                "md5": "6ad699e46e3a31c0bc3aa1c2e855cefe",
                "sha256": "5c72f5057d369f0820c967de649e315fc89e06b489c2e5c941ae26d149a752eb"
            },
            "downloads": -1,
            "filename": "juicewrld_api_wrapper-1.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "6ad699e46e3a31c0bc3aa1c2e855cefe",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 23890,
            "upload_time": "2025-09-02T15:35:12",
            "upload_time_iso_8601": "2025-09-02T15:35:12.133316Z",
            "url": "https://files.pythonhosted.org/packages/71/06/5c3dd0e69743466e9250fe3ef419eefc64a2afb2803b09e98ee6182ea1cb/juicewrld_api_wrapper-1.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-02 15:35:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "HackinHood",
    "github_project": "juicewrld-api-wrapper",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.28.0"
                ]
            ]
        }
    ],
    "lcname": "juicewrld-api-wrapper"
}
        
Elapsed time: 2.04355s