0

これで私を助けてくれることを願っています。私は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 を取得するための次のステップ

4

1 に答える 1

1
while read line
do
  sh script1.sh $line
done < script2.sh
于 2013-01-29T14:36:22.303 に答える