YouTubeの動画をローカルに保存して見る方法

portsnapの出力を眺めてたら、/usr/ports/www/youtube_dlというのを見付ける。
気になったのでMakefileを覗いてみと・・・

$ head -n 16 /usr/ports/www/youtube_dl/Makefile
# New ports collection makefile for:    youtube_dl
# Date created:         2006-08-12
# Whom:                 Pankov Pavel 
#
# $FreeBSD: ports/www/youtube_dl/Makefile,v 1.4 2006/11/04 22:31:45 miwi Exp $
#

PORTNAME=       youtube_dl
PORTVERSION=    2006.10.30
CATEGORIES=     www
MASTER_SITES=   http://www.arrakis.es/~rggi3/youtube-dl/
DISTFILES=      youtube-dl-${PORTVERSION}
EXTRACT_ONLY=

MAINTAINER=     pankov_p@mail.ru
COMMENT=        A program for downloading videos from YouTube.com

どうもYouTubeの動画をダウンロードするプログラムらしい。
せっかくだからインストールしてみた。

事前準備

Makefileに載ってた公式サイトを見てみると・・・

らしいので、
FLV形式そのままで再生するプログラムにmultimedia/mplayer
FLV形式を他の形式に変換するプログラムにmultimedia/ffmpegを用意すればよさそう。

インストール

www/youtube_dl、multimedia/mplayer、multimedia/ffmpegをそのままPortsで入れるだけ。
特にオプションはいらないので簡単。

ダウンロード実践

PS3のTVCM(http://www.youtube.com/watch?v=CR3tsTCZHus)で試してみる。
ここではps3cm.flvという名前で保存する。

$ youtube-dl -o ps3cm.flv "http://www.youtube.com/watch?v=CR3tsTCZHus"
Retrieving video webpage... done.
Extracting video URL parameters... done.
Video data found at http://youtube-655.vo.llnwd.net/d1/06/E6/CR3tsTCZHus.flv
Retrieving video data... 623k of 623k done.
Video data saved to ps3cm.flv


「-s」オプションで、ダウンロードは行わないシミュレーションモードというのになる。
あとはwgetでも何でも好きなのでダウンロードすればいいみたい。

$ youtube-dl -s "http://www.youtube.com/watch?v=CR3tsTCZHus"
Retrieving video webpage... done.
Extracting video URL parameters... done.
Video data found at http://youtube-655.vo.llnwd.net/d1/06/E6/CR3tsTCZHus.flv
$ wget -O ps3cm.flv http://youtube-655.vo.llnwd.net/d1/06/E6/CR3tsTCZHus.flv
--01:23:45--  http://youtube-655.vo.llnwd.net/d1/06/E6/CR3tsTCZHus.flv
           => `ps3cm.flv'
youtube-655.vo.llnwd.net をDNSに問いあわせています... 69.28.176.66
youtube-655.vo.llnwd.net|69.28.176.66|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 638,847 (624K) [video/flv]

100%[===================================>] 638,847      306.22K/s

01:23:50 (305.28 KB/s) - `ps3cm.flv' を保存しました [638847/638847]


プロクシを使うならhttp_proxyに値をセットする。

$ http_proxy=http://hoge:3128
$ youtube-dl -s "http://www.youtube.com/watch?v=CR3tsTCZHus"

再生

FLV形式で見るならmplayerを使う。

$ mplayer ps3cm.flv


FLVのままでは不便な時は、ffmpegで形式変換する。
これで他のプレイヤでも見え、一時停止や巻戻しが使える。

$ ffmpeg -i ps3cm.flv ps3cm.avi



multimedia/xineで再生した図