This is an extended functionality fork of a python application for converting Youtube, Rumble and Bitchute channels into podcast-friendly RSS feeds.
For basic or original usage that may be needed, see the original project page. To use this fork:
For the YouTube module, you must specify the Google API Key. See documentation
http://yourserver.com/youtube/channel/youtube-channel-id
YouTube channel by @
http://yourserver.com/youtube/user/@username
http://yourserver.com/youtube/playlist/<PlaylistID>
If you want an audio podcast add a /audio to the url
http://yourserver.com/youtube/playlist/<PlaylistID>/audio
http://yourserver.com/youtube/channel/youtube-channel-id/audio
http://yourserver.com/youtube/user/@username/audio
#### For Youtube only, limit the number of pages we pull from to 10 pages
...
http://yourserver.com/youtube/channel/youtube-channel-id?max=10
http://yourserver.com/bitchute/channel/bitchute-channel-name
http://yourserver.com/rumble/channel/rumble-channel-name
http://yourserver.com/rumble/user/rumble-user-name
http://yourserver.com/rumble/category/category-name
http://yourserver.com/dailymotion/user/dailymotion-user-name
Docker container info: Be sure to open a port to containers default 15000
-e YT_API_KEY - required for Youtube functions
https://hub.docker.com/r/ftawesome/podtube
podtube.py [--config-file CONFIG_FILE] [--log-file LOG_FILE] [--log-format LOG_FORMAT] [--log-level {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET}] [--log-filemode {a,w}] [port]
| argument | config | env | value | default | description |
|---|---|---|---|---|---|
| --config-file | CONFIG_FILE | CONFIG_FILE | None |
Path to config file | |
| --log-file | log_file | GENERALLOGFILE | LOG_FILE | /dev/stdout |
Path to log file or /dev/stdout for standard output |
| --log-format | log_format | GENERALLOGFORMAT | LOG_FORMAT | %(asctime)-15s [%(levelname)s] %(message)s |
Logging format using syntax for python logging module |
| --log-level | log_level | GENERALLOGLEVEL | CRITICALFATALERRORWARNWARNINGINFODEBUGNOTSET |
INFO |
Logging level using for python logging module |
| --log-filemode | log_filemode | GENERALLOGFILEMODE | aw |
a |
Logging file mode using for python logging modulea - appending to the end of file if it existsw - truncating the file first |
| port | port | GENERAL_PORT | PORT_NUMBER | 15000 |
Port Number to listen on |
Priority for applying the configuration in descending order: 1. command line arguments 2. environment variables 3. configuration file
[general]
port=8080
log_file=./podtube.log
log_format=%(asctime)-15s %(message)s
log_level=DEBUG
log_filemode=w
[youtube]
api_key=YOUTUBE_API_KEY
cleanup_period=600000
convert_video_period=1000
audio_expiration_time=259200000 # 3 days in seconds
start_cleanup_size_threshold=536870912 # 0.5GiB
stop_cleanup_size_threshold=16106127360 # 15GiB
autoload_newest_audio=1
| config | env | default value | type | description |
|---|---|---|---|---|
| api_key | YTAPIKEY | None |
string | A Google API Key. See documentation |
| cleanup_period | YTCLEANUPPERIOD | 600000 |
int | Periodicity of the call to the cache clearing function. In milliseconds |
| convertvideoperiod | YTCONVERTVIDEO_PERIOD | 1000 |
int | Periodicity of calling the function of converting video to audio. In milliseconds |
| audioexpirationtime | YTAUDIOEXPIRATION_TIME | 259200000 |
int | Expiration time of stored files |
| startcleanupsize_threshold | YTSTARTCLEANUPSIZETHRESHOLD | 536870912 |
int | The minimum required amount of space in the ./audio folder. If there is not enough free space, the oldest files will be deleted until there is enough space |
| stopcleanupsize_threshold | YTSTOPCLEANUPSIZETHRESHOLD | 16106127360 |
int | Enough space threshold |
| autoloadnewestaudio | YTAUTOLOADNEWEST_AUDIO | True |
bool | Whether to automatically download the newest audio when updating the rss feed |