bunkr-api
Modular Python toolkit and API wrapper for Bunkr
Search, catalog, download, and stream media with a high-performance interactive terminal UI.
Features • Installation • Quick Start • Usage
🚀 Version Status
| Component | Status | Notes |
|---|---|---|
| Scraper | ✅ Working | TLS Impersonation (Chrome) for deep metadata resolution. |
| Downloader | ✅ Working | Multi-threaded segmented retrieval via yt-dlp. |
| Streamer | ✅ Working | Real-time IPC syncing with mpv. |
| Database | ✅ Working | Persistent SQLite tracking in ~/.bunkr_api/. |
✨ Features
- Interactive Dashboard: A full-featured terminal hub to manage your catalog, staged files, and downloads.
- Deep Resolution: Automatically extracts raw asset IDs from
window.albumFilesJavaScript arrays. - High-Speed Downloads: Parallel multi-worker queue powered by the industry-standard
yt-dlpengine. - Direct Streaming: Play content instantly via
mpvorvlcwith temporary playlist (M3U) generation. - Token Maintenance: Automated "Escape Hatch" logic to renew expiring signed CDN signatures.
- Developer Friendly: Clean Python API (
BunkrAPI) for integration into third-party scripts.
📦 Installation
CLI (Recommended)
# Using uv (fastest)
uv tool install bunkr-api
# Using pip
pip install bunkr-api
Windows users:
uv tool installplaces executables in%USERPROFILE%\.local\bin, which is not onPATHby default on Windows (unlike most Linux/macOS setups). Ifbunkr-api,bunkr-api download, etc. aren't recognized after install, run:uv tool update-shellthen restart your terminal. Alternatively, for just the current session:
$env:PATH = "$env:USERPROFILE\.local\bin;$env:PATH".
From Source (Editable)
git clone https://github.com/mrflattire/bunkr-api.git
cd bunkr-api
pip install -e .
Media Players (Required for Streaming)
To stream content directly, ensure one of the following is installed on your system:
Linux
# Ubuntu/Debian
sudo apt install mpv
# Fedora/RHEL
sudo dnf install mpv
# Arch Linux
sudo pacman -S mpv
macOS
brew install mpv
Windows
Download from mpv.io/installation.
🛠 Prerequisites
Unlike standard video tools, FFmpeg is not a prerequisite for this package. The core requirements are:
- Python 3.12 or higher.
- yt-dlp (installed automatically via dependencies).
- mpv or vlc (if you intend to use the streaming features).
🚦 Quick Start
Command Line Interface
bunkr-api is a single command. Run it bare for the interactive dashboard, or give it a subcommand for scripting:
# Launch the main interactive catalog menu
bunkr-api
# Search for a creator and catalog their albums
bunkr-api scrape "creator_name"
# Download a specific album by its database ID
bunkr-api download --db-id 5 --workers 5
# Stream a specific album directly to MPV
bunkr-api stream --db-id 5
| Command | What it does |
|---|---|
bunkr-api |
Interactive dashboard (no arguments) |
bunkr-api scrape [QUERY] |
Search, or browse trending with --top, and catalog an album |
bunkr-api download |
Download an album (--db-id), staged files (--staged), or failed files (--triage) |
bunkr-api stream |
Stream an album or staged files in mpv/VLC |
bunkr-api open ID |
Open an album already in the database |
bunkr-api import FILE |
Import a legacy JSON metadata file and open it |
bunkr-api mint |
Refresh expiring CDN tokens (daemon, or one album with -a ID) |
bunkr-api inspect |
Database reports, staging and maintenance |
Every command has its own -h, e.g. bunkr-api download -h.
Scripting notes
- Commands exit
0on success (including "nothing to do", such as an empty--stagedqueue),1on a runtime failure (album or file not found),2on a usage error, and130when interrupted. - When no source is given,
downloadandstreambrowse interactively only on a terminal; under cron or a pipe they exit2with a message instead of waiting for input. - The pre-subcommand binaries (
bunkr-scrape,bunkr-download,bunkr-stream,bunkr-inspect,bunkr-mint) still work as aliases for the matching subcommand.
Python API
import asyncio
from bunkr_api import BunkrAPI
async def main():
api = BunkrAPI()
# Programmatic search and resolution
results = await api.search("Natalie Roush")
if results:
album_id = await api.resolve_album(results[0]['url'])
print(f"Album registered with ID: {album_id}")
# Trigger parallel download
await api.download_album(album_id, workers=3)
asyncio.run(main())
📖 Detailed Usage & Advanced Workflows
Main Dashboard Interface (`bunkr-api`)
The primary entry point of the toolkit. Run with no arguments it opens an interactive hub for managing your entire media catalog; with a subcommand it runs that one task and exits (see the sections below).
bunkr-api # interactive dashboard
bunkr-api <command> ... # scrape | download | stream | open | import | mint | inspect
Common Examples:
# Launch the main interactive catalog menu
bunkr-api
# Jump directly to a specific album detail view by its Database ID
bunkr-api open 17
# Import a local JSON metadata file and view it immediately
bunkr-api import ./album_metadata.json
# Search and resolve an album directly from the command line
bunkr-api scrape "Natalie Roush" --mode broad --per 40 --sort latest
Main Catalog Commands:
Inside the main menu, use these single-character commands:
| Key | Action |
|---|---|
s |
Search / Scrape: Enter a creator name to find and catalog new albums. |
t |
Trending: Browse the most popular videos, images, or files from the last 24h/7d. |
d |
Delete: Remove albums from your database (supports single IDs, lists, or ranges). |
q |
Quit: Safely exit the application. |
The Album Detail View:
Once inside an album, the "Action Context" menu allows for granular media control:
- Stream target(s): Launch your media player (MPV/VLC). Supports range selection.
- Download target(s): Queue specific files for multi-threaded download.
- Download ALL: Immediately begin retrieving every file in the album.
- Copy link: Output the specific signed CDN URL for the chosen track to the terminal.
- Mint new tokens: Triggers a manual batch refresh of CDN signatures with a real-time progress bar.
- Stage/Unstage: Flag specific items (or the whole album) for later batch retrieval.
- Navigation (
n/p): Flip through pages of large asset inventories.
Upgrading from the bare-argument form?
bunkr-api 17,bunkr-api "query",bunkr-api --db-id 17andbunkr-api -i file.jsonstill work for now: they are translated toopen,scrapeandimportwith a deprecation note on stderr. Prefer the explicit subcommands in scripts.
Why this command is the best choice for users:
- Centralized Control: You never need to leave this interface to perform 99% of your tasks.
- State Management: It automatically saves your progress; if you "Stage" items, they stay staged until you decide to download them.
- Visual Feedback: Uses the full power of the
Richlibrary to provide a clean, color-coded view of your library's health and token status.
Downloader (`bunkr-api download`)
A high-performance retrieval engine that utilizes a multi-threaded worker pool and the yt-dlp backend to maximize your bandwidth. It handles token resolution and directory organization automatically.
bunkr-api download [OPTIONS]
Common Examples:
# Download an entire album using 5 concurrent workers
bunkr-api download --db-id 17 --workers 5
# Download a specific range of files (e.g., first five files)
bunkr-api download --db-id 17 --number 1-5
# The Triage Workflow: Retry all files currently marked as 'FAILED' in the DB
bunkr-api download --triage --workers 3
# The Staged Workflow: Download everything globally marked as 'STAGED'
bunkr-api download --staged
# Point a download to a specific external hard drive path
bunkr-api download --db-id 17 -o "D:/Media/Archive"
Available Options:
| Option | Description |
|---|---|
--db-id |
The unique ID of the album in your SQLite database. |
-w, --workers |
Number of concurrent download threads (Default: 1, Max: 5). |
-n, --number |
Restrict download to specific indices (supports 1,2, 1-5, or all). |
-o, --output |
Override the default download directory for this specific run. |
--staged |
Process all items globally flagged as staged across the entire database. |
--triage |
Automatically aggregate and retry all items with a FAILED download status. |
-i, --input |
Path to a local legacy JSON file to download without using the database. |
Interactive Mode: If you run
bunkr-api downloadin a terminal without choosing a source (--db-id,--staged,--triage,-i), it launches a catalog browser identical to the main dashboard, allowing you to pick an album and specify workers visually. Without a terminal (cron, pipes) it exits with an error instead of waiting for input. The source options are mutually exclusive.
Why this command is useful:
- Error Recovery: The
--triageflag is the fastest way to clean up a catalog that had network interruptions during a large batch. - Automation: It is perfect for headless environments or cron jobs (e.g.,
bunkr-api download --stagedrunning every night). - Resource Management: You can precisely control system load by adjusting the
--workersflag based on your current internet speed and CPU availability.
Streamer (`bunkr-api stream`)
Stream content directly to your media player without downloading. This command automatically triggers the "Escape Hatch" to refresh any expired tokens before playback starts.
bunkr-api stream --db-id ID [OPTIONS]
Common Examples:
# Stream an entire album by its Database ID
bunkr-api stream --db-id 17
# Stream a specific selection (e.g., tracks 1, 5, and 10 through 15)
bunkr-api stream --db-id 17 --number 1,5,10-15
# Force playback in VLC instead of the default MPV
bunkr-api stream --db-id 17 --player vlc
# Stream everything currently marked as 'STAGED' in your database
bunkr-api stream --staged
Available Options:
| Option | Description |
|---|---|
--db-id |
The unique ID of the album in your SQLite database. |
-n, --number |
Restrict playback to specific indices (supports 1,2, 1-5, or all). |
--player |
Choose your backend engine: mpv (default) or vlc. |
--staged |
Bypass album IDs and stream all items globally flagged as staged. |
Note on MPV: When using MPV,
bunkr-apiopens a JSON IPC server. This allows the terminal to show you exactly which track is playing, the current timestamp, and the buffer/cache duration in real-time.
Why this command is useful:
- Low Latency: It bypasses the Main Menu logic, allowing you to start video playback in one command.
- Headless Maintenance: If you know an album ID, you can start a stream without ever seeing the catalog list.
- Staging Workflow: You can spend time "Staging" items via
bunkr-apiorbunkr-api inspect, and then later just runbunkr-api stream --stagedto play your curated queue.
Scraper (`bunkr-api scrape`)
A deep-resolution engine designed to discover albums, extract asset metadata, and synchronize findings with your local database. Bypasses detection and provides real-time feedback during the resolution process.
bunkr-api scrape [QUERY] [OPTIONS]
Common Examples:
# Search for a creator and enter the interactive selection menu
bunkr-api scrape "InpossibleOreo"
# Perform a strict search with high result volume and custom sorting
bunkr-api scrape "Natalie" --mode strict --per 60 --sort mostfiles
# Browse trending videos from the last 24 hours
bunkr-api scrape --top videos
# Archive metadata to a specific folder without using the default export path
bunkr-api scrape "CreatorName" --save-json --output "C:/Backups/Bunkr_Metadata"
Available Options:
| Option | Description |
|---|---|
search |
The positional query string (e.g., creator name or album title). |
-m, --mode |
Filtering execution mode: broad, strict, fuzzy, substring, whole. |
-p, --per |
Total results requested per page: 20, 40, 60, 100. |
-s, --sort |
Result array sorting metric: latest, oldest, mostfiles. |
-t, --top [CATEGORY] |
Browse trending instead of searching: albums, videos, files, images (omit the category to be asked). Cannot be combined with a query. |
--save-json |
Export the resolved album metadata to a .json file. |
-o, --output |
Override the default directory for JSON exports. |
After the selection: once you pick an album it is cataloged in the database and its detail view opens, so you can stream, download or stage it straight away.
Deep Resolution Intelligence: Unlike basic scrapers,
bunkr-api scrapeperforms a deep resolution. It navigates into your selected album, parses the internal JavaScript state, and extracts the True IDs required for streaming and downloading.
Why this command is useful:
- Direct Cataloging: It is the primary way to "feed" your database. Any album resolved here becomes immediately available in
bunkr-api,bunkr-api download, andbunkr-api stream. - Metadata Archival: By using
--save-json, you can create a portable snapshot of an album's contents (including original filenames and sizes) before a link potentially goes dead. - Bypass Navigation: If you know exactly what you are looking for, flags like
--mode strictand--sort mostfilesget you to the correct result much faster than manual browsing.
System Management (`bunkr-api inspect`)
The "Swiss Army Knife" for your local database. bunkr-api inspect allows you to generate reports, manage staging queues, and perform database maintenance or schema migrations without writing raw SQL.
bunkr-api inspect [COMMAND] [TARGET] [OPTIONS]
Common Examples:
# View a global summary of your database health and pipeline metrics
bunkr-api inspect view dashboard
# Get a detailed per-album breakdown of completion % and total sizes
bunkr-api inspect view albums
# Dump every internal field for a specific album (useful for debugging IDs)
bunkr-api inspect view album --id 11
# Stage a range of assets globally for the next download run
bunkr-api inspect stage asset 50-100
# Repair metadata drift: Recompute file counts and aggregate sizes from actual records
bunkr-api inspect db --recount
# Permanently delete specific albums and their associated file records
bunkr-api inspect db --wipe 12,15-20
Available Sub-Commands:
1. view (Reporting)
| Target | Description |
|---|---|
dashboard |
The default view. Shows row counts and success/fail metrics for all tables. |
albums |
Summarizes every album: completeness, failed counts, and formatted size. |
expiring |
Identifies assets with missing or near-expired security tokens. |
staged |
Groups all currently staged items by their parent album. |
album |
Requires --id. A deep, untruncated dump of an album and its files. |
[table_name] |
Performs a raw dump of any table (e.g., assets or system_config). |
2. stage (Queue Management)
Used to flag items for batch actions in bunkr-api download or bunkr-api stream.
- Targets:
album(cascades to all files) orasset(individual files). - Selection: Supports IDs, comma-separated lists, ranges, or
all. - Options: Use
--offto remove the staging flag.
3. db (Maintenance & Write Ops)
| Option | Description |
|---|---|
--wipe [IDS] |
Deletes albums. Use --wipe all to clear everything except settings. |
--recount |
Fixes UI drift by recalculating file_count from the actual assets table. |
--exec "SQL" |
Runs a raw write-statement (UPDATE/DELETE/VACUUM) with confirmation. |
--nuke |
Factory reset. Drops all tables and resets config to defaults. |
-y, --yes |
Skips confirmation prompts for destructive operations. |
Raw Table Dumps: You can filter any raw table view using
--search "text"or change the output volume with--limit 50or--all.
Why this command is useful:
- Data Integrity: If the scraper crashes mid-way,
--recountensures your dashboard doesn't show "33 files" when only 10 were successfully cataloged. - Audit Logs:
view expiringhelps you predict which downloads might fail before you even start them. - Schema Evolution: As the project grows,
add-columnallows you to update your local database structure without losing your existing history.
Token Maintenance (`bunkr-api mint`)
A dedicated maintenance utility designed to keep your media library "hot." Because Bunkr CDN links use 2-hour time-limited expiration (ex) timestamps, they eventually stop working. bunkr-api mint automates the process of fetching fresh signatures using the stored True IDs in your database.
bunkr-api mint [OPTIONS]
Common Examples:
# Launch the background daemon
# This will poll your entire database every 60s and refresh tokens near expiry
bunkr-api mint
# Perform a one-shot targeted refresh for a specific album and then exit
bunkr-api mint --album-id 17
Available Options:
| Option | Description |
|---|---|
-a, --album-id |
Target a specific album for a single maintenance pass. |
-h, --help |
Show the help message and exit. |
The "Escape Hatch" Workflow:
While the main bunkr-api dashboard triggers an automated "Escape Hatch" refresh when you start a stream or download, running bunkr-api mint in a separate terminal window is the recommended workflow for heavy users.
- Concurrency: Uses a semaphore-controlled worker pool to refresh dozens of tokens simultaneously without hitting rate limits.
- Progress Tracking: Features a real-time
Richprogress bar and spinner so you can see exactly which assets are being updated. - Database Sync: Automatically updates the
signed_cdn_urlandtoken_expiry_timestampcolumns in your SQLite database.
Pro Tip: If you are planning a massive download session (100+ files), run
bunkr-api mintin the background first to ensure every link is valid before the download engine starts.
Why this command is useful:
- Continuous Uptime: Keeps your catalog ready for instant streaming at any time, even weeks after the initial scrape.
- Headless Operations: Can be run on a server or a separate monitor to act as a "watchdog" for your media library.
- Low Overhead: The daemon stays idle most of the time, only consuming network resources when tokens are actually nearing their expiration window (default 10 minutes).
Python API (`BunkrAPI`)
Everything the CLI tools do is also available as a plain Python library, so you can script your own workflows, like cron jobs, batch imports, custom dashboards, all without touching the terminal UI at all. BunkrAPI is a single facade class wrapping the scraper, downloader, player, and database.
from bunkr_api import BunkrAPI
api = BunkrAPI() # uses the same ~/.bunkr_api/media_tracker.db as the CLI tools
Async by design: nearly every method that touches the network, disk, or a subprocess is
async defincludingdownload_album, which internally spawns a real worker pool vialoop.run_in_executor()rather than blocking. This means you can safelyawaitthese from inside your own event loop (e.g. a web server request handler) without deadlocking. The only fully synchronous methods are the pure catalog lookups (get_albums,get_album,get_assets,get_valid_url) anddelete_album. If you're writing a simple standalone script (not already inside an event loop), wrap your entry point inasyncio.run(...)as shown in every example below.
Full Method Reference:
Catalog & Retrieval (sync)
| Method | Description |
|---|---|
get_albums() |
Returns every cataloged album as a list of dicts. |
get_album(album_id) |
Returns a single album's metadata, or None if it doesn't exist. |
get_assets(album_id) |
Returns every asset belonging to an album. |
get_valid_url(asset_id) |
Returns a fresh, valid signed CDN URL for one asset, re-minting automatically if the cached token is missing or expiring soon. |
Scraping & Resolution (async)
| Method | Description |
|---|---|
search(term, mode="broad", per=20, sort="latest") |
Programmatic search. Returns a list of album dicts (title, url, file_count). |
resolve_album(url, search_context="API_User", save_json=False) |
Scrapes and registers a bunkr album URL. Returns the new database ID. |
resolve_and_download(url, workers=3, output_dir=..., save_json=False) |
One-shot convenience: resolve_album() immediately followed by download_album(). Returns the database ID. |
Media Execution (async)
| Method | Description |
|---|---|
download_album(album_id, workers=3, output_dir=...) |
Multi-threaded download for a whole album. Raises ValueError if the album doesn't exist. |
download_staged(workers=3, output_dir=...) |
Downloads everything currently flagged as staged (see bunkr-api inspect stage or the dashboard's 6 action). A no-op if nothing is staged. |
retry_failed(workers=3, output_dir=...) |
Retries every asset currently marked FAILED. A no-op if nothing has failed. |
stream_album(album_id, indices_spec="all", player="mpv") |
Resolves tokens and launches mpv/vlc for the given selection. Raises ValueError if the album has no assets. |
Maintenance
| Method | Description |
|---|---|
refresh_tokens(album_id=None) (async) |
Refreshes any expiring CDN tokens; scoped to one album, or the whole database if omitted. Always a single pass; never blocks forever. |
delete_album(album_id) (sync) |
Deletes an album and all its assets (cascades at the database level). Returns True if something was actually deleted. |
Example ; the classic three-step flow:
import asyncio
from bunkr_api import BunkrAPI
async def main():
api = BunkrAPI()
results = await api.search("Natalie Roush")
if results:
album_id = await api.resolve_album(results[0]["url"])
print(f"Album registered with ID: {album_id}")
await api.download_album(album_id, workers=3)
asyncio.run(main())
Example ; the same flow, collapsed into one call:
import asyncio
from bunkr_api import BunkrAPI
async def main():
api = BunkrAPI()
results = await api.search("Natalie Roush")
if results:
album_id = await api.resolve_and_download(results[0]["url"], workers=5)
print(f"Resolved and downloaded album {album_id}")
asyncio.run(main())
Example ; browsing your existing catalog without touching the network:
from bunkr_api import BunkrAPI
api = BunkrAPI()
for album in api.get_albums():
print(f"#{album['id']} — {album['title']} ({album['file_count']} files)")
# Drill into one album
album = api.get_album(5)
if album:
for asset in api.get_assets(5):
print(f" {asset['title']} — {asset['download_status']}")
# Get a guaranteed-fresh link, even if the cached token expired
print(f" -> {api.get_valid_url(asset['id'])}")
Example ; streaming programmatically:
import asyncio
from bunkr_api import BunkrAPI
async def main():
api = BunkrAPI()
# Stream tracks 1, 3, and 5-8 from album 17 in VLC instead of the MPV default
await api.stream_album(17, indices_spec="1,3,5-8", player="vlc")
asyncio.run(main())
Example ; maintenance batch jobs (great for a nightly cron script):
import asyncio
from bunkr_api import BunkrAPI
async def nightly_maintenance():
api = BunkrAPI()
# Keep every token in the database fresh
await api.refresh_tokens()
# Pick up anything you staged earlier via `bunkr-api inspect stage` or the dashboard
await api.download_staged(workers=4)
# Give yesterday's network blips another chance
await api.retry_failed(workers=4)
asyncio.run(nightly_maintenance())
Example ; resolving several albums concurrently with asyncio.gather:
import asyncio
from bunkr_api import BunkrAPI
async def main():
api = BunkrAPI()
urls = [
"https://bunkr.cr/a/first-album",
"https://bunkr.cr/a/second-album",
"https://bunkr.cr/a/third-album",
]
# resolve_album() itself is I/O-bound (network), so gathering several
# at once is a genuine speedup, not just cosmetic concurrency.
album_ids = await asyncio.gather(*(api.resolve_album(u) for u in urls))
print(f"Registered {len(album_ids)} albums: {album_ids}")
# Then download them all, one at a time (download_album already
# parallelizes its own worker pool internally via `workers=`)
for album_id in album_ids:
await api.download_album(album_id, workers=5)
asyncio.run(main())
Example ; cleaning up an album you no longer want:
from bunkr_api import BunkrAPI
api = BunkrAPI()
was_deleted = api.delete_album(5)
print(f"Album 5 removed: {was_deleted}") # False if it never existed
Why the Python API is useful:
- No CLI required for automation: cron jobs, scheduled maintenance, or a custom Discord bot can all drive the same database the interactive tools use, with zero terminal interaction.
- Composable: every method returns plain dicts/lists/ints/bools. No custom objects to learn, so it's trivial to slot into an existing script, web framework, or notebook.
- Safe to embed: because the network/disk/subprocess methods are genuinely async (not just decorated), you can call them from inside your own already-running event loop; a FastAPI route handler, a Discord.py command, a Jupyter cell, all without the classic "asyncio.run() cannot be called from a running event loop" crash.
📂 Configuration & Data
The application stores all data in a hidden directory in your user profile to ensure persistence:
- SQLite Database:
~/.bunkr_api/media_tracker.db - Logs:
~/.bunkr_api/logs/ - Default Downloads:
~/Downloads/bunkr_downloads/ - Default JSON Exports:
~/Downloads/bunkr_downloads/jsons/Used bybunkr-api scrape --save-jsonwhen-o/--outputisn't given.
Pro Tip: Every command that writes files (
bunkr-api scrape --save-json,bunkr-api download, etc.) accepts an-o/--outputflag to override its destination for that run.
⚖️ Disclaimer
bunkr-api is an independent project and is not affiliated with, authorized, maintained, or endorsed by Bunkr. This tool is provided for educational and personal archival purposes only. Users are responsible for complying with the Terms of Service of the platforms they interact with and the copyrights of the content creators.
Metadata
Release files for bunkr-api 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| bunkr_api-0.2.0.tar.gz | 62.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bunkr_api-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 120.8 kB
Release files / bunkr_api-0.2.0.tar.gz
| Download URL | bunkr_api-0.2.0.tar.gz |
|---|---|
| Size | 62.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1bdd214e182645a6afdb26d7b72a0c1bdfba8fab792192c8a52c4791407326d8
|
|
BLAKE2b-256 checksum How to use checksums |
32308b6c204cea0dac2351aa48a5af63239d9d66e5580f455ab1e79ec13a72f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / bunkr_api-0.2.0-py3-none-any.whl
| Download URL | bunkr_api-0.2.0-py3-none-any.whl |
|---|---|
| Size | 58.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5de7f11fda3a5b96aef349dde6f6a3bca91b4825201c027613cd36c24660e984
|
|
BLAKE2b-256 checksum How to use checksums |
1426f2cf5a7a395ec24274894ee00885135113870f3ed5511a29ef6165e93f3e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for bunkr-api 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.