add files

This commit is contained in:
elektroll 2018-06-23 11:00:21 +02:00
commit 9bb6c6d888
2 changed files with 85 additions and 0 deletions

14
README.md Normal file
View file

@ -0,0 +1,14 @@
# ttcs
Dies ist ein Bashscript, welches aus einem RSS Feed bei YouTube, nach einem String sucht und diese Dateien herunterlädt, sowie als mp3,ogg,.. umwandelt.
Zum installieren in ein Verzeichnis deiner wahl wechseln und folgendes ins Terminal eingeben:
### curl -L https://raw.githubusercontent.com/elektrollart/ttcs/master/script.sh | bash
Es werden Drei Ordner erstellt, sowie ein script namens **start.sh**.
Im Verzeichnis conifg befindet sich eine Datei, welche als Vorlage dient, in welcher der YouTube Channelname, Suchkriterium und gewünschtes Audio Format eingetragen werden kann. Das Script geht jede .conf Datei in config/ durch und lädt dann die Audio Dateien in podcast/ herunter.
**Abhänigkeiten**
* xmlstarlet
* youtube-dl
* ffmpeg

71
script.sh Normal file
View file

@ -0,0 +1,71 @@
#!/bin/bash
# Create folders for config files
mkdir -p config
mkdir -p query
mkdir -p podcasts
# Create blacklist and downloadlist files
blacklist="query/blacklist.txt"
if [[ ! -f $blacklist ]]; then
touch $blacklist
fi
query="query/query.txt"
if [[ ! -f $query ]]; then
touch $query
fi
# Create default config
defaultconf="config/default.conf"
if [[ ! -f $defaultconf ]]; then
touch $defaultconf
echo "#This is a default config
Channelname='' #Enter here the Channelname you want
SearchTitle='' #Enter what you're looking for at Channelname
Format='' #following options are allowed: mp3, vorbis, opus, aac, m4a, wav
" > $defaultconf
fi
# Create script
echo "#!/bin/bash
cd $(pwd)" > start.sh
echo "
url='https://www.youtube.com/feeds/videos.xml?user='
for f in config/*;do
source" '$f'";
if [[ ! "'$SearchTitle'" ]]; then
curl -s "'$url$Channelname'" | xmlstarlet pyx |sed -n '/(title/,/)link/p' | sed 's/)link/\)link;/g' | tr -d '\n' | tr ';' '\n' | sed 's#^.*linkAhref##' | sed 's/alternate)link//g' | sed 's/Arel//g' | sed 's/[[:blank:]]//g' >> query/query.txt;
curl -s https://www.youtube.com/feeds/videos.xml?user="'$Channelname'" | grep '<uri>' | sed 's/<uri>//g' | sed 's/<\/uri>//g' | sed 's/[[:blank:]]//g' | uniq >> query/blacklist.txt;
else
curl -s "'$url$Channelname'" | xmlstarlet pyx |sed -n '/(title/,/)link/p' | sed 's/)link/\)link;/g' | tr -d '\n' | tr ';' '\n' | grep "'$SearchTitle'" | sed 's#^.*linkAhref##' | sed 's/alternate)link//g' | sed 's/Arel//g' | sed 's/[[:blank:]]//g' >> query/query.txt;
curl -s https://www.youtube.com/feeds/videos.xml?user="'$Channelname'" | grep '<uri>' | sed 's/<uri>//g' | sed 's/<\/uri>//g' | sed 's/[[:blank:]]//g' | uniq >> query/blacklist.txt;
fi
done
egrep -v '^\s*$|^#' query/query.txt > query/.query.txt
mv query/.query.txt query/query.txt
while read line2; do
output="'"$line2"'"
while read line1; do
if [ "'"$line2"'" = "'"$line1"'" ]; then
output=
break;
fi
done < query/blacklist.txt
printf '%s\n' "'"$output"'"
done < query/query.txt > query/tmpls
mv query/tmpls query/query.txt
cat query/query.txt >> query/blacklist.txt
youtube-dl --output "'"podcast/%(title)s.%(ext)s"'" -x --audio-format "'$Format'" --batch-file='query/query.txt'
echo '' > query/query.txt
cat query/blacklist.txt | sort | uniq > query/.blacklist.txt
mv query/.blacklist.txt query/blacklist.txt
grep -v '^$' query/blacklist.txt > query/.blacklist.txt
mv query/.blacklist.txt query/blacklist.txt" >> start.sh