https://github.com/dub1401/telegram-dlp
Бот Telegram для быстрой загрузки видео из множества источников.
https://github.com/dub1401/telegram-dlp
bot downloader storage telegram yt-dlp
Last synced: about 1 year ago
JSON representation
Бот Telegram для быстрой загрузки видео из множества источников.
- Host: GitHub
- URL: https://github.com/dub1401/telegram-dlp
- Owner: DUB1401
- License: apache-2.0
- Created: 2024-03-16T13:53:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-15T18:54:02.000Z (about 1 year ago)
- Last Synced: 2025-04-30T07:50:01.047Z (about 1 year ago)
- Topics: bot, downloader, storage, telegram, yt-dlp
- Language: Python
- Homepage:
- Size: 258 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Telegram-dlp
**Telegram-dlp** – это бот Telegram для скачивания видеороликов из сети, поддерживающий распознание водяных знаков, извлечение аудиодорожек и буферизацию контента для мгновенной повторной отправки. Также в систему внедрена удобная панель управления, позволяющая ознакомится со статистикой или проводить рассылку сообщений подписчикам бота.
Бот оптимизирован для работы со следующими источниками:
* [ВКонтакте](https://vk.com/)
* [YouTube](https://www.youtube.com/)
* [PornHub](https://www.pornhub.com/)
* [Rutube](https://rutube.ru/)
* [TikTok](https://www.tiktok.com/)
* [Instagram](https://www.instagram.com/)
Со списком остальных сайтов, работа с которыми также теоретически поддерживается, но не гарантируется, можно ознакомится [здесь](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md).
Для вывода дополнительных режимов загрузки выполните команду `/settings`.
## Порядок установки и использования
1. Для установки необходимо наличие системы [Git](https://git-scm.com/) и [Python](https://www.python.org/) версии **3.12** или новее на вашем устройстве.
```Bash
git -v
python3 -V
```
2. Клонируйте репозиторий рекурсивно (для автоматического включения подмодулей) и перейдите в его каталог.
```Bash
git clone https://github.com/DUB1401/Telegram-dlp --recursive
cd Telegram-dlp
```
3. Создайте виртуальное окружение Python.
```Bash
python3 -m venv .venv
```
4. Активируйте вирутальное окружение.
```Bash
# Для Windows.
.venv\Scripts\activate.bat
# Для Linux или MacOS.
source .venv/bin/activate
```
5. Установите зависимости.
```
pip install -r requirements.txt
```
6. Разработчики [yt-dlp](https://github.com/yt-dlp) настоятельно рекомендуют установить библиотеку **ffmpeg** для поддержки расширенных сценариев загрузки и постпроцессинга. Ниже приведено несколько примеров.
```Bash
# Fedora
sudo dnf install ffmpeg-free
# Arch Linux
pacman -S ffmpeg
# Ubuntu
sudo apt install ffmpeg
```
7. Произведите настройку путём редактирования файла _Settings.json_.
8. В вирутальном окружении выполните команду `main.py login {PHONE_NUMBER} {API_ID} {API_HASH}`, подставив данные, которые можно получить [здесь](https://my.telegram.org/).
> [!NOTE]
> Это действие подключит выбранный аккаунт к **Telegram-dlp** в качестве загрузчика контента, что позволяет обходить лимиты ботов и скачивать видео размером до 2 GB (4 GB с подпиской Premium). Вы можете свободно продолжать пользоваться данным аккаунтом.
9. При намерении скачивать ролики из Instagram необходимо получить из браузера с произведённой авторизацией файл куков в формате Netscape и поместить его в этот [каталог](yt-dlp) под именем _instagram.cookies_.
10. После подключения аккаунта запустите файл `main.py` и отправьте боту команду `/start`.
11. Для автоматического запуска рекомендуется провести инициализацию сервиса через [systemd](systemd/README.md) на Linux или путём добавления его в автозагрузку на Windows.
# Settings.json
```JSON
"token": ""
```
Сюда необходимо занести токен бота Telegram (можно получить у [BotFather](https://t.me/BotFather)).
___
```JSON
"support_contact": ""
```
Здесь можно указать Telegram-контакт поддержки, который будет добавляться к шаблону и отправляться в ответ на команду `/support`.
___
```JSON
"language": "ru"
```
Код используемого ботом языка. По умолчанию поддерживаются: _ru_, _en_. Локализация осуществляется через [GNU gettext](https://www.gnu.org/software/gettext/manual/gettext.html).
___
```JSON
"trusted_sources_id": []
```
Сюда заносятся ID пользователей, от имени которых выполняется загрузка файлов на сервера Telegram. Заполняется автоматически.
___
```JSON
"password": "1234"
```
Указывает пароль для доступа в панель управления (команда `/admin {PASSWORD}`).
___
```JSON
"quality_improvement": false
```
Включает постобработку для улучшения качества видео. На данный момент не оказывает влияния на загружаемый ролик.
___
```JSON
"one_watermarked": true
```
Переключает режим отображение видео с водяными знаками (только лучшее качество или все).
___
```JSON
"max_file_size": 1950
```
Максимальный размер выгружаемого в Telegram файла в MB. Если у подключённого к боту аккаунта имеется Premium-подписка, рекомендуется повысить до 3950.
___
```JSON
"parallel_download_qualities": ["Full HD"]
```
Здесь перечисляются идентификаторы качества, которые будут скачиваться ещё до выбора пользователем требуемого формата для ускорения выдачи. Доступны `240p`, `360p`, `480p`, `HD`, `Full HD`, `2K`, `4K`, `8K`. Не рекомендуется определять более двух вариантов из-за возможного длительного состояния гонки!
___
```JSON
"lib_autoupdate": false
```
Активирует проверку обновлений **yt-dlp** при каждом использовании.
___
```JSON
"configs": {
"*": {
"proxy": "http://{LOGIN}:{PASSWORD}@{IP}:{PORT}"
}
}
```
Здесь можно определять настройки, специфичные для отдельных экстракторов, в том числе и для базового. Внутри поля необходимо создать ключ, значением которого будет словарь с параметрами. Список ключей смотреть [здесь](/Source/Core/__init__.py), параметры приведены ниже. В примере выше для всех экстракторов установлен стандартный прокси.
### Дополнительные параметры всех обработчиков
| **Ключ** | **Тип** | **Описание** |
|---|---|---|
| proxy | string | Прокси-сервер для обработчика. |
### Дополнительные параметры Instagram
| **Ключ** | **Тип** | **Описание** |
|---|---|---|
| cookies_generator | string | Указывает Shell-команду для запуска скрипта, обновляющего cookies для авторизации |
| libx264 | bool | Включает использование проприетарной _libx264_ вместо открытой _libopenh264_ во время перекодирования роликов в H.264 из VP9. |
### Дополнительные параметры TikTok
| **Ключ** | **Тип** | **Описание** |
|---|---|---|
| fake_hd | bool | Если у видео нет HD-варианта, таковым будет считаться наибольший из доступных. |
# Благодарность
* [@yt-dlp](https://github.com/yt-dlp) – библиотека для скачивания видео из множества источников с широким дополнительным функционалом.
_Copyright © DUB1401. 2024-2025._