--------------------------------------------------------------------- YouTube: add download link (テスト版) --------------------------------------------------------------------- 概要 YouTube の動画閲覧ページにダウンロード用リンクを挿入し、更に「動画名.flv」で保存させます。 更新履歴 2007/05/31 03:45 テスト版初公開 2007/05/31 04:00 「add download link」の微調整 (test7) 2007/05/31 18:08 IE対応に向けて、デバッグ版公開 (IEではまだ動作しません。詳しくは、備考参照。) 使い方 1. 下記をクリップボードにコピー 2. Proxomitron起動 3. [Webページ] 又は [ヘッダ] のリスト内の任意の場所で右クリック 4. [フィルタをクリップボードからインポート] --------------------------------------------------------------------- # ダミーのリダイレクタにリンクを貼り、動画URLをパラメータに埋め込むフィルタ [Patterns] Name = "YouTube: add download link [2007/05/31] debug test8.2" Active = TRUE URL = "$TYPE(htm)(www.|)youtube.com/watch\?v\=" Limit = 256 Match = "(^(^SWFObject\($AV(/player2.swf(\?video_id=*)\0)[ +,]))" "$SET(YTube=\0)(^$TST(YTube=?*))|" "(^(^\r\n" "Download link\r\n" "\r\n" "" "$SET(YTube=)" # 「ダミーのリダイレクタ」から動画URLへ透過的にリダイレクトさせるフィルタ [HTTP headers] In = FALSE Out = TRUE Key = "URL: YouTube Rename flv [redirect dummy -> true] [2007/05/31] test5" Match = "http://redirect.youtube.com/[^#/?]++.flv\?rd_uri\=([^&]+)\0" Replace = "$RDIR($UESC(\0))" # ダウンロードリンクを左クリックした時に、ダウンロードダイアログを表示させるフィルタ [HTTP headers] In = TRUE Out = FALSE Key = "Content-Disposition: Download YouTube flv [2007/05/31] (In) test1" URL = "(^www.)[^/]++.youtube.com/get_video\?video_id\=" Replace = "attachment;" --------------------------------------------------------------------- # Wiki ( http://abc.s65.xrea.com/prox/wiki/%A5%D5%A5%A3%A5%EB%A5%BF%A1%A2%A5%EA%A5%B9%A5%C8%B8%F8%B3%AB/2/ ) # のLocation方式で動画名をURLに埋め込む時に、JavaScriptでURLエンコードするフィルタ。 # 「ダミーURLの形」がWikiと違うので、好きな方に書き換えてください。 [Patterns] Name = "YouTube: add download link [Location ver] [2007/05/31] test1" Active = TRUE URL = "$TYPE(htm)(www.|)youtube.com/watch\?v\=" Limit = 256 Match = "(^(^SWFObject\($AV(/player2.swf(\?video_id=*)\0)[ +,]))" "$SET(YTube=\0)(^$TST(YTube=?*))|" "(^(^\r\n" "Download link\r\n" "\r\n" "" "$SET(YTube=)" --------------------------------------------------------------------- 備考 # JavaScriptにはまだURLエンコード用の関数が整っていないようなので、独自にURLエンコード関数を定義しています。 (encodeURIComponent は Firefox2 では動作しましたが、IE7では動作しませんでした) javascript: escape(), encodeURI(), encodeURIComponent() 比較 (groundwalker.com) http://groundwalker.com/blog/2007/02/javascript_escape_encodeuri_encodeuricomponent_.html # IEで動かすと、なぜかLocationヘッダが受け取れません。 ヘッダ全てが認識できていないようですが、何処に問題があるのでしょうか…。