Skip to content

A grumpy Telegram bot that converts video streams into audio tracks and publishes those as an individual podcast feed.

Notifications You must be signed in to change notification settings

jangroth/sauerpod

Repository files navigation

build

Sauerpod

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.

SauerPod

Implementation

Logic Flow

Development setup (WIP)

Intial setup

Required once to set up the project:

Telegram

  • Create bot
    • -> Note API token from botfather
  • Initiate chat
    • -> Note chat id (find out with e.g. @RawDataBot)

AWS

  • 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

Local development

Required for development work:

  • Create/activate venv (. .venv/bin/activate)
  • Configure AWS profile (export AWS_PROFILE=xyz)
  • Deploy stack (cdk deploy --all or cdk 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

Resources

Disclaimer and Credits

  • '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.

About

A grumpy Telegram bot that converts video streams into audio tracks and publishes those as an individual podcast feed.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published