An asynchronous Python API wrapper and scraper for xfreehd.com
Project description
XFreeHD API
An asynchronous Python API wrapper and scraper for xfreehd.com
Disclaimer
[!IMPORTANT] This is an unofficial and unaffiliated project. Please read the full disclaimer before use: DISCLAIMER.md
By using this project you agree to comply with the target site's rules, copyright/licensing requirements, and applicable laws. Do not use it to bypass access controls or scrape at disruptive rates.
Features
| Category | Details |
|---|---|
| Video Fetching | Fetch video objects with metadata scraped directly from HTML |
| Video Downloading | RAW/direct-based downloading with quality selection |
| Album Scraper | Fetch album details and scrape/download images page-by-page or all at once |
| Video Search | Search videos by query with support for pagination |
| Async-First | Fully asynchronous (async / await) built on top of asyncio |
| Built-in Caching | Automatic response caching with configurable limits to reduce redundant network requests |
| Type Safety | Comprehensive type hinting and dataclass-based models throughout |
Networking Features
The networking layer is provided by the eaf_base_api package and is fully configurable through RuntimeConfig:
| Feature | Description |
|---|---|
| HTTP/1.1, HTTP/2, HTTP/3 | Configurable HTTP version (v1, v2, v3 — defaults to HTTP/3) |
| Browser Impersonation | Built-in browser fingerprint impersonation via curl_cffi (defaults to Chrome) |
| Custom JA3 Fingerprint | Override the TLS fingerprint with a custom JA3 string for advanced use cases |
| Proxy Support | All proxy types supported (HTTP, HTTPS, SOCKS4, SOCKS5) |
| Proxy Authentication | Username/password authentication for proxies |
| Bandwidth Limiting | Set a maximum download speed in MB/s (e.g., 2.0, 3.5) |
| DNS over HTTPS | Route DNS queries over HTTPS for privacy and bypassing DNS-level blocks |
| SSL Verification | Toggle SSL certificate verification on or off |
| Request Delay | Configurable delay between requests to respect rate limits |
| Concurrency Control | Tune video and page concurrency independently for optimal throughput |
Supported Platforms
This API has been tested and confirmed working on:
- Windows 11 (x64)
- macOS Sequoia (x86_64)
- Linux (Arch) (x86_64)
- Android 16 (aarch64)
Installation
pip install unofficial-api-for-xfreehd
Quickstart
Have a look at the Documentation for more details
import asyncio
from xfreehd_api import Client, DownloadConfigRAW
async def main():
# Initialize a Client object
client = Client()
# Fetch a video
video_object = await client.get_video("<insert_url_here>")
# Information from Video objects
print(video_object.title)
# Download the video
config = DownloadConfigRAW(quality="best", path="./") # More options in the documentation
await video_object.download(config)
if __name__ == "__main__":
asyncio.run(main())
Support the Project ❤️
I develop all my projects entirely for free because I enjoy it and want to keep them accessible. If you find my work useful, please consider supporting me with a small donation — even 1 € makes a big difference and keeps me motivated!
☕ Ko-fi
https://ko-fi.com/EchterAlsFake
💳 PayPal
https://paypal.me/EchterAlsFake
🪙 Crypto (350+ currencies supported)
Contribution
Do you see any issues or having some feature requests? Simply open an Issue or talk in the discussions.
Pull requests are also welcome.
License
This API is licensed under the AGPLv3. See the LICENSE file for details.
[!CAUTION] Using this in a proprietary application? Under the AGPLv3, if you integrate, modify, or host this API as part of your application (even over a network), you must open-source your entire application's code under the AGPL.
If you want to use this API without open-sourcing your own code, you must purchase a commercial license.
For commercial licensing, contact: EchterAlsFakeBS@proton.me
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unofficial_api_for_xfreehd-1.6.tar.gz.
File metadata
- Download URL: unofficial_api_for_xfreehd-1.6.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28ec2a85490be8cdf28834f744dc50c6b08f4e27df8981fbd8616fd3d176edb5
|
|
| MD5 |
dc78b0883a2bba3219af2f3127305200
|
|
| BLAKE2b-256 |
c8278f22d77d62dab8b49d07edb98ce89776e67fb4b6134cc3f3b082b7611dee
|
File details
Details for the file unofficial_api_for_xfreehd-1.6-py3-none-any.whl.
File metadata
- Download URL: unofficial_api_for_xfreehd-1.6-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54c4d1f5a1e65369054ef4558feb0e35f7c5417d004d7c566c5e332bf91ad9ba
|
|
| MD5 |
b065a8fe5146f90f1c5282cb4a660d75
|
|
| BLAKE2b-256 |
e3977b5c51a40ff789ad1629980ac58b7d85d3237ad714446bc2adb888565a0d
|