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 @ (should automatically grab canonical URL):
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 | GENERAL_LOG_FILE | LOG_FILE | /dev/stdout |
Path to log file or /dev/stdout for standard output |
--log-format | log_format | GENERAL_LOG_FORMAT | LOG_FORMAT | %(asctime)-15s [%(levelname)s] %(message)s |
Logging format using syntax for python logging module |
--log-level | log_level | GENERAL_LOG_LEVEL | CRITICAL FATAL ERROR WARN WARNING INFO DEBUG NOTSET |
INFO |
Logging level using for python logging module |
--log-filemode | log_filemode | GENERAL_LOG_FILEMODE | a w |
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:
- command line arguments
- environment variables
- 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 | YT_API_KEY | None |
string | A Google API Key. See documentation |
cleanup_period | YT_CLEANUP_PERIOD | 600000 |
int | Periodicity of the call to the cache clearing function. In milliseconds |
convert_video_period | YT_CONVERT_VIDEO_PERIOD | 1000 |
int | Periodicity of calling the function of converting video to audio. In milliseconds |
audio_expiration_time | YT_AUDIO_EXPIRATION_TIME | 259200000 |
int | Expiration time of stored files |
start_cleanup_size_threshold | YT_START_CLEANUP_SIZE_THRESHOLD | 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 |
stop_cleanup_size_threshold | YT_STOP_CLEANUP_SIZE_THRESHOLD | 16106127360 |
int | Enough space threshold |
autoload_newest_audio | YT_AUTOLOAD_NEWEST_AUDIO | True |
bool | Whether to automatically download the newest audio when updating the rss feed |