← Back

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

  1. Clone the project:
git clone https://github.com/DanT2000/ShareTube.git
  1. Go to the folder and give execute permissions to the script:
cd ShareTube
chmod +x install.sh
  1. Run the installation script:
./install.sh
  1. After installation:
  2. Set your Telegram Bot Token in main.py
  3. Specify your external server IP (SERVER_IP)
  4. Make sure the downloads/ folder exists and is accessible

  5. 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

  1. User sends a YouTube link to the bot
  2. Bot downloads the video
  3. If video < 50 MB — it's sent directly via Telegram
  4. 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 и автоматически отдавать их по ссылке.

🚀 Быстрый старт

  1. Склонировать проект:
git clone https://github.com/DanT2000/ShareTube.git
  1. Перейти в папку и дать права на скрипт установки:
cd ShareTube
chmod +x install.sh
  1. Запустить установку:
./install.sh
  1. После установки:
  2. Установить свой токен бота в main.py
  3. Указать внешний IP сервера (SERVER_IP)
  4. Убедиться, что папка downloads/ существует и доступна

  5. Сервер запускается на порту 5000 по умолчанию.


🛡️ Рекомендации по безопасности и развёртыванию

Для безопасности и удобства мы настоятельно рекомендуем использовать Nginx в связке с Let's Encrypt сертификатом и перенаправлением запросов только к нужным папкам:

  • Прокси-сервер (Nginx) перенаправляет /downloads/ на Flask (или FastAPI) сервер
  • Все остальные пути блокируются
  • Таким образом, клиент получает доступ только к готовым файлам, не к логике сервера

🤖 Как это работает

  1. Пользователь отправляет боту ссылку на YouTube
  2. Бот скачивает видео
  3. Если видео < 50 МБ — отправляется прямо в Telegram
  4. Иначе — формируется уникальная ссылка на скачивание

📌 Примечания

  • Убедитесь, что директория downloads/ имеет права на чтение NGINX (обычно www-data)
  • Не забывайте обновлять токен, если он будет отозван
  • Сохранение чатов и логика очистки — автоматизированы