1 # chvids 2 POSIX sh script for listing, watching and downloading YouTube channels videos from terminal 3 4 ![printed help and selected first channel](1.png) 5 6 printed help and selected first channel 7 8 ![listed all channel videos](2.png) 9 10 listed all channel videos 11 12 ![started playing second video](3.png) 13 14 started playing second video 15 16 ## installation 17 ``` 18 $ git clone https://git.kocotian.pl/chvids 19 # make install 20 ``` 21 22 ## usage 23 There are 2 scripts - **chvids**, main script used to get channel videos and list them or play/download selected and second script, **channels** that is frontend to **chvids**, script gets urls from newsboat config file and parses them. 24 25 **channels** usage: 26 simply write 27 ``` 28 $ channels 29 ``` 30 and you will get interactive prompt where you can type: 31 - `l` to list all channels 32 - `s` to select channel, if you type `s`, you will get next prompt, where you must write selected channel number or `l`/`h`/`q` 33 - `h` to get help 34 - `q` to quit 35 36 If you select channel, you will get next interactive prompt, now from **chvids** script. There are similar usage: 37 - `l` to list all videos 38 - `p` to play video 39 - `d` to download video 40 - `h` to help 41 - `q` to quit 42 43 `p` and `d` in **chvids** is similar to `s` in **channels**. 44 45 ## configuration 46 **channels** script is strictly based on newsboat config file. Script gets all YouTube links from file and parses them. 47 If you want add or remove channels, open this file. File path is `~/.config/newsboat/urls`. 48 Remember that file must be in this format: 49 ``` 50 https://www.youtube.com/feeds/videos.xml?channel_id=<CHANNEL ID> <Tab> "~<Channel name>" 51 ``` 52 for example: 53 ``` 54 https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~Luke Smith" 55 ``` 56 of course, **channels** is only frontend for main **chvids** scripts. You can write own scripts that will get an YouTube channel ID and give it as an argument to **chvids** script. **chvids** is less configurable, only thing that you would edit is **OpenTube** instance, but in time where i write this README, probably there are only one instance (maybe because code is only on my server for now, cause it's still in alpha, but i hope that in the nearest future code will be published for other peoples).