Dorothy2とは、Dorothyの後継ソフトであり、対応サイトの管理がパワーアップしている。
日本語名称は「動画ダウンロード2」。
対応サイト一覧(動画サイト)
サイト名 |
最新バージョン |
更新日時 |
製作者 |
バージョンアップ概要 |
Youtube |
1.25 |
|
xor |
HD対応 |
FC2動画 |
0.041 |
2010/05/10 |
|
|
empflix |
0.03 |
2010/05/07 |
|
|
tnaflix |
0.05 |
2010/05/07 |
|
|
ニコニコ動画 |
0.09.20110308 |
2011/03/08 |
oz+matoriv |
|
Dorothy2の導入方法
まずはDorothy2の設定ウィンドウを出せるようにする。
- Irvineを公式HPよりダウンロードする。
- Dorothy2をこのWikiよりダウンロードする。
- ダウンロードしたファイルを解凍後、1つのフォルダ(例:c:\Program Files\irvine\)に上書きする。

- Irvineを起動し、オプション設定をクリックする。

- スクリプトタブをクリックし、OnMainMenuClickを選び、動画ダウンロード2設定のチェックボックスをオンにする。

- これでDorothy2の設定ウィンドウが選択可能になる。

各キューフォルダで有効にする
Dorothy2を有効にするかどうかを各キューフォルダ(初期設定ではdefaultだけ)毎に設定出来る。ここを設定しないと動かない。
- 有効化したいキューフォルダを選び、画像の二つのスクリプトをオンにする。

これで設定が完了しました。
各サイト対応の子スクリプトを追加
Dorothy2は子スクリプトの追加で対応サイトをどんどん増やすことが出来ます。ここでは例にFC2動画の対応方法を記述します。
- 子スクリプトのファイルをダウンロードし、解凍します。ファイルはこのWikiやIrvine Uploader等々から探してきて下さい。
- フォルダ内にDorothy2のフォルダがある(はず)ですので、それをIrvineフォルダに上書きします。Irvineを終了する必要はありません。そして動画ダウンロード2設定を開き、対応サイトをチェックし、保存して終了をクリックします。

- 以上で対応サイトの追加は終了です。
後は画像紹介ページのurlを、そのキューフォルダに登録、DLを開始後スクリプトが対応サイトと判定すると自動的に目的ファイル(本画像・動画ファイル・等)を探し出しDLします。
他のダウンローダーでは困難だった一括DLや動画DLが嘘の様に楽になります。

