Async Python library for TV5 API - search, info, download videos
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file async_tv5-1.0.0.tar.gz.
File metadata
- Download URL: async_tv5-1.0.0.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be4435fc17e884d2048561a74a216a90bad633685fc9812c6289a9dbe8e84029
|
|
| MD5 |
e6c787e2c5d706547fe72371243cb1b4
|
|
| BLAKE2b-256 |
6b0321f50668639cfb1add4b8966dfe9d5b8c40ff0fe7c005fd72ea8e9bfc15d
|
File details
Details for the file async_tv5-1.0.0-py3-none-any.whl.
File metadata
- Download URL: async_tv5-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32312e3293d988ec6588c969d486837693e17cd3e4a2171a21bb033920b86394
|
|
| MD5 |
e1d5236448e0ab18e57b5ca5e3c87441
|
|
| BLAKE2b-256 |
8d3d2bd74c201fd51de165c34799555e98caa232f8cbc5148f1725e2e2b4a8b2
|