This project has been archived by its maintainers, and is no longer receiving any updates.
AsyncTV5
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) -> TVShowget_series_data(player_id: str) -> SeriesDataget_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) -> NextEpisodedownload_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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| async_tv5-1.0.0.tar.gz | 13.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.