{"id":28959185,"url":"https://github.com/mahirox36/asyncyt","last_synced_at":"2026-04-02T02:41:50.130Z","repository":{"id":299017003,"uuid":"1001833822","full_name":"mahirox36/AsyncYT","owner":"mahirox36","description":"Fully async, high-performance YouTube downloader powered by yt-dlp and ffmpeg","archived":false,"fork":false,"pushed_at":"2025-06-21T07:23:48.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-21T08:27:08.548Z","etag":null,"topics":["api-ready","async","audio-downloader","downloader","ffmpeg","python","video-downloader","youtube","yt-dlp"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mahirox36.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-14T06:01:07.000Z","updated_at":"2025-06-21T07:23:51.000Z","dependencies_parsed_at":"2025-06-14T07:19:03.814Z","dependency_job_id":"0d10db92-4f2b-49e2-82ab-b186a13bf3b6","html_url":"https://github.com/mahirox36/AsyncYT","commit_stats":null,"previous_names":["mahirox36/asyncyt"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mahirox36/AsyncYT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahirox36%2FAsyncYT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahirox36%2FAsyncYT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahirox36%2FAsyncYT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahirox36%2FAsyncYT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mahirox36","download_url":"https://codeload.github.com/mahirox36/AsyncYT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahirox36%2FAsyncYT/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261577970,"owners_count":23179765,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-ready","async","audio-downloader","downloader","ffmpeg","python","video-downloader","youtube","yt-dlp"],"created_at":"2025-06-24T00:01:16.394Z","updated_at":"2026-04-02T02:41:50.119Z","avatar_url":"https://github.com/mahirox36.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AsyncYT\n\n![PyPI - Version](https://img.shields.io/pypi/v/asyncyt?style=for-the-badge)\n![Downloads](https://img.shields.io/pypi/dm/asyncyt?style=for-the-badge)\n![License](https://img.shields.io/pypi/l/asyncyt?style=for-the-badge)\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## ✨ Features\n\n- ✅ **Fully Async Architecture** – every operation is non‑blocking and `await`‑ready.\n- 🎥 **Video, Audio, and Playlist Support** – download any media you throw at it.\n- 🌐 **Automatic Tool Management** – will grab `yt-dlp` and `ffmpeg` for you if not installed.\n- 🎛 **Advanced FFmpeg Configuration** – control codecs, bitrates, CRF, presets, and more via strongly‑typed enums.\n- 📡 **Real‑Time Progress Tracking** – both download and FFmpeg processing progress, perfect for UI updates or WebSockets.\n- 🧩 **Standalone AsyncFFmpeg** – use the FFmpeg engine by itself for your own media workflows (no downloading required).\n- 🔍 **Media Inspection** – get detailed file info (resolution, duration, codecs, etc.) through `AsyncFFmpeg.get_file_info()`.\n- ⚙️ **Asynchronous FFmpeg Processing** – run FFmpeg jobs with `AsyncFFmpeg.process()` without blocking your app.\n- 🎬 **Video \u0026 Audio Codec Enums** – pick codecs safely with built‑in enums.\n- ⚡ **Presets for Performance** – quickly switch between `ultrafast`, `fast`, `medium`, and more with type‑safe presets.\n- 📚 **Inline Documentation** – every public method is documented and typed for easy discoverability.\n- 🔗 **Codec Compatibility Helpers** – utilities to check which formats and codecs pair nicely.\n\n## 📋 Requirements\n\n- Python 3.11+\n- Cross-platform – Windows, macOS, Linux\n- Optional: yt-dlp and ffmpeg (auto-downloaded if not present)\n\n## 📦 Install\n\n```bash\npip install asyncyt\n```\n\n## 🚀 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## 🌐 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 →](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)\n\n## 📖 Documentation\n\n👉 [Read the Docs](https://asyncyt.mahirou.online/)\n\n## 🤝 Contributing\n\nContributions are welcome! Feel free to open an issue or pull request.\n\n## 📜 License\n\nMIT © **MahiroX36**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahirox36%2Fasyncyt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahirox36%2Fasyncyt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahirox36%2Fasyncyt/lists"}