Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

AsyncTV5

English | Русский

AsyncTV5 🇺🇸

AsyncTV5 is an asynchronous Python library for working with the TV5 API. It provides a convenient interface for searching, retrieving information, and downloading video content.

🚀 Features

  • 🔍 Content Search - Search for series and movies by title
  • 📺 Content Information - Get detailed information about TV shows
  • 🎯 Available Qualities - Get list of available video qualities
  • ⏭️ Episode Navigation - Find next episode information
  • 📥 Video Download - Async video download in selected quality
  • ⚡ High Performance - Asynchronous requests and parallel downloading
  • 🔄 Auto Domain Switching - Automatic working domain discovery

📦 Installation

pip install async-tv5

Or from source:

git clone https://github.com/yourusername/async-tv5.git
cd async-tv5
pip install -e .

🛠️ Quick Start

import asyncio
from async_tv5 import AsyncTV5

async def main():
    async with AsyncTV5() as client:
        # Search content
        results = await client.search("Charlotte's Web")
        
        for result in results:
            print(f"Found: {result.name} (ID: {result.player_id})")
        
        if results:
            # Get TV show info
            tv_show = await client.get_tv_show("Charlotte's Web")
            print(f"Title: {tv_show.name}")
            print(f"Description: {tv_show.description}")

asyncio.run(main())

📚 Basic Usage

import asyncio
from async_tv5 import AsyncTV5

async def main():
    async with AsyncTV5() as client:
        # 1. Search
        results = await client.search("Movie Title")
        
        # 2. Get TV show info
        tv_show = await client.get_tv_show("Movie Title", results[0].player_id)
        
        # 3. Get series data
        series_data = await client.get_series_data(tv_show.player_id)
        
        # 4. Get available qualities
        qualities = await client.get_available_qualities(
            player_id=tv_show.player_id,
            season="1",
            episode="1",
            voice_id="152"
        )
        
        # 5. Download video
        # output_path = await client.download_video(
        #     player_id=tv_show.player_id,
        #     season="1",
        #     episode="1",
        #     voice_id="152",
        #     quality="720",
        #     output_dir="./downloads"
        # )

asyncio.run(main())

🔧 API Reference

Main Methods

  • search(query: str) -> List[SearchResult]
  • get_tv_show(query: str, player_id: Optional[str] = None) -> TVShow
  • get_series_data(player_id: str) -> SeriesData
  • get_episode_data(player_id: str, season: str, episode: str) -> List[EpisodeData]
  • get_available_qualities(player_id: str, season: str, episode: str, voice_id: str) -> List[VideoQuality]
  • get_next_episode(player_id: str, current_season: int, current_episode: int) -> NextEpisode
  • download_video(player_id: str, season: str, episode: str, voice_id: str, quality: str, output_dir: str = "/tmp") -> str

Data Models

  • SearchResult: Search result (name, url, player_id)
  • TVShow: TV show information (name, player_id, img, description)
  • SeriesData: Full series data (seasons, episodes, voices)
  • EpisodeData: Episode details (video_id, duration, voice_id, etc.)
  • VideoQuality: Available quality (quality, url)
  • NextEpisode: Next episode information

⚠️ Important Notes

  • FFmpeg required for download functionality
  • Legal usage - Ensure you have rights to download and use content
  • API stability - Service API may change, requiring library updates

📄 License

MIT


AsyncTV5 🇷🇺

AsyncTV5 - асинхронная Python библиотека для работы с TV5 API. Предоставляет удобный интерфейс для поиска, получения информации и скачивания видео контента.

🚀 Возможности

  • 🔍 Поиск контента - Поиск сериалов и фильмов по названию
  • 📺 Информация о контенте - Получение подробной информации о сериалах
  • 🎯 Доступные качества - Получение списка доступных качеств видео
  • ⏭️ Навигация по эпизодам - Поиск следующего эпизода
  • 📥 Скачивание видео - Асинхронное скачивание видео в выбранном качестве
  • ⚡ Высокая производительность - Асинхронные запросы и параллельная загрузка
  • 🔄 Автопереключение доменов - Автоматический поиск рабочих доменов

