O que Publicador de Reels no Telegram faz?
Automatiza o upload e streaming de vídeos MP4 verticais de qualidade profissional (até 50 MB) diretamente para o Telegram usando endpoints padrão da API do Telegram Bot, sem dependências npm externas.
flowchart LR
A[Reel MP4 Renderizado] --> B[telegram_bot.js]
B --> C[API do Telegram Bot /sendVideo]
C --> D[Chat do Usuário / Canal]
D --> E[Comandos Interativos /reels, /day1, /status]
Quando Usar
- Você renderizou um vídeo MP4 (especialmente reels verticais 1080x1920 9:16) e deseja entregá-lo imediatamente ao Telegram.
- Você deseja um bot do Telegram interativo onde os usuários possam solicitar reels sob demanda.
- Você deseja entrega automatizada em pipeline após a renderização do vídeo.
Pré-requisitos
- Node.js 18+ (usa
fetch,FormDataeBlobnativos). - Um Token de Bot do Telegram obtido de
@BotFather. - Um
chat_idde destino (obtido automaticamente quando um usuário clica em/start).
Configuração: telegram_config.json
{
"bot_token": "YOUR_BOT_TOKEN_HERE",
"chat_id": "YOUR_CHAT_ID_HERE",
"bot_name": "Peak Lyrics",
"bot_username": "PeakLyricsBot",
"auto_upload": true
}
Setup e Vinculação Automática
Execute o script de setup com seu token do bot:
node setup_telegram.js <YOUR_BOT_TOKEN>
- Verifica o token com
getMe. - Imprime o link do seu bot (
https://t.me/<bot_username>). - Aguarda o usuário pressionar
/startno Telegram. - Captura e salva automaticamente o
chat_idemtelegram_config.json. - Entrega imediatamente os reels pendentes.
Fluxo de Upload Direto via API
const fs = require('fs');
const path = require('path');
async function sendReelVideo(videoPath, { day, songTitle }, chatId, botToken) {
const blob = await fs.openAsBlob(videoPath);
const form = new FormData();
form.append('chat_id', chatId);
form.append('video', blob, path.basename(videoPath));
form.append('caption', `🎬 <b>Dia ${day}</b>: <i>${songTitle}</i>\n✨ Qualidade Estúdio 1080x1920\n⏱ Sincronizado palavra por palavra`);
form.append('parse_mode', 'HTML');
form.append('supports_streaming', 'true');
form.append('width', '1080');
form.append('height', '1920');
const res = await fetch(`https://api.telegram.org/bot${botToken}/sendVideo`, {
method: 'POST',
body: form
});
return await res.json();
}
Executando o Listener do Bot Interativo
node telegram_bot.js listen
Responde a:
/startou/help- Visão geral e menu/day1- Entrega o Reel do Dia 1/day2- Entrega o Reel do Dia 2/reels- Entrega a coleção completa da série/status- Saúde do bot e status do link do chat