トップページに戻る
tokix.netはネットワーク・セキュリティ周辺から半径rな雑文を垂れ流す不定期更新個人サイト>>このサイトについて

自作スクリプト

<<トップカテゴリー「Notice」に戻る

動画DLスクリプト公開 (>>この記事のみを表示)

ネットランナー2006年12月号向けに、動画共有サイトの動画をダウンロードするためのUWSCスクリプト「VDLIrv.uws」を書きました(そしてその後もたまに更新してます)。

  1. 海外のウェブサービス「VideoDownloader」に動画本体アドレス解析を丸投げし
  2. 自前エンジンで動画ページから動画タイトルを抽出し
  3. Irvineにダウンロード処理を丸投げ

するスクリプトです。簡単に特徴を書くと

  • 「VideoDownloader」に丸投げするため、YouTube・GoogleVideo・iFilm・Metacafeなどなど、多数の動画共有サイトから動画を落とせます。VideoDownloader対応サイト全てが「対応サイト」となるので、各共有サイト内の動画を「どのサイトにアップされているか」という思考無しに同じ操作で落としまくれる、という
  • 動画タイトルを取得し、保存ファイル名「動画タイトル.拡張子」でIrvineに投げるので、手動リネームの必要がありません
  • ダウンロード処理はIrvineに投げるのでレジュームや多重ダウンロードなども普通に可能です
  • 「http://ime.nu/」や「ttp://」アドレスにも対応しました(2007/04/27版での新機能)
  • VideoDownloaderに渡してエラーが出るアドレスの場合は、そのページ内からPermallinkアドレスを探して再度VideoDownloaderに渡します(2007/05/11版での新機能)

と、いった感じです。


基本的な使い方はネトラン12月号特集1で書いてるので省略しますが、まぁ超単純に書くと、まず準備が

  1. Irvineを導入
  2. UWSCを導入し、拡張子「UWS」を「UWSC.exe」に関連付け
  3. 「VDLIrv.uws」をメモ帳で開きIrvineフォルダのパスを指定(デフォルトは「C:\Program Files\Irvine\」)

で、動画を落とす場合は

  1. ブラウザのアドレス欄などを使い、動画共有サイトの個別動画ページのURL(言い換えれば、VideoDownloaderに投げるURL)をコピーしクリップボードに入れる
  2. 「VDLIrv.uws」を実行
  3. 少し待つとIrvineで動画ダウンロードが始まる

と、いう感じです。


VDLIrv.uws 2007/05/17(右クリックからダウンロードしてください)


コピーする文字列について

  1. 基本的には、個別動画ページのURLをコピーして起動してください
  2. ただし、「VDLIrv.uws」内「コピーされたアドレスから除外する文字列」で始まる文字列がコピーされている場合は、当該部分を「http://」に修正します(「http://ime.nu/」や「ttp://」アドレスでも大丈夫です) (2007/04/27版での新機能)

動画タイトル抽出の設定に関して

  1. 個別動画ページの「<title>〜</title>」内の文字列を動画タイトルと見なします
  2. ただし、「VDLIrv.uws」内「動画タイトル抽出範囲を手動指定するサイトを指定」以下で指定されているURLの場合は、指定された範囲を動画タイトルと見なします
  3. 動画タイトルと見なした範囲内に「VDLIrv.uws」内「各動画サイトの動画タイトル内の不要文字列」以下で指定された文字列があった場合は問答無用で削除します

Permallinkアドレス抽出箇所設定に関して(2007/05/11版での新機能)

  1. クリップボード内アドレスをVideoDownloaderに渡してエラーが出る場合、基本的には動画を落とせません
  2. ただし、クリップボード内アドレスのソースに「VDLIrv.uws」内「各動画サイトのPermallink表示箇所」以下で設定された文字列が含まれている場合、その範囲内の文字列を動画のPermallinkアドレスと見なし、再度VideoDownloaderに渡します

VideoDownloaderの設定に関して

  • VideoDownloaderが今後仕様を変更した場合は「VDLIrv.uws」内「VideoDownloaderの設定」以下の設定を変更すれば対応できるはずです

トラブルシューティング

  • 「VideoDownloaderが対応していないURLです」と表示される
    Permallink抽出箇所を指定することで解決できるかもしれません。「○○という共有サイトの動画が、検索結果から開いた場合は落とせるのに、ユーザーの動画一覧から開いた場合は落とせない」といった状況なら適切な設定で解決可能です。その他の場合、あくまで丸投げしてるだけなのでVideoDownloaderで落とせないものは落とせません。VideoDownloaderでも試してみて無理なら無理です(未対応サイトだとかVideoDownloader側がサイトの仕様変更に対応してないとか)
    試してみて落とせるなら僕のスクリプトのバグです(教えてください)
  • 何も表示されないが落とせない
    多分、僕のスクリプトのバグです(教えてください)
  • その他、何かおかしなことが起こる
    多分、僕のスクリプトのバグです(教えてください)

WebArchive一括DLスクリプト (>>この記事のみを表示)