Dorothy2のファイル構成
#:静止画サイトDLに最低限必要
※オリジナルのファイルが損失しているので、余分なファイルが入っている可能性もあります。
scripts←rename系スクリプトは通常、ここにコピーする
┣Dorothy2A.dmc
┣Dorothy2A.dms#
┣Dorothy2B.dmc
┣Dorothy2B.dms#
┣Dorothy2set.dmc
┣Dorothy2set.dms#
┗xor.dms#
Dorothy2
┣bin[空っぽ]←sqlite3.exe等が入る
┣common[dmsファイルが色々]←複数の子スクリプトから利用する関数ライブラリ
┃┣download.dms#
┃┗test2_download.dms#
┣document
┣program[空っぽ]←子スクリプトは通常、ここにコピーする
┣project[空っぽ]
┣projectdata[空っぽ]
┣setting[空っぽ]
┣system[色々]←設定ファイルが、ここに作成される
┣temp[空っぽ]
┗user[空っぽ]
スクリプトのバージョンアップのガイドライン
開発者のxorさんが次のように言っています。
Irvine Part24
http://pc12.2ch.net/test/read.cgi/win/1272168688/51
51 名前:xor[sage] 投稿日:2010/05/01(土) 23:39:49 ID:4F3Czy9m
他の人の書いたソースについては、とやかく言う権利はないので
自分の書いた物についてだけ、煮るなり焼くなり好きにしてくれ
ただ、修正者の署名をソースに入れて貰えればいい。
自分の知らないソースが、自分の署名だけで配布されるのは気持ち悪いので
前に、修正部分を判るようにして欲しいと書いたけど、これは取り消す(面倒だろうから)
元のソースも不要な部分は削除してくれて構わない
なんなら、綺麗に清書してくれてもいいw
署名は好きなように書いてもらって構わないけど、例えば
ヘッダの下に
//end
//20100501 修正 (名無し)
とか
あと、ソースをコピーして、新しいファイル名とauthorを付けてもらっても構わない
一行程度の修正なら、直接書き換える方が、ダウンロードするより楽だと思う
スクリプトの新バージョンのアップロード方法
該当ページを開いた後、左上の「編集」→「このページにファイルをアップロード」をクリック
リファレンス(もどき)
スクリプト作者向け・文法はJavaScriptと同様
スクリプト内で行う処理
通常、画像紹介ページのurlが渡されるので、そのページデータを読み出し、その中から目的ファイル(静止画・動画・等)のurlや、ファイル名(の手掛かり)を探し出し、渡す
- 複数のページデータ(画像紹介ページ→本画像ページ→本画像、等)や、時にはxmlページデータを芋弦式に手繰って探し出す場合もある
- 渡されたurlを加工して本画像ページのurlとする場合もある
- 動画サイトの場合、動画表示用のswfを逆コンパイルしてAction Script等を取り出し、目的ファイルの手掛かりを探す場合もある
- 処理の流れは実際のスクリプトをDL、プリントアウトする方が理解しやすい(静止画サイト用の場合、概ね葉書1~2枚分)
子スクリプトに渡されるデータ
- URL urlinfo
- String urlinfo.url:(画像紹介ページの)url
親スクリプトに渡すデータ
- URL urlinfo
- String urlinfo.url:(目的ファイルの)url
- HTTP headers
- String headers.host:(目的ファイルの)サーバー名
- String headers.Referer:(目的ファイルの)リファラ
- Object Dorothy
- String Dorothy.fileName:(目的ファイルの)ファイル名(シフトJIS)
頻繁に使われる関数・メソッド
- common_load('download')
- HTTP http=download(String url[,Boolean autoRedirect[,Object requestHeader]]):ページデータ等のダウンロード
- common_load('test2_download')
- HTTP http=test2_download(String url[,Boolean autoRedirect[,Object requestHeader]]):urlのファイル存在の有無の確認
- String url:(DLしたいページの)url
- Boolean autoRedirect:自動リダイレクト(true=有効)
- Object requestHeader:リクエストヘッダ
- String requestHeader['bytesRead']:冒頭からの読み込みバイト数
- HTTP http
- Object http.responseHeader:レスポンスヘッダ
- String http.responseHeader.code:レスポンスコード(200・302・404・等)
- String http.responseHeader.location:リダイレクト先(レスポンスコードが301・302の時に入る)
- String http.data:DLしたページデータ(この中から目的のファイルURLを探す;test2_downloadでは常に空白)
- Array res=String str.match(RegExp reg):文字列の検索
- String str:検索対象の文字列
- RegExp reg:正規表現パターン
- String res[r]:検索結果(rは0~合致個所数-1);合致個所が無い場合はfalseが返る
- String RegExp.$1,RegExp.$2,,,:部分合致結果(正規表現に部分合致を含む場合、上記実行直後に作成・格納される;大変重宝する機能)
- String res=String str.replace(RegExp reg,String aft):文字列の置換
- String str:置換対象の文字列
- RegExp reg:正規表現パターン
- String aft:合致部分の置換文字列
- String res:置換結果
- String res=RegExp reg.replace(String str,String aft):文字列の置換
- RegExp reg:正規表現パターン
- String str:置換対象の文字列
- String aft:合致部分の置換文字列
- String res:置換結果
- シフトJISでは日本語文字列の検索・置換がうまくいかない場合が多いのでEUCやUTF-8に変換してから行う事を推奨する
- String res=(Global) unescape(string str):エンコードされた文字列のデコード
- String res=String str.fromEUCtoSJIS()文字列のEUC→シフトJISへの変換
- String str:変換対象の文字列
- String res:変換結果
- String res=String str.fromUTF8toSJIS()文字列のUTF-8→シフトJISへの変換
- String str:変換対象の文字列
- String res:変換結果
最終更新:2011年04月09日 10:58