|
|
brtv-generate-playlist.sh - bitreich-tv - Meme TV encoding and streaming |
|
|
 |
git clone git://bitreich.org/bitreich-tv git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-tv (git://bitreich.org) |
|
|
 |
Log |
|
|
 |
Files |
|
|
 |
Refs |
|
|
 |
Tags |
|
|
 |
LICENSE |
|
|
|
--- |
|
|
|
brtv-generate-playlist.sh (1065B) |
|
|
|
--- |
|
|
|
1 #!/bin/sh |
|
|
|
2 # supply hashtags.txt as stdin |
|
|
|
3 # output is a plaintext playlist with urls to memes and title slides |
|
|
|
4 |
|
|
|
5 |
|
|
|
6 ### CONFIGURATION START |
|
|
|
7 |
|
|
|
8 # other host to serve titles and images converted to videos |
|
|
|
9 title_image_host="gopher://bitreich.org" |
|
|
|
10 title_dir="tv/title" |
|
|
|
11 img2vid_dir="tv/img2vid" |
|
|
|
12 video_ext="webm" |
|
|
|
13 interludeurl="${title_image_host}/9/tv/tv-interlude.webm" |
|
|
|
14 interludeoccur=5 # percentage of occurence, set to 0 to disable |
|
|
|
15 |
|
|
|
16 ### CONFIGURATION END |
|
|
|
17 |
|
|
|
18 |
|
|
|
19 regeximatch() { |
|
|
|
20 printf '%s' "$1" | grep -iEq "$2" |
|
|
|
21 } |
|
|
|
22 |
|
|
|
23 add_title() { |
|
|
|
24 printf '%s/9/%s/%s\n' "$title_image_host" "$title_dir" "${1#\#}.${video_ext}" |
|
|
|
25 } |
|
|
|
26 |
|
|
|
27 while read -r tag url; do |
|
|
|
28 |
|
|
|
29 if regeximatch "$url" '\.(mkv|webm|mp4)$'; then |
|
|
|
30 add_title "$tag" |
|
|
|
31 printf '%s\n' "$url" |
|
|
|
32 elif regeximatch "$url" '\.(jpg|jpeg|png|gif)$'; then |
|
|
|
33 add_title "$tag" |
|
|
|
34 printf '%s/9/%s/%s\n' "$title_image_host" "$img2vid_dir" "${tag#\#}.${video_ext}" |
|
|
|
35 else |
|
|
|
36 # skip mpv-incompatible formats that are not converted to videos |
|
|
|
37 continue |
|
|
|
38 fi |
|
|
|
39 if test $(( RANDOM / 327 )) -lt "$interludeoccur"; then |
|
|
|
40 printf '%s\n' "${interludeurl}" |
|
|
|
41 fi |
|
|
|
42 done |
|