上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--|スポンサー広告||TOP↑

Mac OS X 10.4.7
Safari 2.0.4 (419.3)
Shockwave Flash 9.0 r16
で動作確認。

Safari で YouTube 動画の読み込みが完了してから実行。
/private/var/tmp/folders.501 にある FLV 動画のキャッシュをデスクトップにコピーします。
キャッシュが複数ある場合はただまとめてコピーして拡張子をつけるだけ。
キャッシュが一つで Safari の前面ページの URL が http://www.youtube.com/watch?v= で始まっている場合に限り、ファイルのリネームができます。
キャッシュが一つで、かつ
do JavaScript "document.urlForm.video_link.value" in document 1
の結果が "" でない場合に限り、ファイルのリネームができます。
途中で飽きたのでいい加減。エラー多発するかも。(既存ファイルの変更・移動・削除を行うものではないので深刻なトラブルは起きないと思います。)
動かないときは TemporaryItemsFlashTmpXXXX というファイルを手作業でコピーするのが確実^^;

tell application "Finder"
set tmpFolder to ((startup disk as Unicode text) & "private:var:tmp:folders.501:") as Unicode text
if not (exists tmpFolder) then return
set tmpFiles to every document file of folder tmpFolder
set flvFiles to {}
repeat with curItem in tmpFiles
try
set x to (open for access file (curItem as Unicode text))
set y to read x to 3
close access x
if y is "FLV" then set flvFiles to flvFiles & {contents of curItem}
on error
close access x
end try
end repeat
if (number of items of flvFiles) = 1 then
set newFolder to makeNewFolder() of me
set duplicatedFLV to (duplicate flvFiles to newFolder)
set flvName4 to (name of (item 1 of newFolder))
tell application "Safari"
set videoURL to do JavaScript "document.urlForm.video_link.value" in document 1
if videoURL is not "" then
set flvName1 to (do shell script "echo " & quoted form of videoURL & " | sed 's/http:\\/\\/www\\.youtube.com\\/watch\\?v\\=//'")
set flvName2 to (name of document 1)
set flvName3 to (do shell script "echo " & quoted form of flvName2 & " | sed 's/^YouTube - //'")
choose from list {flvName1, flvName2, flvName3, flvName4} with prompt "Please choose new FLV name." default items {flvName2}
set theResult to result
else
set theResult to false
end if
end tell
if theResult is not false then
set fileName to (do shell script "echo " & quoted form of (item 1 of theResult) & " | sed 's/^\\./_/;s/:/_/g;s/\\//_/g'")
set (name of duplicatedFLV) to (fileName & ".flv")
end if
activate
reveal newFolder
else if (number of items of flvFiles) > 1 then
set newFolder to makeNewFolder() of me
duplicate flvFiles to newFolder
set duplicatedFiles to (every document file of newFolder)
repeat with curItem2 in duplicatedFiles
set name of curItem2 to ((name of curItem2) & ".flv")
end repeat
else
display dialog "Cannot find FLV." buttons {"OK"} default button 1
end if
end tell

on makeNewFolder()
tell application "Finder"
make new folder at (path to desktop folder) with properties {name:"YouTube Caches -" & (do shell script "date '+%Y%m%d%H%M%S'")}
end tell
end makeNewFolder

スクリプト中に円記号があったらすべてバックスラッシュに置換する必要があります。(Web ブラウザによります。)


追記 (061013)
いつの間にかキャッシュの場所が変わってしまったらしく、スクリプトの2行めを以下のように書き換えないといけないようです。

set tmpFolder to ((startup disk as Unicode text) & "private:var:tmp:folders.501:TemporaryItems:") as Unicode text

しかしすでに SafariStand 2.0b16 が Adobe Flash Player 9 に対応しているのでそちらを使った方が手っ取り早いですね。
SafariStand をインストールした Safari で、読み込みが完了している YouTube の動画画面を Command + クリック (林檎キー + クリックです。Control + クリックではないので注意。) すると、ページのタイトル+".flv" というファイル名で保存できます。

スポンサーサイト

08/04|AppleScriptコメント(0)トラックバック(0)TOP↑
この記事にコメント
名前:
コメントタイトル:
メールアドレス:
URL:
コメント:

パスワード:
管理人だけに表示:
管理者にだけ表示を許可
この記事にトラックバック
プロフィール

AquaBowler

  • Author:AquaBowler
  • 現在の Mac 環境:
    iBook Late2001
    Mac OS X 10.4.11
フリーエリア
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
del.icio.us
feed meter

RSS feed meter for http://kotoerisan.blog16.fc2.com/

FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。