English / Russian
Небольшой проект с одной основной функцией - скачивание видео с RuTube.
- Установить библиотеку
pip install async_rutube_downloader
- Запустить
rtube-cli https://rutube.ru/video/365ae8f40a2ffd2a5901ace4db799de7/
rtube-cli --helpвывод
❯ rtube-cli
usage: rtube-cli [-h] [-o] [-q] [-v] [-f] [-d] [url]
Эта утилита командной строки позволяет загружать видео с Rutube.
- Вы можете загрузить одно видео или несколько видео, указав файл с URL.
- По умолчанию видео из файла будут загружаться в наилучшем доступном качестве.
positional arguments:
url URL или ID Rutube видео
options:
-h, --help show this help message and exit
-o , --output Каталог вывода (по умолчанию: текущий каталог)
-q, --quality Выберите качество видео в интерактивном режиме
-v, --version show program's version number and exit
Загрузить несколько видео:
-f , --file Путь до файла с ссылками
-d , --delimiter Разделитель между ссылками в файле (по умолчанию: \n)
Usage examples:
- Download single video:
[rtube-cli] 365ae8f40a2ffd2a5901ace4db799de7
[rtube-cli] https://rutube.ru/video/365ae8f40a2ffd2a5901ace4db799de7/
[rtube-cli] https://rutube.ru/video/365ae8f40a2ffd2a5901ace4db799de7/ -q
- Download multiple videos:
[rtube-cli] -f ~/path/to/file1.txt
[rtube-cli] -f ~/path/to/file2.txt -d ,
- Установить библиотеку
pip install async_rutube_downloader
- Пример загрузки видео из кода.
qualities Это кортеж, например: ((1280, 720), (1920,1080))
- Использование в асинхронном коде
import asyncio
from async_rutube_downloader.rutube_downloader import RutubeDownloader
async def download():
downloader = RutubeDownloader(
"https://rutube.ru/video/365ae8f40a2ffd2a5901ace4db799de7/"
)
qualities = await downloader.fetch_video_info()
await downloader.select_quality(max(qualities))
await downloader.download_video()
asyncio.run(download())- Использование в синхронном коде
import asyncio
from async_rutube_downloader.rutube_downloader import RutubeDownloader
loop = asyncio.new_event_loop()
downloader = RutubeDownloader(
"https://rutube.ru/video/365ae8f40a2ffd2a5901ace4db799de7/", loop
)
qualities = loop.run_until_complete(downloader.fetch_video_info())
loop.run_until_complete(downloader.select_quality(max(qualities)))
loop.run_until_complete(downloader.download_video())
loop.close()Этот проект был создан в учебных целях и был вдохновлен аналогичной синхронной библиотекой и книгой по асинхронному программированию.
- Графический пользовательский интерфейс(GUI) на TKinter.
- Интерфейс командной строки с использованием
argparse(Из стандартной библиотеки) - Честный прогресс бар, он отображает реальный прогресс загрузки.
- UI и загрузка работают в разных потоках.
- Перевод UI.
- Асинхронная версия позволяет использовать полную скорость интернет-соединения.
- PyInstaller используется для создания исполняемого файла
| title | description |
|---|---|
| m3u8 | Используется для парсинга плейлистов |
| aiohttp | асинхронный http клиент |
| aiofiles | асинхронная работа с файлами |
| slugify | Преобразование названия видео в имя файла |
| CustomTkinter | Better TKinter UI |
