ExecSelect -DTV自動エンコード支援ツール


■ 目次

  1. ダウンロード
  2. 概要
  3. 機能・特徴
  4. 動作環境・利用ソフトウェア
  5. 導入
  6. 設定ファイル項目詳細
  7. コマンドライン処理について
  8. 実行結果ログ
  9. 不具合報告・フィードバック
  10. 謝辞
  11. Version履歴
  12. 注意事項

ダウンロードはこちら


■ 概要

録画が終わった録画TSファイルを、設定した条件で自動エンコードするツールです。 面倒なエンコード前後の処理、番組毎のフォルダ作成と振り分け、移動やコピー、FTP転送、しょぼいカレンダー情報を元にファイルリネーム等の処理をするものです。 空いた時間にコツコツエンコードするのは面倒で非効率だ!自動化できるだろ!と思い立った次第です。


■ 機能・特徴


■ 動作環境

主に TVTest + TvRock + Amatsukaze 環境での動作を想定しています。 いわゆるTS抜き環境が導入されている必要があります。


■ 導入

解凍すると下記ファイルがあると思いますので、例えば"C:\TVTest"に設置して下さい。 TvRock及びTvTestのPATHは"C:\TVTest"を想定し、AmatsukazeのPATHは("C:\TVTest\Amatsukaze")を想定しています。 その他のPATHで運用されている方は設定ファイル"execselect.json"を修正してください。

execselect.exe
execselect.json
channelsetting.json
channelsettingSAMPLE.json
ReadMe.md

※ 関東圏で地上波のみの方は、同梱のexecselect.jsonとchannelsetting.jsonがそのまま使えますので下記3に飛ばしてOKです。

1. しょぼいカレンダー設定ファイル(channelsetting.json)の作成

アニメジャンルで尚且つ”しょぼいカレンダー”を使用したい場合にはこのファイル作成が必須です。 何故かと言うと、しょぼいカレンダーは独自チャンネル番号で管理されており、その為の変換が必要になり、このファイル作成が必須になります。

※同梱されているchannelsetting.jsonは東京の地上デジタル放送チャンネルが設定されています。

  1. 録画したTSファイルを全チャンネル分用意し、そのフォルダをchannelsettingMAKE.batにD&Dして下さい。
  2. フォルダ内のTSファイルを全て読み込み解析しますので、設定ファイルが出来上がるまで少々待ちます。
  3. channelsetting_.jsonが出来ます。
  4. これで全チャンネル出来れば良いのですが、放送局名が変わったり(日本テレビ⇒日テレ1)していてうまく変換しきれないチャンネルが出ます。
  5. なのでしょぼいカレンダーChID一覧(チャンネルID)を見てちゃんと作成されているか比較し、エディタ等でChIDとChNameを手動で修正してください。
  6. 最後にchannelsetting.jsonにリネームしexeと同じPATHに設置してください。

※1行に作成されてしまいますので編集する場合は「JSON 整形」で検索したサイト等で整形すると見易くなります。 ※編集する場合はUTF-8対応のエディタで編集を行ってください。

2. 動作設定(execselect.json)ファイルの作成

処理の挙動を記述します。 自分の行いたい動作になる様に下記execselect.jsonの設定項目を見てexecselect.jsonを記述します。 完了したらexecselect.exeと同じPATHに入れて下さい。

とりあえずサンプルのexecselect.jsonが同梱されていますのでそれを自分の環境に合わせて修正するのが良いかと思います。

※大体最初はJSONの記述で失敗すると思いますので、Web等でJSONチェッカーとかでチェックしてみるのもありです。 ※設定ファイルの各項目についての詳しい設定については、下記「execselect.jsonの設定項目」を参照して下さい。

3. TvRock設定

録画終了時にexecselect.exeが実行される様に下記の通り設定します。

TvRock設定を開き

プロセスタブの"コマンドを実行する"にチェックし、BOX内に下記コマンドを設定 する。

   TN:C:\TVTest\execselect.exe "%1"
   exit:rem 何もしない

次にTvRock録画予約画面に行き、上記設定の「TN:C:\TVTest\execselect.exe "%1"」が実行出来る様に設定します。

ブラウザでTvRock画面を開き、「自動検索予約リスト」の「終了後コマンド」を「規定コマンドを実行」に変更。 これで録画終了時にTSファイルがexecselect.exe渡され起動される筈です。

設定完了

これで設定は終了です。 お疲れ様でした。


■ 設定ファイル項目詳細

この設定ファイルを起動時に読み込み、コレに基づいた動作をします。 ※JSONファイルの文字コードは "UTF8" のみですので、こ注意下さい。 記述できたら正しいJSONになっているかどうかをcheckオプションで

C:\TVTest> execselect.exe --check

チェックしてみてください、何も表示されなければOKです。 ※WebにJSONチェッカーがありますので、それでチェックするのが早いと思います。

GENERAL

全体に関わる設定です。


AUTOENTRY

コマンドラインで-a(--auto)オプション指定時にこの設定を参照します。

C:\TVTest> execselect.exe --auto

録画デレクトリが決まった場所であれば、パラメータとパスを一々記述しなくてもデフォルト設定として機能させたい場合に便利です。 指定されたデレクトリから(再帰的に)ファイルを探し出し、自動的に処理に登録します。 複数箇所設定可能です。

例:PATHで指定したフォルダを拡張子tsで再帰的にファイル検索し処理します。
"AUTOENTRY": [
    {
        "AVAILABLE": true,
        "RECURSIVE": false,
        "REGEX": ".ts$",
        "PATH": "E:\\rec1"
    },
    {
        "AVAILABLE": true,
        "RECURSIVE": true,
        "REGEX": ".ts$",
        "PATH": "F:\\rec2"
    }
],

