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