概要
起動オプション(コマンドライン引数)を指定することで、外部ソフトや動画情報ウィンドウでのスクリプトなどからNicoPlayerの起動時の設定や、起動しているNicoPlayerへの操作を行うことが出来ます。
引数はNicoPlayerへのパスの後に記述し、複数の場合はスペースで区切ります。パスにスペースが含まれていると引数を上手く分割できない場合があるので、パスを指定する場合は"..."のようにダブルクォーテーションで囲うようにします。
書式:
"(NicoPlayerのインストールフォルダパス)\NicoPlayer.exe" 引数1 引数2...
動画情報ファイルでも設定することができます。
メッセージ送信による起動オプションの指定
外部アプリからコマンドライン引数を使ってコマンドを指定する方法以外に、WM_COPYDATAメッセージを送信することでもNicoPlayerにコマンドを送ることが出来ます。
コマンドライン引数を使った指定に比べ再度NicoPlayer.exeを読み出す必要がないためオーバーヘッドが小さくて済みます。
以下にC++からの呼び出しの例を示します。
コマンドライン引数を使った指定に比べ再度NicoPlayer.exeを読み出す必要がないためオーバーヘッドが小さくて済みます。
以下にC++からの呼び出しの例を示します。
#include <windows.h> #include <string> // NicoPlayerのウィンドウを探しコマンドを送信 bool NicoPlayer_SendCommand( const std::wstring &sCommand ) { static const DWORD INDEX_COMMANDLINE = 0; HWND hWndNicoPlayer = FindWindow( L"CNicoPlayer", NULL ); if( !hWndNicoPlayer ){ return false; } std::wstring sSendData; sSendData = L"cmd: " + sCommand; // cmd: = dummy COPYDATASTRUCT cdsData; cdsData.dwData = INDEX_COMMANDLINE; cdsData.cbData = sizeof( WCHAR ) * ( (UINT)sSendData.size() + 1 ); cdsData.lpData = (LPWSTR)sSendData.c_str(); return SendMessage( hWndNicoPlayer, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&cdsData ) != 0; }
以下のように呼び出してコマンドを送信します。
// 次のファイルを再生 NicoPlayer_SendCommand( L"player -next" );
引数
ダウンロード
リストに追加
URL [オプション]
[オプション]には以下の内容が指定できます。
-movie | 動画を保存 |
-comment | コメントを保存 |
-info | 動画情報を保存 |
-thumbnail | サムネイルを保存 |
-addlist | プレイリストに追加 |
-playafter | ダウンロード後再生 |
-createdir | フォルダを作成 |
-afterexit | ダウンロード後ソフト終了 |
-onlyadd | リストに追加のみ(すぐにDL開始しない) |
savepath="パス" | 保存先パス |
log="日時" | 過去ログ指定※1 |
※ :オプションが何も指定されなかった場合はダウンロードウィンドウでの現在の設定内容が適用されます
※1:日時の指定は "年/月/日 時:分:秒"形式または、UNIX時間を直接指定できます。(時:分:秒は省略可能)
※1:日時の指定は "年/月/日 時:分:秒"形式または、UNIX時間を直接指定できます。(時:分:秒は省略可能)
ファイルからリストに追加
".datファイルパス"
プレイリスト
ファイル読み込み
".m3uファイルパス"
ファイルからリストに追加
".m3uファイルパス" -addlist
ファイル,フォルダをリストに追加
"パス" -addlist ※フォルダパスを指定した場合は、リストに追加するファイルの種類を選択するダイアログが表示されます
リストをクリア
playlist -clear
再生操作・コメント
ファイルを再生
"ファイルパス"
ファイルを再生-コメントの読み込み数を指定
"ファイルパス" comment_readnum="読み込み数"
ファイルを再生-コメントの読み込み開始位置を指定
"ファイルパス" comment_readstart="読み込み開始位置"
※コメントファイル内での上から数えた0から始める位置です
ファイルを再生-コメントの時間軸変更を指定
"ファイルパス" comment_shift="ずらす時間[ms]"
※マイナス方向にずらす場合は"-5000"のように-記号を付けて表します
再生開始
player -play
一時停止
player -pause
停止
player -stop
前へ
player -prev
次へ
player -next
音量
player -volume percent=音量(%)
速度
player -rate val=速度(実数値)
シーク
player -seek pos=位置(ミリ秒) player -seek percent=位置(%)
コメントの投稿
player -postcomment comment="コメント" command="コマンド" vpos="動画上での位置(1/100秒)" id="動画ID"
※vposを省略すると現在再生中の動画時間が指定されます
※idを省略すると現在再生中の動画が指定されます
※コメントでの改行は<br>を入力すると置き換えられます
※コメントでの"(ダブルクォーテーション)は \" を入力すると置き換えられます
※idを省略すると現在再生中の動画が指定されます
※コメントでの改行は<br>を入力すると置き換えられます
※コメントでの"(ダブルクォーテーション)は \" を入力すると置き換えられます
コメントの時間軸変更
player -shift time="ずらす時間[ms]"
※マイナス方向にずらす場合は"-5000"のように-記号を付けて表します
コメントの透明度を設定
player -commentalpha percent=アルファ値(%)
動画情報ウィンドウ
ウィンドウの表示を変更
videoinfo -move href="パス"
情報ウィンドウ
メッセージを追加
info msg="メッセージ" (-inactiveオプションと併用するとメッセージ追加時に情報ウィンドウを表示状態にしません)
各種情報を取得
外部アプリとの連携の際に使用します。書式は以下の通りです。
get [オプション] hwnd=ウィンドウハンドル id=識別子
指定したウィンドウへWM_COPYDATAメッセージを送信します。データ形式は文字列型(LPCWSTR)です。COPYDATASTRUCT構造体のdwData値はid=を指定することで変更できます。(省略すると0になります)
hwndにVIDEOINFOを指定することで動画情報ウィンドウHTML内タグ<div id="exchange" style="display:none;"></div>のinnerTextに値を設定できます。
これにより動画情報ウィンドウのJavaScriptからNicoPlayerの各種情報の取得が可能になります。
これにより動画情報ウィンドウのJavaScriptからNicoPlayerの各種情報の取得が可能になります。
[オプション]には以下の内容が指定できます。
-version | NicoPlayerのバージョン(x.xx)を取得 |
-softdir | NicoPlayerがあるフォルダパスを取得 |
-playfile | 再生開始時に指定したファイルパスを取得 |
-mediafile | 再生中のメディアファイルパスを取得 |
-commentfile | 再生中のコメントファイルパスを取得 |
-infofile | 再生中のメディアファイルに対応した動画情報ファイルを取得 |
-time | 現在の再生時間(ms)を取得 |
-length | メディアの長さ(ms)を取得 |
-mediastate | メディアの再生状態("Stopped", "Paused", "Running", "")を取得 |
-playlist | プレイリストデータをJSON形式で取得 |
その他
外部アプリ実行
exec ...
execのスペース後にある文字列を全てコマンドラインとして解釈し実行します(-inactive, -echoは削除されます)
SendMessage()実行
sendmsg [パラメータ]
[パラメータ]には以下の内容が指定できます。
msg=Msg値 | メッセージ |
wparam=wParam値 | 第1パラメータ |
lparam=lParam値 | 第2パラメータ |
SendMessage()関数についてはこちらを参照して下さい。
更新で使用した一時ファイルを削除
other -deletetemp
※更新後の次回起動時に自動的に実行されます
NicoPlayerのウィンドウをアクティブにしない(全てのオプションと併用可能)
-inactive
NicoPlayerに渡されたコマンド内容を情報ウィンドウに表示する(全てのオプションと併用可能)
-echo
ダウンロード中でもダイアログを表示させず強制終了する
-exitforce
使用例
コメントのみダウンロード
http://www.nicovideo.jp/watch/sm***** -comment
保存先を指定して動画をダウンロード
http://www.nicovideo.jp/watch/sm***** -movie savepath="C:\Download" ※上記ではC:\Downloadフォルダに保存
動画をダウンロードした後ソフトを自動的に終了させる
http://www.nicovideo.jp/watch/sm***** -movie -afterexit
動画の30%の位置にシーク
player -seek percent=30
動画の開始から5秒の位置にシーク
player -seek pos=5000
指定したファイルを5秒目の位置から再生
"ファイルパス" player -seek pos=5000
指定したファイルを再生+コメントの時間軸を5秒手前にずらす
"ファイルパス" comment_shift=-5000
※"ファイルパス" player -shift time=-5000でも可
指定したファイルを再生+100個目から250個分のコメントを読み込む
"ファイルパス" comment_readnum=250 comment_readstart=100
現在のリストをクリアして新たにファイルから項目を追加
下記の内容を2回に分けて実行します。
playlist -clear "C:\list.m3u" -addlist ※上記ではC:\list.m3uファイルから項目を追加
プレイリストの表示を切り換える(sendmsg使用)
sendmsg msg=273 wparam=8800 lparam=0 ※273はWM_COMMAND、8800はID。lparam=0は省略可能。
WM_COPYDATAでNicoPlayerがあるフォルダパスを取得
get -softdir hwnd=(自ウィンドウハンドル)
上記のコマンドをNicoPlayerに送信するとNicoPlayerからWM_COPYDATAで対応する値が送られてきます。
WM_COPYDATAメッセージで以下のように処理することで値を受け取ることが出来ます。
WM_COPYDATAメッセージで以下のように処理することで値を受け取ることが出来ます。
COPYDATASTRUCT* pCopyDataStruct = (COPYDATASTRUCT*)lParam; LPCWSTR lpSoftDir = (LPCWSTR)pCopyDataStruct->lpData; // 表示テスト MessageBox( NULL, lpSoftDir, NULL, MB_OK );
コメント
- LpdcUGjWoDDCXxJQIlI -- picoele (2009-02-28 23:33:51)
- MEeDyEbyANOmxFY -- ivtrmcrgc (2009-05-13 20:16:44)