DEFINE

ユーザーが自由に設定できるユーザー定義定数です。 出現箇所が多い文字、PATHやオプション名などを設定すると便利です。 フォーマットは'#{}'で囲ったものが定数として判断され、書かれた場所ば置換されます。 '#{ユーザー自由設定文字列}'

  例
    "#{EncodeFilePath}": "C:\\Encode\\",
    "#{EncodeEndPath}": "C:\\EncodeEndTS\\",

内部変数

内部で保持している値で、指定があるとその値で置換されます。 フォーマットは'${}'で囲ったものが定数として判断され、書かれた場所ば置換されます。

  例
  "#{EncodeFilePath}": "${InDrive}\\Encode\\",
  "#{PathAnime}": "${Genre}\\${Genre}${RecYear}年\\${SeasonName}\\[アニメ] ${Title}\\",
  "#{FilenameAnime}": "[アニメ] ${Title} 第${EpisodeNo2}話「${SubTitle}」(${ChannelNameS})(${RecDate}${RecTime})#{extensionMKV}",
  "#{Amatsukaze_OP_Anime}": "-s ${serviceID} "

内部変数一覧

変数名 機能 説明
${Title} 番組タイトル名 TSの番組名/取得できたらしょぼいカレンダーのTitle
${SubTitle} 番組サブタイトル
${EpisodeNo} 話数(1桁)
${EpisodeNo2} 話数(2桁ゼロ埋め) 話数を2桁表示します。取得できない場合は空白
${Genre} 大ジャンル名 16種類の大ジャンル名を返します
${GenreM} 中ジャンル名 中ジャンル名を返します
${Category} しょぼかるカテゴリー しょぼいカレンダーで指定されているカテゴリーです
${RecYear} 録画年
${RecMonth} 録画月
${RecDay} 録画日
${RecDate} 録画年月日
${RecTime} 録画時分秒
${SeasonNo} シーズンNo 1月~12月を3で割った数。1~4の数値
${SeasonName} シーズン名 季節名
${ChannelName} チャンネル名
${serviceID} サービスID サービスIDを数値で置換します。
${networkID} ネットワークID ネットワークIDを数値で置換します。
${InDrive} 入力ファイルのドライブ名
${InFullPath} 入力ファイルのフルパス
${InPath} 入力デレクトリ
${InBaseName} 入力ファイル名(拡張子無し)
${InFileName} 入力ファイル名(拡張子あり)
${OutDrive} 出力ファイルのドライブ名
${OutFullPath} 出力ファイルフルパス
${OutPath} 出力デレクトリ
${TEMP} 環境変数TEMP
※予告無く変数が追加される事があります。

TASKLIST

処理する(動画)ファイルの条件を設定します。 TASKLISTには優先順位があり、複数条件を設定している場合は、上の方の設定から評価していきます。

AFTER_TASK

後処理に関する設定です。 ファイルのコピー、移動、FTPアップロード、コマンド実行等があります。 下記コマンド名の前に数字とコロン「例 1:」をつけるとその数字の順番で処理を行います。 数字を付けないと順不同で実行されます。

例
"AFTER_TASK": {
    "DO_NOTHING": {},
    "IMOVE_COPY_FTP_ETC": {
        "1:IMOVE": "#{MovePathETC}",
        "2:COPY": "#{CopyPathETC}",
        "3:FTP": "LOCALFTPETC"
        "4:MOVE": "#{MovePathETC}",
    },
    "AFTER_TEST": {
        "1:EXECUTE": "cmd.exe /C del /Q ${InPath}*.json"
    },
}

FTP_LIST

FTP転送する設定項目です。 転送先サイトを複数登録できます。 上記「FTP」と同じ名前の項目が実行されます。

例
"FTP_LIST": {
  "LOCAL_FTP": {
      "ADDRESS": "192.168.1.4",
      "REMOTEPATH": "#{LocalFtpAnimePath}",
      "ID": "admin",
      "PASS": "password"
  },
}


コマンドライン処理について

execute selector Ver. 1.0.0 by RONJI
usage : execselect.exe [options...] Filenames... or Directorys...
Options:
-c | --check        Check only setting files.
-a | --auto         Automatic file entry from 'AUTOENTRY' list.
-r | --recursive    Recursively search for files.
-f | --filter       Regular-Expression filter. example '--filter=.ts$'
-i | --tsinfo       TS file info print.
-m | --chmake       channelsetting.json auto maker.

処理するファイルまたはフォルダを指定します。

例
execselect.exe C:\RecTS\rec.ts
execselect.exe C:\RecTS

※フォルダ指定の場合はフォルダ内のファイルを全て抽出します。 下記オプションでフィルタリングと再帰的検索が行えます。

オプション



実行結果ログ

execselect.exeと同じフォルダ内にログファイル(execselect.log)が出力されます。 うまく動作しない場合はログを見て、エラーが示す場所を修正してみてください。 大体最初はJSONあたりの記述や正規表現で失敗すると思いますので、Web等でJSONチェッカーとかでチェックしてみるのもありです。


不具合報告・フィードバック・その他

地上デジタル放送しかテストしていないので、もしかしたら不具合等あるかと思います。 不具合報告やフィードバックは Twitterメール にてお願い致します。 また使い方がよくわからない等も質問頂いても構いません。 今回このような公開は初めてなので、非常に拙く抜けている所があると思いますが何卒ご容赦下さいませ。


謝辞

下記ソフトウェア等開発者様方々に感謝致します。


Version履歴


注意事項

このソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。 ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。 作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。