---------------------------------------------------------------------
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=?*))|"
"(^(^
"
"$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=?*))|"
"(^(^"
"$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ヘッダが受け取れません。
ヘッダ全てが認識できていないようですが、何処に問題があるのでしょうか…。