39 lines
2 KiB
Markdown
39 lines
2 KiB
Markdown
Un bot para Telegram que permite descargar videos de distintos lugares.
|
|
|
|
[@dlthefourthbot](https://t.me/dlthefourthbot)
|
|
|
|
~~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](https://tikmate.app) 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](https://github.com/tdlib/telegram-bot-api) 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](https://gitea.nulo.in/Nulo/infra/commit/1067c632d203f7b7304fabd7bc4e818eb9d90386).
|