Twitch, Ustream, Youtube に対応した livestreamer の使い方
関連記事
- rtmpdump コマンド一覧と使い方
- RTMPDumpHelper の使い方
- 【rtmpdump】 rtmpexplorer より使いやすい RTMPExploreX
- ニコ生の録画方法 まとめ
- USTroku で録画できない放送を録画・保存する方法
livestreamer の後継の streamlink
streamlink の使い方
該当スレッド(英語)
Livestreamer - Audio/video stream recording forums
v1.12.2 時点での主な対応サイト
対応しているすべてのサイト:Plugins — Livestreamer documentation
配布先:Releases · chrippa/livestreamer · GitHub
更新履歴:Changelog — Livestreamer documentation
Windows PC を使っている場合は、win32-setup.exe のインストーラー版の使用が推奨されていて、そのほかの Mac や Linux などの OS にもソースコードからのインストールによって使うことができる。GUI と CLI のどちらの場合も先に livestreamer をインストールしておく。
Installing — Livestreamer documentation
Windows はここより、Installer か、Zip archive 、最新ベータを試したい場合は Nightly build をクリックして保存する。
使い方
livestreamer は rtmpdump や ffmpeg と同じようにコマンドプロンプトから実行する CLI である。しかし、rtmpdump などと同じようにコマンドラインの実行はハードルが高いので、GUI を使って livestreamer を使う方法もある。
GUI を使う場合
実行の前に Java をインストールしておく
Releases · 0wing/livestreamerJGUI · GitHub
同じファイル名で出力すると止まるので別ファイルを指定する。
そのほかの GUI:Alternative interfaces · chrippa/livestreamer Wiki · GitHub
USTroku で使う方法:【USTroku】 USTREAMのライブ映像を録画・保存 【チェッカー付き】
CLI を使う場合
基本的なコマンド
livestreamer 配信サイトのアドレス --default-stream best -o output.flv
例
livestreamer www.ustream.tv/channel/dommune --default-stream best -o dommune.flv
livestreamer www.twitch.tv/id --default-stream best -o twitch.ts
Ustream の配信形式を HLS に指定する
livestreamer www.ustream.tv/channel/dommune --stream-types hls -o dommune.flv
配信を録画するだけではなく、プレイヤーで再生することもできる。この場合は録画ではなくプレイヤーで見るだけのコマンドであり2種類ある。
livestreamer 配信サイトのアドレス --default-stream best -p "プレイヤーのフルパス"
livestreamer 配信サイトのアドレス --default-stream best -o - | "プレイヤーのフルパス" -
例
livestreamer www.ustream.tv/channel/dommune --default-stream best -p "E:tools\MPC-HC\mpc-hc.exe"
livestreamer www.ustream.tv/channel/dommune --default-stream best -o - | "E:tools\MPC-HC\mpc-hc.exe" -
配信映像を渡せるプレイヤーは MPC-HC のほかに VLC や ffplay、mplayer などがある。
Players — Livestreamer documentation
- Downloads – MPC-HC
- VideoLAN - VLC: Official site - Free multimedia solutions for all OS!
- Zeranoe FFmpeg - Builds
- MPlayer - The Movie Player
- mpv.io - a free, open source, and cross-platform media player
対応しているプロトコル一覧
名前 | Prefix |
Adobe HTTP Dynamic Streaming | hds:// |
Akamai HD Adaptive Streaming | akamaihd:// |
Apple HTTP Live Streaming | hls:// hlvsvariant:// |
Real Time Messaging Protocol | rtmp:// rtmpe:// rtmps:// rtmpt:// rtmpte:// |
Progressive HTTP, HTTPS, etc | httpstream:// |
hls:// は1種類のストリーム。hlvsvariant:// は複数のストリームに対応している。
RTMP のコマンド例
注意点はオプションの指定で個別に "" で囲うのではなく全体を "" で囲うところである。
livestreamer "rtmp://streaming.server.net/playpath live=1 swfVfy=http://server.net/flashplayer.swf" --default-stream best -o out.flv
オプションの指定方法は以下を参照
LIBRTMP(3):
Adobe HDS のコマンド例
livestreamer hds://http://streaming.server.net/playpath/manifest.f4m --default-stream best -o out.flv
フラグメント(分割)ファイルのホスト名が正しく表示されていない場合は映像ソースのホスト以下に // が続いていることがあるので一つ / を消す。
error: This manifest requires the 'pvswf' parameter to verify the SWF
のエラーが出る場合は hds:// 以降の末尾に pvswf=http://streaming.server.net/playpath/player.swf のように swf のフルパスを追加する。これでも Unknown tag type found, this stream is probably encrypted
が出る場合は解決策はない。error: This manifest requires the 'pvswf' parameter to verify the SWF · Issue #395 · chrippa/livestreamer
その他に Adobe HDS Downloader(PHP)もある。
Adobe HDS Downloader(PHP)の該当スレッド
Adobe HDS Downloader - Audio/video stream recording forums
配布先
Scripts/AdobeHDS.php at master · K-S-V/Scripts
ヘルプ
php AdobeHDS.php --help
使い方
php AdobeHDS.php --manifest "f4m のフルパス" --delete
ファイルパスにアクセスできない場合
m3u8 などのマニフェストにアクセスできない場合は cookie をつけることでアクセスできるようになる。cookie は m3u8 をブラウザで開いたときにブラウザの開発ツールで拾うことができる。そのほかに fireoxアドオンの cliget を使ってマニフェストにアクセスする cookie を拾うことができる。それとは別に復号も必要になる場合、特に HDS はファイルアクセスが難しい。
livestreamer hlvsvariant://http://streaming.server.net/playpath/video_sd.m3u8 --default-stream best --http-cookie "Cookie: Rp=hogehoge" -o out.ts
ちなみに ffmpeg の場合
ffmpeg -i "http://streaming.server.net/playpath/video_sd.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4
以下の翻訳先:Command Line Interface — Livestreamer documentation
目次
基本コマンド
livestreamer [OPTIONS] [URL] [STREAM]
位置指定引数
- [URL]
この URL からストリームを解析して取得する。“http://” は省略しても “http://” として認識される。
- [STREAM]
取得する配信内容。
"best"(最高画質) や "worst"(最低画質)、解像度などが指定できる。何も指定しなければ、指定できるオプションをコンマ区切りで出力する。
全般の設定
- -h, --help
ヘルプメッセージの表示。
- -V, --version
バージョンの表示。
- --plugins
現在インストールされているプラグインの表示。
- --can-handle-url URL
指定した URL に Livestreamer が対応できるかどうかを確認する。
1 なら無理。0 なら可能。
他のアプリと連携するのに便利。
- --config FILENAME
オプションのコンフィグファイルを読み込む。
詳しい設定。http://docs.livestreamer.io/cli.html#configuration-file
- -l LEVEL, --loglevel LEVEL
ログメッセージの閾値を指定する。
指定できる値:none, error, warning, info, debug
- -Q, --quiet
ヘルプメッセージの表示。
- -j, --json
一般的なテキスト形式ではなく JSON 形式で出力する。他のアプリと連携するのに便利。
- --no-version-check
新しい Livestreamer がリリースされたのを確認しない。
- --version-check
Livestreamer のバージョンをチェックし終了する。
プレイヤーの設定
- -p COMMAND, --player COMMAND
その指定したプレイヤーにデータを送る。
例
"vlc --file-caching=5000"
パスを指定する例
"'/path/with spaces/vlc' --file-caching=5000"
- -a ARGUMENTS, --player-args ARGUMENTS
標準入力されたプレイヤーの表示タイトル名の指定。
規定値 "-"(stdin)(標準入力)
- -v, --verbose-player
プレイヤーにコンソール出力を表示するのを許可する。
- -n, --player-fifo, --fifo
標準入力されたデータの代わりに名前の付いたパイプ入力を読み込む。
- --player-http
標準入力されたデータの代わりに HTTP ストリームを読み込む。
- --player-continuous-http
標準入力されたデータの代わりに HTTP ストリームを読み込むが、何度も接続を試みる。
- --player-external-http
他のプレイヤーを立ち上げずに HTTP 経由で配信する。
これは外部デバイス、例えばスマートフォンやストリーミングボックスで見るのに有効である。
挙動は continuous HTTP に似ているが、プレイヤーは立ち上がらない。
サーバがローカル(ループバック)インターフェースに対して継続的にリッスン状態になる。
配信にアクセスできる URL はコンソールに表示され、終了するには CTRL-C を使う。
- --player-external-http-port PORT
外部の HTTP サーバがこの機能を使っている場合にポート番号を指定する。
省略した場合は 0 から 1024 までランダムに決められる。
- --player-passthrough TYPES
コンマ区切りの指定より、URL から解釈を試みる。
指定できる値:hls, http, rtmp
再生するプレイヤーがこのプロトコルに対応しているか確認すること。
- --player-no-close
規定値では配信が終了するとプレイヤーは閉じるが、この指定をすることで閉じなくすることができる。
出力ファイルの設定
- -o FILENAME, --output FILENAME
出力されるファイル名の指定。出力場所に同じファイル名がある場合は上書きするかの選択ができる。
- -f, --force
出力場所に同じファイル名がある場合は強制的に上書きされる。
- -O, --stdout
再生せずに標準出力する。使い方に注意。
配信の設定
- --default-stream STREAM
ここで指定したストリームを開く。無指定の場合は "best" 設定になる
直接指定する場合は 1080p, 720p などとマニフェストに書いてあるストリームを1つ指定する
- --retry-streams DELAY
指定した秒だけ遅らせて読み込む
- --retry-open ATTEMPTS
指定回数だけ開けるまでストリームを開く。規定値は 1
- --stream-types TYPES, --stream-priority TYPES
カンマで区切られたリストのストリームタイプを許可する。このオプションの目的は同時配信しているストリームに異なるプロトコルで同じストリーム名の場合に用いる
規定値は "rtmp,hls,hds,http,akamaihd"
- --stream-sorting-excludes STREAMS
指定したストリームの品質を比較して取得できるストリーム一覧を取得する
例:[operator]
[operator] には >, >=, <, <= が使える
480p よりも大きい解像度を除く
">480p"
複数指定する場合
">480p,>medium"
Stream transport の設定
- --hds-live-edge SECONDS
HDS のライブストリームで指定した秒の edge(訳未確定) から開始する
規定値は 10.0
- --hds-segment-attempts ATTEMPTS
指定回数だけ HDS セグメントが開けるまでストリームを開く
規定値は 3
- --hds-segment-threads THREADS
HDS セグメントをダウンロードするのに貯めておくスレッドサイズ。1 から 10 まで指定できる
規定値は 1
- --hds-segment-timeout TIMEOUT
HDS セグメントが接続とタイムアウトする(秒)
規定値は 10.0
- --hds-timeout TIMEOU
HDS ストリームがタイムアウトする(秒)
規定値は 60.0
- --hls-live-edge SEGMENTS
HLS のライブストリームでいくつのセグメント末端から開始するか
小さい値ほど可能な限り低遅延で取得できるがバッファーは減る
規定値は 3
- --hls-segment-attempts ATTEMPTS
指定回数だけ開けるまで HLS セグメントを開く
規定値は 3
- --hds-segment-threads THREADS
HLS セグメントをダウンロードするのに貯めておくスレッドサイズ。1 から 10 まで指定できる
規定値は 1
- --hls-segment-timeout TIMEOUT
HLS セグメントが接続とタイムアウトする(秒)
規定値は 10.0
- --hls-timeout TIMEOUT
HLS ストリームがタイムアウトする(秒)
規定値は 60.0
- --http-timeout TIMEOUT
HTTP ストリームがタイムアウトする(秒)
規定値は 60.0
- --ringbuffer-size SIZE
リングバッファサイズ。M や K を使うことで bytes を認識する
小さい値ほどプレイヤでの再生やダウンロード開始が早くなるが、その分受信速度に応じて映像が止まる可能性がある。メモリ容量の小さい環境の場合(Raspberry Pi など)は小さい値が推奨される
規定値は 16M
- --rtmp-proxy PROXY, --rtmpdump-proxy PROXY
RTMP ストリームを開くときにプロキシーを指定する
例:127.0.0.1:9050
- --rtmp-rtmpdump FILENAME, --rtmpdump FILENAME, -r FILENAME
RTMP ストリームを開くときに RTMPDump を指定する
環境変数でパスが通っていなければ指定できる
例:“/usr/local/bin/rtmpdump”
- --rtmp-timeout TIMEOUT
RTMP ストリームがタイムアウトする(秒)
規定値は 60.0
- --stream-segment-attempts ATTEMPTS
指定回数だけ開けるまでセグメントを開く
例えば Ustream で他のオプションでカバーできないときに指定する
規定値は 3
- --stream-segment-threads THREADS
セグメントをダウンロードするのに貯めておくスレッドサイズ。1 から 10 まで指定できる
例えば Ustream で他のオプションでカバーできないときに指定する
規定値は 1
- --stream-segment-timeout TIMEOUT
セグメントが接続とタイムアウトする(秒)
例えば Ustream で他のオプションでカバーできないときに指定する
規定値は 10.0
- --stream-timeout TIMEOUT
ストリームがタイムアウトする(秒)
例えば Ustream で他のオプションでカバーできないときに指定する
規定値は 60.0
- --stream-url
可能であれば、ストリームを URL に変換して表示する
- --subprocess-cmdline, --cmdline, -c
内部でストリームを再生するのにコマンドラインを表示する
この設定は RTMP ストリームに限る
- --subprocess-errorlog, --errorlog, -e
一時ファイルとしてログファイルを可能な限り出力する
ファイルは一時ファイルが置かれる場所に保存される
HTTP の設定
- --http-proxy HTTP_PROXY
HTTP のリクエストに HTTP プロキシーを用いる
例:http://hostname:port/
- --https-proxy HTTPS_PROXY
HTTPS のリクエストに HTTPS プロキシーを用いる
例:https://hostname:port/
- --http-cookies COOKIES
セミコロンで区切られたクッキーのリストを HTTP リクエストに用いる(1.11 で廃止)
例:"foo=bar; baz=qux"
- --http-cookie KEY=VALUE
それぞれの HTTP リクエストに対して cookie を加える
複数の cookie も可能(1.11 以降)
ブラウザの開発ツールから取得できるのを利用する
- --http-headers HEADERS
セミコロンで区切られたヘッダーのリストを HTTP リクエストに用いる(1.11 で廃止)
例:"X-Forwarded-For=0.0.0.0; User-Agent=foo"
- --http-header KEY=VALUE
それぞれの HTTP リクエストに対して header を加える
複数の header も可能(1.11 以降)
ブラウザの開発ツールから取得できるのを利用する
例:"User-Agent=Mozilla/5.0 (Linux; U; Android 4.3; en-us; sdk Build/MR1) AppleWebKit/536.23 (KHTML, like Gecko) Version/4.3 Mobile Safari/536.23"
- --http-query-params PARAMS
セミコロンで区切られたクエリのパラメーターのリストを HTTP リクエストに用いる(1.11 で廃止)
例:"foo=bar; baz=qux"
- --http-query-param KEY=VALUE
それぞれの HTTP リクエストに対してクエリのパラメーターを加える
複数のクエリのパラメーターも可能(1.11 以降)
- --http-ignore-env
(HTTP_PROXY, など)の複数の HTTP の設定を無視する
- --http-no-ssl-verify
SSL 認証を行わない。
- --http-ssl-cert FILENAME
SSL 認証を行う。.pem 形式のファイルを指定する
- --http-ssl-cert-crt-key CRT_FILENAME KEY_FILENAME
SSL 認証を行う。.crt, .key 形式のファイルを指定する
- --http-timeout TIMEOUT
他の設定で指定した HTTP リクエスト以外の全般のタイムアウト(秒)
規定値は 20.0
プラグインの設定
- --plugin-dirs DIRECTORY
プラグインをディレクトリから読み込む
複数のディレトリを指定する場合はセミコロンを使う
- --twitch-oauth-token TOKEN
Twitch authentication の OAuth を使う
--twitch-oauth-authenticate で指定して返ってきた TOKEN を指定する
- --twitch-cookie COOKIES
Twitch のサブスクリプションチャンネルにアクセスするための認証クッキーを指定する
例:"_twitch_session_id=xxxxxx; persistent=xxxxx"
注意:この方法は旧式で難解なので代わりに、--twitch-oauth-authenticate を使う
- --ustream-password PASSWORD
UStream.tv のパスワードのかかったチャンネルにアクセスするためのパスワード
- --crunchyroll-username USERNAM
Crunchyroll で制限されたストリームにアクセスするためのユーザー名
- --crunchyroll-password [PASSWORD]
--crunchyroll-username で指定したアカウントのパスワード
空欄の場合はプロンプト表示される
- --crunchyroll-purge-credentials
Crunchyroll で前回の認証に用いたキャッシュを破棄して新しいセッションで再認証する
- --livestation-email EMAIL
Livestation にログインするメールアドレス
プレミアム品質のストリームにアクセスするのに使う
- --livestation-password PASSWORD
--livestation-email のパスワード
翻訳先:Command Line Interface — Livestreamer documentation
- 関連記事
-
- Twitch, Ustream, Youtube に対応した livestreamer の使い方 (2014/05/23)
- 無料ユーザーで Ustream 外部貼り付けページの利用は2月中旬頃まで (2014/02/06)
- Ustreamの広告を非表示にする方法 (2011/09/19)
- 【Ustream】 自殺配信があった (2010/11/09)
- 【Ust】 日本語化 (2010/04/28)
- 【Ustream 他】 各種メディアプレイヤーで視聴する方法 (2010/04/16)
この記事へのコメント