A sauer (🇩🇪 for 'grumpy') Telegram bot that converts video streams into audio tracks and publishes those as an individual podcast feed. Implemented in Python using AWS cloud-native services. No servers required.
- AWS Component Development Kit v2 (Python)
- Telegram API
- Serverless AWS:
Required once to set up the project:
- Create bot
- -> Note
API token
from botfather
- -> Note
- Initiate chat
- -> Note
chat id
(find out with e.g. @RawDataBot)
- -> Note
- Store secrets in SSM
- Change values & run
./scripts/bootstrap-secrets.sh
- Revert changes in file (to not commit secrets to git)
git restore scripts/bootstrap-secrets.sh
- Change values & run
Required for development work:
- Create/activate venv (
. .venv/bin/activate
) - Configure AWS profile (
export AWS_PROFILE=xyz
) - Deploy stack (
cdk deploy --all
orcdk watch
) - Point bot`s webhook to Lambda
- Source(!) secrets (don't execute the script)
. ./scripts/get-secrets-from-ssm.sh
- Update web url at bot
./scripts/update-web-url-at-bot.sh
- Source(!) secrets (don't execute the script)
- https://core.telegram.org/bots/api
- https://xabaras.medium.com/setting-your-telegram-bot-webhook-the-easy-way-c7577b2d6f72
- 'Grumpy bot' icons by www.flaticon.com.
- Sauerpod is meant as a POC to demonstrate the power and elegance of cloud-native Python development. It uses pytube to download audio streams of videos and temporarily store them in a private S3 bucket. It must not be used to share any copyright-protected media.