t.me/+hash)# Clonar o repositorio
git clone https://github.com/vinicius-dsr/telegram-streamer.git
cd telegram-streamer
# Criar e ativar venv
python3 -m venv .venv
source .venv/bin/activate
# Instalar dependencias
pip install -r requirements.txt
# Executar
python main.py
O servidor inicia em http://0.0.0.0:8000.
Na primeira execucao, voce precisara:
API ID e API Hash em my.telegram.orgOs dados sao salvos em config.json.
Adicione canais pela tela de Configuracoes:
https://t.me/nome_do_canalhttps://t.me/+hash_do_convite@nome_do_canalFormato de entrada (aceita espacos ou virgulas):
#F01 #F02 #F03 #F04
Grupos permitem organizar videos por secao com titulo, exibidos como dropdowns na tela principal.
Assista a um exemplo de uso abaixo. O video foi gravado durante uma sessão real de streaming.
▶ Clique aqui para assistir ao video demo
Telegram-Streamer/
├── main.py # Entrada do FastAPI
├── core/
│ ├── config_manager.py # Gerenciamento de config.json
│ ├── telegram_client.py # Wrapper do Telethon
│ └── video_service.py # Logica de videos, streaming e cache
├── routes/
│ ├── api.py # Endpoints REST
│ └── auth.py # Endpoints de autenticacao
├── static/
│ ├── css/style.css # Tema Netflix dark
│ └── js/
│ ├── api.js # Cliente HTTP
│ ├── app.js # Logica frontend
│ └── player.js # Player de video
└── templates/
└── index.html # SPA principal
| Endpoint | Metodo | Descricao |
|---|---|---|
/api/auth/status |
GET | Status da conexao |
/api/auth/login |
POST | Login com API ID/Hash |
/api/auth/code |
POST | Verificar codigo |
/api/auth/2fa |
POST | Verificar 2FA |
/api/auth/reuse |
POST | Reusar sessao do Downloader |
/api/channels |
GET | Listar canais |
/api/channel |
POST | Adicionar canal |
/api/channel/{id} |
PUT | Editar canal |
/api/channel/{id} |
DELETE | Remover canal |
/api/videos |
GET | Listar videos |
/api/video/{id} |
GET | Metadata de um video |
/api/stream/{id} |
GET | Streaming do video |
/api/thumbnail/{id} |
GET | Thumbnail do video |
/api/tags |
GET | Listar tags |
/api/prefetch/{id} |
GET | Pre-baixar inicio do video |
/api/progress/{id} |
GET | Obter posicao salva |
/api/progress/{id} |
POST | Salvar posicao atual |