Skip to content

iusethemouse/undercast-bot

Repository files navigation

Undercast - A Telegram bot for podcasts

@undercast_bot

Active development has been paused with a planned transition to the Pyrogram framework in the future.

A minimalist bot that makes it easy to:

  • Search for podcasts using any related term: podcast name, artist, topic, genre.
  • Download episodes, which you can then listen to using Telegram's in-app player.
  • Share favourite podcasts and episodes with anyone - they are just Telegram messages.

Why use Undercast

  • Access from any device with a Telegram client: download an episode while on your desktop, listen to it on your phone while on the go.
  • It's all messages: liked an episode? Want to keep track of that link in the show notes? Just forward Undercast messages to your Saved Messages and they will be there for when you need them.
  • Manage storage and mobile data use: episodes can be streamed, downloaded, and easily deleted to reclaim storage.

Preview

Screenshots

How to run locally

Make sure you have a bot token from @BotFather, and Telegram API from my.telegram.org. See here for help with Telegram API.

Specify the above in start_bot_local.py and start_file_uploader.php.

Download composer.phar in the bot directory, then run:

$ php composer.phar install
$ pip install -r requirements.txt
$ python start_bot_local.py

This will start the primary bot process. In a new shell instance, run:

$ php episode_uploader/start_file_uploader.php

This will start the secondary process for acquiring episode file IDs. Upon request, specify that you want to login as a bot, and specify your bot token. After the initial launch, a .session file will be generated with the entered parameters, and consequent launches won't require any additional input.

Changelog

v0.4.0 - Added subscriptions.

v0.3.0 - Storage is now implemented using an SQLite database, which replaces the pickle-based persistence solution provided by the python-telegram-bot wrapper.

v0.2.1 - Added async functionality to the episode download process, which now allows the bot to continue being responsive while awaiting file IDs from the secondary process. Fixed the HTML parser for episode descriptions skipping tags that have additional attributes. Added documentation, improved naming, streamlined and generalised certain routines.

v0.2.0 - Added cloud-hosting functionality via webhooks. Implemented a workaround for Bot API's file size restriction using MadelineProto. A secondary process now taps into Telegram API to upload files and provides their file ID to the primary process.

v0.1.0 - Initial release. Search is fully implemented. Files larger than 50MB are split into parts due to Telegram's Bot API restrictions.

Made with python-telegram-bot and MadelineProto.

About

A Telegram bot for searching, downloading, and sharing podcasts.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •