common | ||
telegram-bot-api-container | ||
tiktok | ||
youtube | ||
.gitattributes | ||
.gitignore | ||
.woodpecker.yml | ||
apko.yaml | ||
go.mod | ||
go.sum | ||
main.go | ||
melange.yml | ||
readme.md | ||
Taskfile.yml |
Un bot para Telegram que permite descargar videos de distintos lugares.
Es rápido ya que ni siquiera descarga el video, solo le pasa a Telegram la URL para descargarlos. 2023-05-09: parece que Telegram bloquea urls de Instagram y TikMate con el error Bad Request: wrong file identifier/HTTP URL specified
, tenemos que resubir manualmente :(
TikTok
Previamente este bot descargaba directo de TikTok a través de distintas APIs internas, usando programas externos como yt-dlp. Lamentablemente TikTok seguía parcheando estas APIs internas, que hacía mantener un sideproject molesto. Por suerte, encontré TikMate que es un sitio que los descarga por vos. Asumo que tiene desarrollador(es?) que mantienen el sitio. Así, uso su API interna (muy simple) y listo.
Correr tu propio servidor de bot
El servidor de bots de Telegram por defecto (https://api.telegram.org
) tiene un limite de subida de 50MB, y tenés que usar tu propio servidor para poder subir hasta 2000MB.
En ./telegram-bot-api-container hay un Containerfile para hostear este servidor.
Cuando ya tengas tu propio servidor, empezá deslogeandote del oficial (no vas a poder volver a logearte por 10 minutos):
dlbot logout
Después, tenés que reiniciar dlbot con el endpoint especificado con este formato: $endpoint/bot%s/%s"
. Un ejemplo en docker-compose:
dlbot:
image: gitea.nulo.in/nulo/dlbot4
environment:
TELEGRAM_TOKEN: "${DLBOT_TELEGRAM_TOKEN}"
TELEGRAM_API_ENDPOINT: http://dlbot-telegram-bot-api:8081/bot%s/%s
links:
- dlbot-telegram-bot-api
dlbot-telegram-bot-api:
image: gitea.nulo.in/nulo/dlbot4/telegram-bot-api
entrypoint: ["telegram-bot-api", "--api-id=$DLBOT_TELEGRAM_API_ID", "--api-hash=$DLBOT_TELEGRAM_API_HASH", "--local"]
Podés ver como está hecho en producción en la repo de infra.