| Name | asyncyt JSON |
| Version |
1.4.6
JSON |
| download |
| home_page | None |
| Summary | A fully asynchronous media downloader for 1000+ websites, powered by yt-dlp and FFmpeg |
| upload_time | 2025-08-23 10:47:01 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.11 |
| license | MIT |
| keywords |
async
downloader
ffmpeg
python
youtube
yt-dlp
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# AsyncYT



**AsyncYT** is a fully async, high-performance media downloader for 1000+ websites powered by [yt-dlp](https://github.com/yt-dlp/yt-dlp) and `ffmpeg`.
It comes with auto binary setup, progress tracking, playlist support, search, and clean API models using `pydantic`.
## ✨ Features
- ✅ **Fully Async Architecture** – every operation is non‑blocking and `await`‑ready.
- 🎥 **Video, Audio, and Playlist Support** – download any media you throw at it.
- 🌐 **Automatic Tool Management** – will grab `yt-dlp` and `ffmpeg` for you if not installed.
- 🎛 **Advanced FFmpeg Configuration** – control codecs, bitrates, CRF, presets, and more via strongly‑typed enums.
- 📡 **Real‑Time Progress Tracking** – both download and FFmpeg processing progress, perfect for UI updates or WebSockets.
- 🧩 **Standalone AsyncFFmpeg** – use the FFmpeg engine by itself for your own media workflows (no downloading required).
- 🔍 **Media Inspection** – get detailed file info (resolution, duration, codecs, etc.) through `AsyncFFmpeg.get_file_info()`.
- ⚙️ **Asynchronous FFmpeg Processing** – run FFmpeg jobs with `AsyncFFmpeg.process()` without blocking your app.
- 🎬 **Video & Audio Codec Enums** – pick codecs safely with built‑in enums.
- ⚡ **Presets for Performance** – quickly switch between `ultrafast`, `fast`, `medium`, and more with type‑safe presets.
- 📚 **Inline Documentation** – every public method is documented and typed for easy discoverability.
- 🔗 **Codec Compatibility Helpers** – utilities to check which formats and codecs pair nicely.
## 📋 Requirements
- Python 3.11+
- Cross-platform – Windows, macOS, Linux
- Dependencies: pydantic (auto-installed)
- Optional: yt-dlp and ffmpeg (auto-downloaded if not present)
## 📦 Install
```bash
pip install asyncyt
```
## 🚀 Quick Start
```py
import asyncio
from asyncyt import AsyncYT, DownloadConfig, Quality
async def main():
config = DownloadConfig(quality=Quality.HD_720P)
downloader = AsyncYT()
try:
await downloader.setup_binaries()
info = await downloader.get_video_info("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
print(f"Downloading: {info.title}")
filename = await downloader.download(info.url, config)
print(f"Downloaded to: {filename}")
except AsyncYTBase as e: # AsyncYTBase is the base for all exceptions in this library"
print(f"Error: {e}")
asyncio.run(main())
```
## 🌐 Supported Sites
AsyncYT supports **1000+ websites** through yt-dlp, including:
- YouTube, YouTube Music
- Twitch, TikTok, Instagram
- Twitter, Reddit, Facebook
- Vimeo, Dailymotion, and many more
[See full list of supported sites →](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)
## 📖 Documentation
👉 [Read the Docs](https://asyncyt.mahirou.online/)
## 🤝 Contributing
Contributions are welcome! Feel free to open an issue or pull request.
## 📜 License
MIT © **MahiroX36**
Raw data
{
"_id": null,
"home_page": null,
"name": "asyncyt",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "async, downloader, ffmpeg, python, youtube, yt-dlp",
"author": null,
"author_email": "MahiroX36 <mahiroc36@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/46/d6/cad3b33a0ddf9a02e1024725bc8f6b7045792546dd64ab58ca62835da258/asyncyt-1.4.6.tar.gz",
"platform": null,
"description": "# AsyncYT\n\n\n\n\n\n**AsyncYT** is a fully async, high-performance media downloader for 1000+ websites powered by [yt-dlp](https://github.com/yt-dlp/yt-dlp) and `ffmpeg`. \nIt comes with auto binary setup, progress tracking, playlist support, search, and clean API models using `pydantic`.\n\n## \u2728 Features\n\n- \u2705 **Fully Async Architecture** \u2013 every operation is non\u2011blocking and `await`\u2011ready.\n- \ud83c\udfa5 **Video, Audio, and Playlist Support** \u2013 download any media you throw at it.\n- \ud83c\udf10 **Automatic Tool Management** \u2013 will grab `yt-dlp` and `ffmpeg` for you if not installed.\n- \ud83c\udf9b **Advanced FFmpeg Configuration** \u2013 control codecs, bitrates, CRF, presets, and more via strongly\u2011typed enums.\n- \ud83d\udce1 **Real\u2011Time Progress Tracking** \u2013 both download and FFmpeg processing progress, perfect for UI updates or WebSockets.\n- \ud83e\udde9 **Standalone AsyncFFmpeg** \u2013 use the FFmpeg engine by itself for your own media workflows (no downloading required).\n- \ud83d\udd0d **Media Inspection** \u2013 get detailed file info (resolution, duration, codecs, etc.) through `AsyncFFmpeg.get_file_info()`.\n- \u2699\ufe0f **Asynchronous FFmpeg Processing** \u2013 run FFmpeg jobs with `AsyncFFmpeg.process()` without blocking your app.\n- \ud83c\udfac **Video & Audio Codec Enums** \u2013 pick codecs safely with built\u2011in enums.\n- \u26a1 **Presets for Performance** \u2013 quickly switch between `ultrafast`, `fast`, `medium`, and more with type\u2011safe presets.\n- \ud83d\udcda **Inline Documentation** \u2013 every public method is documented and typed for easy discoverability.\n- \ud83d\udd17 **Codec Compatibility Helpers** \u2013 utilities to check which formats and codecs pair nicely.\n\n## \ud83d\udccb Requirements\n\n- Python 3.11+\n- Cross-platform \u2013 Windows, macOS, Linux\n- Dependencies: pydantic (auto-installed)\n- Optional: yt-dlp and ffmpeg (auto-downloaded if not present)\n\n## \ud83d\udce6 Install\n\n```bash\npip install asyncyt\n```\n\n## \ud83d\ude80 Quick Start\n\n```py\nimport asyncio\nfrom asyncyt import AsyncYT, DownloadConfig, Quality\n\nasync def main():\n config = DownloadConfig(quality=Quality.HD_720P)\n downloader = AsyncYT()\n\n try:\n await downloader.setup_binaries()\n info = await downloader.get_video_info(\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\")\n print(f\"Downloading: {info.title}\")\n filename = await downloader.download(info.url, config)\n print(f\"Downloaded to: {filename}\")\n except AsyncYTBase as e: # AsyncYTBase is the base for all exceptions in this library\"\n print(f\"Error: {e}\")\n\nasyncio.run(main())\n```\n\n## \ud83c\udf10 Supported Sites\n\nAsyncYT supports **1000+ websites** through yt-dlp, including:\n\n- YouTube, YouTube Music\n- Twitch, TikTok, Instagram\n- Twitter, Reddit, Facebook\n- Vimeo, Dailymotion, and many more\n\n[See full list of supported sites \u2192](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)\n\n## \ud83d\udcd6 Documentation\n\n\ud83d\udc49 [Read the Docs](https://asyncyt.mahirou.online/)\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Feel free to open an issue or pull request.\n\n## \ud83d\udcdc License\n\nMIT \u00a9 **MahiroX36**\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A fully asynchronous media downloader for 1000+ websites, powered by yt-dlp and FFmpeg",
"version": "1.4.6",
"project_urls": {
"Documentation": "https://asyncyt.mahirou.online/",
"Homepage": "https://github.com/mahirox36/AsyncYT"
},
"split_keywords": [
"async",
" downloader",
" ffmpeg",
" python",
" youtube",
" yt-dlp"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "88544c4fdc648c4ac50969106ce346b975fb0b52aaba70c3d49a5fb79e254d37",
"md5": "400728a066babdb157ed6cbcda11bde8",
"sha256": "63bdf9e161034de4e9d6c052e6a775eeaf944d74e0f3447b064e4c434b93d30e"
},
"downloads": -1,
"filename": "asyncyt-1.4.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "400728a066babdb157ed6cbcda11bde8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 31566,
"upload_time": "2025-08-23T10:47:00",
"upload_time_iso_8601": "2025-08-23T10:47:00.662036Z",
"url": "https://files.pythonhosted.org/packages/88/54/4c4fdc648c4ac50969106ce346b975fb0b52aaba70c3d49a5fb79e254d37/asyncyt-1.4.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "46d6cad3b33a0ddf9a02e1024725bc8f6b7045792546dd64ab58ca62835da258",
"md5": "6f6450970c64e982620c0f0df4cbbdd3",
"sha256": "d547941b215169958a08c346be09e9353c4534d27eba98a1407cf7776659deae"
},
"downloads": -1,
"filename": "asyncyt-1.4.6.tar.gz",
"has_sig": false,
"md5_digest": "6f6450970c64e982620c0f0df4cbbdd3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 30817,
"upload_time": "2025-08-23T10:47:01",
"upload_time_iso_8601": "2025-08-23T10:47:01.800965Z",
"url": "https://files.pythonhosted.org/packages/46/d6/cad3b33a0ddf9a02e1024725bc8f6b7045792546dd64ab58ca62835da258/asyncyt-1.4.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-23 10:47:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mahirox36",
"github_project": "AsyncYT",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "asyncyt"
}