📋 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 the downloads/ 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 (usually www-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)
- Не забывайте обновлять токен, если он будет отозван
- Сохранение чатов и логика очистки — автоматизированы