A Telegram Bot to stream contents (Telegram videos, Youtube videos and more) to your smart TV
Project description
CastBot
A Telegram Bot to stream contents (Telegram videos, Youtube videos and more) to your smart TV
Demonstration video
Feature
- Stream Telegram videos to any device that supports UPnP (AVTransport), Chromecast, Vlc (telnet api), Kodi (xbmc http api)
- Web interface that plays videos in your browser
- Download videos by URLs and stream to devices
Known issues
- Chromecast (1st, 2nd and 3rd Gen.) only supports H.264 and VP8 video codecs
- Most LG TVs with WebOS have an incorrect UPnP implementation
- This bot supports videos of ~4.5Mb/s bit rate at maximum. The videos of higher bit rate would keep freezing.
How to run castbot with pip
Create a configuration file config.toml
and then run the following command
pip install castbot
castbot -c config.toml -v 1
Note: Make sure you have a version of Python 3.8+
How to run castbot with Docker
Create a configuration file config.toml
and then run the following command
docker run --network host -v "$(pwd)/config.toml:/app/config.toml:ro" -d ghcr.io/zhongkechen/castbot:master
How to config
Create a file config.toml
with the following content
[downloader]
# Use yt-dlp or you-get to download Youtube videos
downloader = "yt-dlp"
# how many concurrent downloads
concurrency = 10
[bot]
# `api_id` and `api_hash` can be generated here: https://core.telegram.org/api/obtaining_api_id
api_id=652324
api_hash="eb06d4abfb49dc3eeb1aeb9f581e"
# `token` can be created from https://telegram.me/BotFather
token="xxxxxxxxx"
# `session_name` can be an arbitary string.
session_name="castbot"
# Only users in this `admins` list can use this bot.
# Your own user id can be found here https://telegram.me/getuseridbot
admins=[337885031,32432424,44353421]
[http]
# The IP address or the hostname of the host running castbot
listen_host = "192.168.1.2"
# An arbitary port that is not in use
listen_port = 8350
# The following devices sections are optional. Add the sections you need.
[[devices]]
# When this section is added, all the UPNP devices in the local network will be auto-discovered.
# For Kodi, UPNP must be enabled in Settings -> Services -> UPNP/DLNA
# https://kodi.wiki/view/Settings/Services/UPnP_DLNA
type="upnp"
[[devices]]
# When this section is added, all the ChromeCast devices in the local network will be auto-discovered.
type="chromecast"
[[devices]]
# When this section is added, open http://`listen_host`:`listen_port`/static/index.html in a browser.
# Now if you send a video to the bot, you can choose to play it in the browser
type="web"
password="changeit"
[[devices]]
# When this section is added, we can play video on a device running VLC.
# VLC Telnet interface must be enabled.
type="vlc"
host = "127.0.0.1"
port = 4212
password = "123"
[[devices]]
# When UPNP is blocked by firewall, we can use this section to connect to Kodi.
# Remote Control of Kodi must be enabled: Settings -> Services -> Control.
# https://kodi.wiki/view/Settings/Services/Control
type="xbmc"
host = "192.168.42.140"
port = 8080
username = ""
password = ""
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
castbot-1.5.0.tar.gz
(32.7 kB
view details)
Built Distribution
castbot-1.5.0-py3-none-any.whl
(37.1 kB
view details)
File details
Details for the file castbot-1.5.0.tar.gz
.
File metadata
- Download URL: castbot-1.5.0.tar.gz
- Upload date:
- Size: 32.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f7b3c8e9ef5cf4ce9f97b9588ba8f48b0e31df949b914aa49d911b645ec8742 |
|
MD5 | a831961a9fcf5f9fd12dd10306f2129b |
|
BLAKE2b-256 | 507a532077e7d5943525babe3f3e650cb1f2dbfaac62ed3538a5605e611e2fbd |
File details
Details for the file castbot-1.5.0-py3-none-any.whl
.
File metadata
- Download URL: castbot-1.5.0-py3-none-any.whl
- Upload date:
- Size: 37.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7987aca1b979050f2c333dad61cab44e2ce326b514b64daed654b193575f7af |
|
MD5 | c05c4a7646fabbbaed32d494a551acb0 |
|
BLAKE2b-256 | 2705d1ddf51064238e8cd3b28810190955c342114d9ec8a76fee3c95006cc60f |