質問: youtube_gdata from http://gdata.youtube.com/feeds/api/users/tedxtalks/uploads )をファイルに。その後、bashスクリプトとyoutube-dlを使用して残りを実行できます。この目的に使用できるプログラムは何でしょうか?
回答: 私はついにこのbashスクリプトを使用してそれを行いました。#!/bin/bash conffile="$@" if [ ! -f "$@" ] || [ 3 -ne $(wc -l "$@" | grep -o '^[0-9]*') ]; then echo "this script writes a list of new video ids into an output file." echo "argument must be a file containing three lines:" echo " line 1: feed url" echo " line 2: output file " echo " line 3: newest id from last program call. leave empty for first run." exit 1 fi mapfile -t < "$conffile" url="${mapfile[0]}" outfile="${mapfile[1]}" lastid="${mapfile[2]}" echo "processing $id:" allids=$(wget -q -o- "$url" | sed 's,href,\nhref,g' | sed -n -e "s,^.*href='http://www.youtube.com/watch?v=\([a-za-z0-9_-]*\).*$,\1,p") for id in $allids; do if [ "$lastid" == "$id" ]; then echo "no new items left." >&2; break; fi echo "$id" echo "adding $id" >&2 done | tac >> "$outfile" newlastid=$(echo $allids | grep -o "^[a-za-z0-9_-]*") echo "$url" > "$conffile" echo "$outfile" >> "$conffile" echo "$newlastid" >> "$conffile" 構成ファイルからフィードのurl、出力ファイル、最新の既知のビデオを読み取り、フィードからビデオidを抽出します。次に、これらのidが最新の既知のidと比較されます(最新のフィードアイテムが最初)。これより新しいアイテムが出力ファイルに追加されます(現在は最も古いアイテムが最初になります)。設定ファイルyoutube_tedx.confの例を次に示します。http://gdata.youtube.com/feeds/api/users/tedxtalks/uploads ~/documents/movies/tedx/list.all vxkmee-gtqy これは、./get_new_youtube.sh youtube_tedx.confを呼び出すことで使用されます。次に、出力ファイル(list.all)は、たとえばyoutube-dlのようなコマンドでyoutube-dl -tca list.all && rm list.allを使用して処理できます。