📦 Установка

pip install async-tv5

Или из исходного кода:

git clone https://github.com/yourusername/async-tv5.git
cd async-tv5
pip install -e .

🛠️ Быстрый старт

import asyncio
from async_tv5 import AsyncTV5

async def main():
    async with AsyncTV5() as client:
        # Поиск контента
        results = await client.search("Паутина Шарлотты")
        
        for result in results:
            print(f"Найден: {result.name} (ID: {result.player_id})")
        
        if results:
            # Получение информации о сериале
            tv_show = await client.get_tv_show("Паутина Шарлотты")
            print(f"Название: {tv_show.name}")
            print(f"Описание: {tv_show.description}")

asyncio.run(main())

📚 Базовое использование

import asyncio
from async_tv5 import AsyncTV5

async def main():
    async with AsyncTV5() as client:
        # 1. Поиск
        results = await client.search("Название фильма")
        
        # 2. Информация о сериале
        tv_show = await client.get_tv_show("Название фильма", results[0].player_id)
        
        # 3. Полные данные сериала
        series_data = await client.get_series_data(tv_show.player_id)
        
        # 4. Доступные качества
        qualities = await client.get_available_qualities(
            player_id=tv_show.player_id,
            season="1",
            episode="1",
            voice_id="152"
        )
        
        # 5. Скачивание видео
        # output_path = await client.download_video(
        #     player_id=tv_show.player_id,
        #     season="1",
        #     episode="1",
        #     voice_id="152",
        #     quality="720",
        #     output_dir="./downloads"
        # )

asyncio.run(main())

🔧 Справочник API

Основные методы

  • search(query: str) -> List[SearchResult] - Поиск контента
  • get_tv_show(query: str, player_id: Optional[str] = None) -> TVShow - Информация о сериале
  • get_series_data(player_id: str) -> SeriesData - Полные данные сериала
  • get_episode_data(player_id: str, season: str, episode: str) -> List[EpisodeData] - Данные эпизода
  • get_available_qualities(player_id: str, season: str, episode: str, voice_id: str) -> List[VideoQuality] - Доступные качества
  • get_next_episode(player_id: str, current_season: int, current_episode: int) -> NextEpisode - Следующий эпизод
  • download_video(player_id: str, season: str, episode: str, voice_id: str, quality: str, output_dir: str = "/tmp") -> str - Скачивание видео

Модели данных

  • SearchResult: Результат поиска (название, url, player_id)
  • TVShow: Информация о сериале (название, player_id, изображение, описание)
  • SeriesData: Полные данные сериала (сезоны, эпизоды, озвучки)
  • EpisodeData: Данные эпизода (video_id, длительность, voice_id и др.)
  • VideoQuality: Доступное качество (качество, url)
  • NextEpisode: Информация о следующем эпизоде

⚠️ Важные заметки

  • Требуется FFmpeg для функции скачивания
  • Правовое использование - Убедитесь, что имеете право на скачивание и использование контента
  • Стабильность API - API сервиса может изменяться, что потребует обновления библиотеки

📄 Лицензия

MIT

Metadata

Release files for async-tv5 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for async-tv5 1.0.0
File Size Uploaded Provenance
async_tv5-1.0.0.tar.gz 13.2 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for async-tv5 1.0.0
File Interpreter ABI Platform
async_tv5-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 25.3 kB

Release files / async_tv5-1.0.0.tar.gz

Download URL async_tv5-1.0.0.tar.gz
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
be4435fc17e884d2048561a74a216a90bad633685fc9812c6289a9dbe8e84029
BLAKE2b-256 checksum
How to use checksums
6b0321f50668639cfb1add4b8966dfe9d5b8c40ff0fe7c005fd72ea8e9bfc15d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release files / async_tv5-1.0.0-py3-none-any.whl

Download URL async_tv5-1.0.0-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
32312e3293d988ec6588c969d486837693e17cd3e4a2171a21bb033920b86394
BLAKE2b-256 checksum
How to use checksums
8d3d2bd74c201fd51de165c34799555e98caa232f8cbc5148f1725e2e2b4a8b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Security for async-tv5 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page