ShareTube
📋 Language Menu | Меню языка
🇬🇧 ShareTube — Telegram Bot & Server for YouTube Downloads
ShareTube is a simple Telegram bot with a backend server that downloads YouTube videos and gives direct access to them via links.
🚀 Quick Start
- Clone the project:
git clone https://github.com/DanT2000/ShareTube.git
- Go to the folder and give execute permissions to the script:
cd ShareTube
chmod +x install.sh
- Run the installation script:
./install.sh
-
After installation: - Set your Telegram Bot Token in
main.py- Specify your external server IP (SERVER_IP) - Make sure thedownloads/folder exists and is accessible -
The server runs by default on port
5000.
🛡️ Security & Deployment Recommendations
For better security and convenience, we highly recommend using Nginx with an SSL certificate from Let's Encrypt to reverse-proxy access only to the necessary folder:
- Nginx proxies
/downloads/to Flask/FastAPI - All other paths are blocked
- This ensures users only access video files, not backend logic
🤖 How It Works
- User sends a YouTube link to the bot
- Bot downloads the video
- If video < 50 MB — it's sent directly via Telegram
- Otherwise — a download link is provided
📌 Notes
- Ensure
downloads/is readable by NGINX (usuallywww-data) - Update the token if it is revoked
- Chats are saved and auto-cleaned after inactivity
🇷🇺 ShareTube — бот и сервер для скачивания видео с YouTube
ShareTube — это простой в установке Telegram-бот с сервером, позволяющим скачивать видео с YouTube и автоматически отдавать их по ссылке.
🚀 Быстрый старт
- Склонировать проект:
git clone https://github.com/DanT2000/ShareTube.git
- Перейти в папку и дать права на скрипт установки:
cd ShareTube
chmod +x install.sh
- Запустить установку:
./install.sh
-
После установки: - Установить свой токен бота в
main.py- Указать внешний IP сервера (SERVER_IP) - Убедиться, что папкаdownloads/существует и доступна -
Сервер запускается на порту
5000по умолчанию.
🛡️ Рекомендации по безопасности и развёртыванию
Для безопасности и удобства мы настоятельно рекомендуем использовать Nginx в связке с Let's Encrypt сертификатом и перенаправлением запросов только к нужным папкам:
- Прокси-сервер (Nginx) перенаправляет
/downloads/на Flask (или FastAPI) сервер - Все остальные пути блокируются
- Таким образом, клиент получает доступ только к готовым файлам, не к логике сервера
🤖 Как это работает
- Пользователь отправляет боту ссылку на YouTube
- Бот скачивает видео
- Если видео < 50 МБ — отправляется прямо в Telegram
- Иначе — формируется уникальная ссылка на скачивание
📌 Примечания
- Убедитесь, что директория
downloads/имеет права на чтение NGINX (обычноwww-data) - Не забывайте обновлять токен, если он будет отозван
- Сохранение чатов и логика очистки — автоматизированы