ネットランナー5月号向けに、WebArchiveから一サイト分丸ごとのデータをダウンロードするスクリプト「Warrick.exe」を書きました。順を追って説明すると

  1. 「インターネットの図書館」とも呼ばれるWebArchiveには、閉鎖済みサイトなども含め過去のウェブサイトキャッシュが大量に眠っています
  2. しかしWebArchiveキャッシュは表示が重いし日本語はまず間違いなく文字化けする。1ページ読むならともかく、サイト一気読みに使うと結構ストレス貯まる
  3. そこで一サイト分のデータを丸ごとダウンロードしローカル上で鑑賞するための「Warrick」というツールがあります(参考:閉鎖済みサイトをWebArchiveキャッシュから一括DLする「Warrick」
  4. ただ、Warrickはコマンドラインでの操作が必要なので、そこらへんに不慣れだと少し使いにくい
  5. で、今回作成した「Warrick.exe」は、Warrickを簡単に使うためのスクリプトです

と、いった感じです


使い方はネットランナー5月号で書いてるので短縮説明しますが、

  1. 閉鎖済みサイトをWebArchiveキャッシュから一括DLする「Warrick」」を参考に、ActivePerlとWarrickを導入してください(参考サイトのSS一点目)
  2. WebArchiveで検索を行い、一括ダウンロードしたいサイトのトップページを開いてURL(http://web.archive.org/web/数字/元サイトのURL)をコピーしてください
  3. この状態でWarrick.exeを起動してください。選択肢が表示されますが基本的に「はい」
  4. コマンドプロンプトが開き、当該サイト一括ダウンロードが始まります
  5. コマンドプロンプトが閉じたらダウンロード完了。Warrick.exeのあるフォルダ内にドメイン別フォルダが作られ、中にデータが保存されているはずです。ちなみに落としたファイルを使ったHDD上での鑑賞の場合、日本語ページでも基本的に文字化けは発生しません
  6. 上手く1サイト分を落とせてない場合は、再度Warrick.exeを起動し、選択肢で「いいえ」をクリックすれば今度は上手く落とせる可能性があります
  7. それでも無理なら無理です

と、いう感じです。


Warrick.exe 2007/03/23 (via ツール保管庫.net)


ちなみに補足的に書いておくと、WebAcrhiveは、サイト内リンクが絶対アドレスなサイトの場合、サイト内リンクを「WebArchiveキャッシュであるところのサイト内ページ」に書き換えてくれないのですよ。……という説明で意味が分からない人向けに意味を伝えようと思うと結構長くなるので省略しますが、結論だけ言うと、上手くサイト内リンクが働かない場合がある。で、Warrick+このスクリプトは、そこらへんは上手い具合に適当に1サイト分のキャッシュを収集し、HDD上でサイト内リンクを普通に使ってサイト一気読みとかできるようにしてくれる、はずです。

新発売CDチェック用スクリプト (>>この記事のみを表示)

ネットランナー2007年6月号向けに、自分が好きなアーティストの新譜情報を簡単操作で(=「一人一人名前を登録」とかいう手間なしで)まとめて表示するためのスクリプトを書きました。どういう原理かというと

  1. iTunesライブラリをアップロードすると、そのライブラリ内アーティストの新譜情報をAmazonから取得して表示する「Veena!」というサイトがあります
  2. しかしVeena!には他にも色々機能があったりして表示が見づらいし、CDの表示レンジ(「一ヶ月先から二ヶ月前まで」など)を変更する機能がない
  3. 今回組んだスクリプトは、Veena!からHTMLソースを取得し、適当に書き換えた自分用HTMLをローカルに吐くものです
  4. スクリプトをWindowsスタートアップに、スクリプトが吐くHTMLファイルをブラウザブックマークに入れておけば、簡単に「自分が好きなアーティストの新譜情報」をチェックできます

と、いうものです。……で、実はネトラン校了の後に自分用にバージョンアップさせたりしてるので、本誌収録分よりこちらの方が高機能だったりします(ごめんなさい)。


使い方はネトラン本誌で書いてるので省略説明しますが

  1. Veena!にアカウントを作成し、サイト内で手順通りにiTunesライブラリをアップロードしてください
  2. IEエンジンでVeena!にログインしてください
  3. スクリプトをダウンロードして解凍し、適当なフォルダに置いて「SETTING.UWS」をテキストエディタで開き、下記を参考に設定を変更してください
  4. 「VeenaAmazonList.exe」を起動すると、自分と同じフォルダにHTMLが生成されます。「VeenaAmazonList.exe」のショートカットをWindowsスタートアップorサービスで起動することを推奨します
  5. 吐かれるHTML(デフォルトでは「list_amazon.html」)をブラウザで開けば、設定通りに自分が好きなアーティストの新譜情報をリスト化したページが表示されるはずです。HTMLファイルをブラウザブックマークなどに登録しておくことを推奨します

と、いう感じです。


VeenaAmazonList.exe 2007/04/30


表示するCDの発売日範囲に関して

  • 「SETTING.UWS」内の「RangeFuture」「RangePast」で指定します
  • それぞれ単位は月です。「0」も設定可能です
    • 例えば、「既に発売されたCDを視聴サイト(orファイル共なんとか)などで聴く」というスタイルなら、「RangeFuture」は「0」が良いでしょう。この場合、「既に発売されているCDのみをRangePastカ月分表示」という設定になります

生成するhtmlファイル名

  • 「SETTING.UWS」内の「PutHtmlFileName」で設定します
    • デフォルトは「list_amazon.html」です

データ取得ルール

  • 基本的には変更の必要はありません。Veenaの仕様変更によりリストを正しく取得できなくなった場合に変更が必要です
    • 「SETTING.UWS」内の「// AmazonのCDリストページURL」から「// CDの月/日は年開始から何文字後か」までが設定箇所です
      • 詳細な説明は割愛させていただきます
      • 正規表現は使えません
      • 仕様上、「"」は「<#DBL>」と記述してください

出力するHTMLのソース

  • 「// 出力HTMLヘッダ・フッタ」以下が設定箇所です
    • 詳細な説明は割愛させていただきます
    • 仕様上、「"」は「<#DBL>」と記述してください

muxtape全曲を落とすmuxvine (>>この記事のみを表示)

ネトラン7月号向けに、muxtapeをIrvineで落とすためのスクリプト「muxvine」を書きました。主な仕様は

  • テープ内全曲をIrvineでダウンロード
  • 初期設定したMP3フォルダ内に、テープ名を元にしたフォルダを作成し、そのフォルダ内にダウンロードを行う
  • 保存ファイル名は自動で「トラック 曲名.mp3」になるので手動リネームの必要なし
  • 同時に全トラックを公開順に再生するためのm3uファイルを作成
  • オプション:ダウンロード前にmuxtapeサーバー内のMP3を直接再生するためのm3uファイルを作成してプレイヤーに渡し再生開始(→スクリプトを発動させたらブラウザは閉じてOK)
  • オプション:ダウンロード後に保存フォルダ内のm3uファイルをプレイヤーに渡し再生開始
  • オプション:ダウンロード後にMP3タグを適当に変更してフォルダごとiTunesに渡す(→iTunesライブラリにある程度キレイな状態で登録&再生開始)

と、いう感じです。WMP/foobar2000などのフォルダベースプレイヤーを使っている方も、ライブラリ型プレイヤーであるところのiTunesを使っている方も、まぁある程度便利に使える、はずです(多分)。そしてダウンロード処理自体はIrvineに投げるので多重ダウンロード等も可能、という。


具体的な使い方はネトラン7月号で書いているので単純に書くと

  • ダウンロードしたファイルを解凍し内部の「muxvine.exe」「setting.uws」を適当なフォルダに置く(Irvineフォルダ内とか)
  • 「setting.uws」をテキストエディタで開き下記を参考に初期設定を行う
  • muxtapeページのアドレスをコピーした状態で「muxvine.exe」を起動
  • Irvineでのダウンロード等が行われる

と、いう感じです。


muxvine 2008/05/27 (via 教えて君.net)


「setting.uws」の仕様は、まぁ中のコメント通りなんですけど、

  • 「IrvineFolder」「DownloadFolder」を自分の環境に合わせて変更
  • ダウンロード開始前にmuxtapeサーバー内のMP3ファイルをMP3プレイヤーで直接再生させたい場合は「BeforeDownload」を1に変更
  • ダウンロード後に落としたファイルをfoobar2000などのMP3プレイヤーで再生させたい場合は「AfterDownload」を1に変更し、さらに「MP3Player」にプレイヤー実行ファイルのパスを指定
  • ダウンロード後に落としたファイルをiTunesに登録したい場合は「AfterDownload」を2に変更。タグエディタ「Tag」を作者のサイトからダウンロードして導入し、その本体ファイルパスを「TagEditor」に指定。また、iTunesインストールフォルダをデフォルトから変更している場合は「iTunes」にパスを指定

と、いう感じです。iTunesに登録する場合は、上述のフリーソフト「Tag」によって

  • ジャンル名「なし」(設定したいんだけど「Tag」の仕様の問題*1で設定できない、ここらへんをどうにかできるコマンドライン型のタグエディタご存じの方教えて下さいまし)
  • アーティスト名「muxtape」
  • アルバム名はテープ名

という状態になります。


なお、「AfterDownload」が1/2の場合はIrvineによるダウンロード完了をスクリプトが監視しているので、ダウンロードを中止した場合は一度Irvineを終了させて下さい(そうしないと監視が解除されない)。……「Irvineによるダウンロード終了」を単純に「ダウンロードフォルダ内のファイルの数」で判定する、という方法を使っているが故の問題です。書いてる間に「UWSCで作らない方が良い気がしてきた」感に襲われなかった訳でもありません(ダウンロード中止時の件以外には特に酷い問題点はない、はずです)。

  • *1: ここらへんよく知らないんですけどID3タグのバージョン違い?
dammy

Credit

SeeAlso

OtherSubCategory

Footprint

Navigation