created_at2019-06-23 05:31:49.591492
updated_at2023-12-30 10:39:11.110602
descriptionterminal UI for viewing youtube subscriptions
Olivier Abdesselam



[![Discord](]( # youtube-subscriptions terminal UI for viewing youtube and/or peertube subscriptions. Especially well suited for Raspberry Pi. # requirements - [mpv]( to stream videos (if `mpv_mode` is enabled (default)) - [youtube-dl]( to download youtube videos (if `mpv_mode` is disabled) - [omxplayer]( or [vlc]( or [mplayer]( or [mpv]( to play videos # installing You can download a self-contained binary from [releases page]( # setup (youtube) Create an subscription_manager file: ``` echo '' > ~/.config/youtube-subscriptions/subscription_manager ``` Go to your channel page: Scroll to the bottom of the page til all your channels are loaded. Save the source of the page in `channels.html`. Then recover your channels list by running the following command (can take a long time if you have a lot of channels) ``` ./ channels.html | tee channel_ids ``` copy all those id in channel_ids list (see configuration section) # setup (peertube) Create a configuration file (see configuration section) and add the channel urls you want to register to `channel_urls` list. # backround mode Sometimes reloading the video list can take a long time. To avoid blocking the main app, you can run the video reload in a separate process. Just run with `--background` flag (you can have it in a cron), and you can reload the main UI with `r`. # usage press h for help. # configuration You can optionnaly add a user configuration at `$HOME/.config/youtube-subscriptions/config.json` example: ```json { "video_path": "__HOME/.cache/yts/videos", "cache_path": "__HOME/.cache/yts/yts.json", "youtubedl_format": "[height <=? 360][ext = mp4]", "youtube_instance": "", "video_extension": "mp4", "kind_symbols": { "Audio": "ﱘ", "Video": "", "Other": "" }, "players": [ ["/usr/bin/mplayer", "-fs"] ], "channel_ids": [], "channel_urls": [], "mpv_mode": true, "mpv_path": "/usr/local/bin/mpv" } ``` | field | description | default value | ------ | ----------- | ------------- | video_path | directory where videos will be stored | `/tmp` | cache_path | file path where video list will be stored | `/tmp/yts.json` | blockish_player | [blockish player]( to use (supersedes players) | None | players | list of players command for videos in order of priority | | youtubedl_format | see [youtube-dl doc]( | `[height <=? 360][ext = mp4]` | youtube_instance | invidious / youtube instance to use to open videos | | | video_extension | youtube-dl video extension as per format | `mp4` | kind_symbols | hash of characters to describe the media | `{ "Audio": "a", "Video": "v", "Magnet": "m", "Other": "o" }` | channel_ids | list of additional channel ids which will be also fetched | `[]` | channel_urls | list of additional channel urls which will be also fetched (can be used for peertube) | `[]` | mpv_mode | try and start mpv to play the youtubee video first | `true` | mpv_path | path to mpv binary (will be use if mpv_mode is true) | `/usr/bin/mpv` | open_magnet | tool to use to open magnet links (e.g. transmission-remote-cli | None | auto_thumbnail_path | file path to write thumbnails to when cursor is moved | None `__HOME` will be substituted with the home path. # cross compiling for raspberry pi simply run: ```sh ./ ``` binary will be in `target/arm-unknown-linux-gnueabihf/release/youtube-subscriptions`
Commit count: 235

cargo fmt