これで私を助けてくれることを願っています。私はbashにかなり慣れていないので、私が取り組んでいる多くの例を検索して見つけましたが、ここで少し立ち往生しています。
私は2つのスクリプトを持っています。
script1.sh は正常に動作します。タイトル、アーティスト、およびトラックの URL を含む YouTube プレイリストの RSS フィードをダウンロードし、これらのアイテムをダウンロードして、playlist.txt に保存します。
問題は、他の YouTube プレイリストがあり、別の RSS フィード ページを使用する場合は、script1.sh でプレイリストの URL を手動で変更する必要があることです。
だから私はすべての異なるプレイリストのRSSフィードでURLをダウンロードし、それらを次々とscript1.shに送信するscript2.shを書いています。
プレイリストの URL は次のようなものです。
http://gdata.youtube.com/feeds/api/playlists/ hashtag_playlist ?&max-results=50&fields=entry%28title,link%29&prettyprint=true
これまでのところ、script2.sh で管理して、5 つのプレイリストの名前とハッシュタグを次のようにプレイリスト.txt に収集しました。
- "プレイリスト1" PLYNrAD9Jn2WDWZFp23G3a2tkOBtdeNAbc6
- "playlist2" PLYNrAD9Jn2WCf54CoS22kn3pBX1XUFinE
また、プレイリストごとに 1 つのテキスト ファイルを作成し、プレイリストの名前から名前を付けることもできました。ここでやりたいことは、ハッシュタグを 1 つずつ script1.sh に送信し、各プレイリストの URL、タイトル、アーティストを適切なファイルごとに出力させることです。私は、playlists.txtの各行を変数にして、それらをscript1.shのURLに渡す必要がありますが、その方法を本当に理解していません。
私がはっきりしていることを願っています。私が見逃したことを明確にするために、あなたの質問に答えることができます。
前もって感謝します
編集:私はbashを書き始めたばかりなので、本当にたわごとです。これらはあなたにとって本当に醜いように見えるに違いありません。前もって申し訳ありません:)
script1.sh
url="http://gdata.youtube.com/feeds/api/playlists/PLYNrAD9Jn2WDmpu3gNVxIVO8bAiOcQkx7?&max-results=50&fields=entry%28title,link%29&prettyprint=true"
name="SlickSlickSound"
URL RSS フィード ページを utube にダウンロードする
wget -O $HOME/Music/"Youtube Playlist"/utube $url 2>&1
ダウンロードしたページから temp0 にタイトルを抽出します xml-twig-tools で xml_grep を使用します
xml_grep 'title' utube --text_only > temp0
URL を temp2 に抽出する
grep -o 'href=['"'"'"][^"'"'"']*&feature=youtube_gdata' utube > temp
わかりやすくするために URL を最小限に取り除きます: www.example.com
sed "s/href='http\?:\/\///" temp > temp1
sed "s/&feature=youtube_gdata//" temp1 > temp2
URLとタイトルの一時ファイルを同じファイルoutput.txtにマージします
paste temp2 temp0 > output.txt
script2.sh
url="http://www.youtube.com/user/SterylMreep/videos?flow=grid&view=1"
すべてのプレイリスト情報を含むダウンロードページのソース
wget -O "$HOME/Music/Youtube Playlist"/Playlists/collection $url 2>&1
プレイリストの名前を抽出する
grep -o 'data-context-item-title=......................' collection > tmp0
わかりやすくするために URL を最小限に抑える
sed 's/data-context-item-title=//' tmp0 > tmp2
sed 's/" d...*$/"/' tmp2 > tmp3
スペースと\を削除
sed 's/^[ \t]*//' tmp3 > tmp4
sed 's/\///' tmp4 > tmp5
プレイリストIDをtmpに抽出
grep -o 'href="/playlist?list=..................................' collection > tmp
わかりやすくするために URL を最小限に抑える
sed 's/href="\/playlist?list=//' tmp > tmp1
プレイリストとハッシュタグの名前を含むファイルを作成する
paste tmp4 tmp1 > playlists.txt
プレイリスト名でファイルを作成する
cat tmp4 | xargs touch
プレイリスト.txt のハッシュタグを script1.sh に渡し、タイトル、アーティスト、および URL を取得するための次のステップ