jangroth / sauerpod

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.


Languages

Language:Python 88.3%Language:Shell 5.7%Language:Jinja 3.1%Language:Makefile 2.0%Language:HTML 0.8%