Skip to main content

A fast and simple downloader for BuzzHeavier and FuckingFast file hosting services

Project description

BHDownloader

A fast and simple Python downloader for BuzzHeavier and FuckingFast file hosting services.

Features

  • Download files using URLs or file IDs
  • Batch download from a file containing multiple links
  • Parallel downloads for faster batch processing
  • Progress bar with download statistics
  • Python API for integration into your projects
  • Cross-platform (Windows, macOS, Linux)

Supported Domains

  • buzzheavier.com
  • bzzhr.co
  • fuckingfast.net
  • fuckingfast.co

Installation

pip install bhdownloader

Command-Line Usage

Download a single file

# Using full URL
bhdownloader https://fuckingfast.net/abc123xyz456

# Using just the file ID
bhdownloader abc123xyz456

# Using the short alias
bhd abc123xyz456

Download to a specific directory

bhdownloader https://fuckingfast.net/abc123xyz456 -o ./downloads

Batch download from a file

Create a text file with one URL or ID per line:

# urls.txt
https://fuckingfast.net/abc123xyz456
https://buzzheavier.com/def789ghi012
jkl345mno678

Then run:

bhdownloader -f urls.txt -o ./downloads

Parallel downloads

Download multiple files simultaneously:

bhdownloader -f urls.txt -p 3 -o ./downloads

All CLI Options

Usage: bhdownloader [OPTIONS] [URL]

Options:
  URL                     URL or file ID to download
  -f, --file FILE         File containing URLs or IDs (one per line)
  -o, --output-dir DIR    Output directory (default: current directory)
  -p, --parallel N        Number of parallel downloads (default: 1)
  -t, --timeout SECONDS   Request timeout in seconds (default: 30)
  -q, --quiet             Suppress output except errors
  -v, --verbose           Enable verbose/debug output
  --no-banner             Don't show the banner
  -V, --version           Show version and exit
  -h, --help              Show help message and exit

Python API

Basic usage

from bhdownloader import download

# Download by URL
download("https://fuckingfast.net/abc123xyz456")

# Download by file ID
download("abc123xyz456")

# Download to specific directory
download("abc123xyz456", output_dir="./downloads")

# Download with custom filename
download("abc123xyz456", output_filename="myfile.zip")

# Quiet mode (no progress bar)
download("abc123xyz456", quiet=True)

Advanced usage

from bhdownloader import download, resolve_url, get_download_link

# Resolve a file ID to full URL
url = resolve_url("abc123xyz456")
print(url)  # https://buzzheavier.com/abc123xyz456

# Get direct download link without downloading
download_url, filename = get_download_link("https://fuckingfast.net/abc123xyz456")
print(f"Direct URL: {download_url}")
print(f"Filename: {filename}")

# Download with custom progress callback
def my_progress(downloaded, total):
    percent = (downloaded / total) * 100 if total else 0
    print(f"Progress: {percent:.1f}%")

download(
    "abc123xyz456",
    show_progress=False,
    progress_callback=my_progress
)

Error handling

from bhdownloader import download
from bhdownloader.core import (
    InvalidURLError,
    DownloadError,
    FileNotFoundError,
    BHDownloaderError,
)

try:
    download("abc123xyz456")
except InvalidURLError as e:
    print(f"Invalid URL or ID: {e}")
except FileNotFoundError as e:
    print(f"File not found or expired: {e}")
except DownloadError as e:
    print(f"Download failed: {e}")
except BHDownloaderError as e:
    print(f"General error: {e}")

API Reference

Functions

download(input_str, **kwargs) -> str

Download a file from BuzzHeavier/FuckingFast.

Parameters:

  • input_str (str): URL or file ID to download
  • output_dir (str, optional): Directory to save the file
  • output_filename (str, optional): Custom filename
  • chunk_size (int): Download chunk size (default: 8192)
  • timeout (int): Request timeout in seconds (default: 30)
  • show_progress (bool): Show progress bar (default: True)
  • progress_callback (callable): Custom progress callback
  • quiet (bool): Suppress all output (default: False)

Returns: Path to the downloaded file

resolve_url(input_str) -> str

Resolve a URL or file ID to a valid BuzzHeavier URL.

get_download_link(url, timeout=30) -> tuple[str, str]

Get the direct download link and filename from a BuzzHeavier page.

Returns: Tuple of (download_url, filename)

Exceptions

  • BHDownloaderError: Base exception for all errors
  • InvalidURLError: Invalid URL or file ID
  • DownloadError: Download failed
  • FileNotFoundError: File not found or expired

License

MIT License - see LICENSE for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bhdownloader-1.0.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bhdownloader-1.0.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file bhdownloader-1.0.0.tar.gz.

File metadata

  • Download URL: bhdownloader-1.0.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for bhdownloader-1.0.0.tar.gz
Algorithm Hash digest
SHA256 580edae5d14af88c5c4f857fc8102504fae833b3af30cd26481bab9012994a8d
MD5 784dd226c5e5c3a9576c48125ed61d6d
BLAKE2b-256 d941a59e086feb9742561c96a3c3c6070c843e10d7318f0f3f6bd69b9ee07012

See more details on using hashes here.

File details

Details for the file bhdownloader-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: bhdownloader-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for bhdownloader-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8549da56206924fbe6590713f126a48468da9b7ae6a07bfa30059eff1d4fbb4
MD5 7a57c9850d15f78ca998d7224bf18cbd
BLAKE2b-256 1eaa44595ad1b1f6db07d552f97630c11c895405dcb210d57404b15bc282cfd2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page