Skip to main content

A fully asynchronous media downloader for 1000+ websites, powered by yt-dlp and FFmpeg

Project description

AsyncYT

PyPI - Version Downloads License

AsyncYT is a fully async, high-performance media downloader for 1000+ websites powered by 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

pip install asyncyt

🚀 Quick Start

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 →

📖 Documentation

👉 Read the Docs

🤝 Contributing

Contributions are welcome! Feel free to open an issue or pull request.

📜 License

MIT © MahiroX36

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

asyncyt-1.4.4.tar.gz (30.2 kB view details)

Uploaded Source

Built Distribution

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

asyncyt-1.4.4-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file asyncyt-1.4.4.tar.gz.

File metadata

  • Download URL: asyncyt-1.4.4.tar.gz
  • Upload date:
  • Size: 30.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for asyncyt-1.4.4.tar.gz
Algorithm Hash digest
SHA256 be4165a507c3765c71e29bfd150e38f9c186804cadbf3773ba8093844d906d3e
MD5 381cc0491dfacf467341f2a91540872c
BLAKE2b-256 7eab9abc83d81011383d274a881d54c7cde5ce6c22c1f3a8f23d27713262c0ca

See more details on using hashes here.

File details

Details for the file asyncyt-1.4.4-py3-none-any.whl.

File metadata

  • Download URL: asyncyt-1.4.4-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for asyncyt-1.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 67b0f47c79e60e688685b838c7c9b317783bf99a1ba5f760182c8ab182e92bd2
MD5 e4ceb0e978ea4403af985a75c9e5e1db
BLAKE2b-256 a44e9d1dfe813694eecaf8b212a4884be4131a6d3e905a2c8529820cce8c0ceb

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