2012年1月9日月曜日

[メモ] [Google Chrome] [Flash] Flash Video Fileの動画保存

動画サイトは多数あり、また動画を保存(ダウンロード)するためのアプリやサイトも多数ありますが、そのあたりを使用して保存できなかった場合に昔ながらのテンポラリファイルをコピーするやり方で保存を行おうと思ったところGoogle Chromeではテンポラリファイルがロックされていて通常の方法ではコピーできませんでした。(IEは使っていないため分かりませぬ)
さらに動画を表示しているタブを閉じるとテンポラリファイルが消えてしまうのでコピーできない、という場合にコピーして保存を行うときのメモ。


ここにやり方が書いてあったのでリンクしときます。
http://www.walkernews.net/2008/09/21/how-to-copy-youtube-video-or-flv-file-from-google-chrome-cache-folder/


■結論:ロックされたファイルをコピーできるツールを使いコピーする
使用ツール:hobocopy
以下からダウンロードできます。環境にあわせてどうぞ。
https://github.com/candera/hobocopy/downloads

このツールはコマンドラインで使用するツールのため面倒くさいです。GUIで同じことができるツールがあればそっちを使ったほうがよいと思います。私はバッチファイルを作って「送る」に入れときました。緊急用なのでだいたいそれで事足りています。

■確認環境
OS:Windows7 64bit
ブラウザ:Google Chrome 17.0.963.26 beta-m
Flash Player:バージョン 11,1,102,55

以下一応サンプル

・動画のテンポラリファイルはC:\Users\[ユーザ名]\AppData\Local\Tempに作成される
・上の[ユーザ名]はWindowsで使用しているユーザ名
・hobocopyは3つの引数を渡して使用
・引数1:コピー元のフォルダ
・引数2:コピー先のフォルダ
・引数3:コピーするファイル
・「hobocopy.exe」を置いたフォルダにパスを通したとして、「fla7049.tmp」というファイルを「C:\download\movie」へコピーする場合の例

コマンドプロンプトでカレントディレクトリをC:\Users\[ユーザ名]\AppData\Localにして、下のような感じ
C:\Users\yasuyuki\AppData\Local>hobocopy Temp C:\download\movie fla7049.tmp

コピーするまでブラウザの動画を表示していたタブは開いたままにしておかないとテンポラリファイルが消えてしまうので注意

次のような簡単なバッチを作って「送る」にいれとくとかすると多少楽かも知れません。

-----

@echo off
if "%1" == "" goto error
hobocopy %temp% "C:\download\movie" %~n1%~x1
goto end
:error
echo 引数を指定してくださいまし。
pause
:end
-----

■ちなみに送るの場所はここ
C:\Users\[ユーザ名]\AppData\Roaming\Microsoft\Windows\SendTo


いろいろ面倒ですが、通常はあんまし使わないと思うのでまあいいかなという感じで

■2012/05/04 追記
ちなみにプロセスを強制終了させるとtmpファイルがロック解除された状態で
残っているかも知れません。その場合はツールを使わなくてもコピーできます。
Windowsフリーズ→電源ブッチでそんなことに遭遇しました。
タスクマネージャを使ったわけじゃないのでいつもそうなるかは分かりません。

■2012/08/13 追記
tmpファイルの保存先及び名前が変わったみたいです。
バージョン21.0.1180.60 mでは
C:\Users\ユーザ名\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash
というフォルダにflaという接頭辞がつかないカタチで保存されていました。