変更後ファイル名に使用禁止文字(「<」「>」「/」「|」など)があっても異常終了しないよう対応しました。
エロ動画のファイル名を、より良いファイル名(動画タイトル)に修正するためのWindows アプリです。
Torrent ファイルをダウンロードするとファイル名が型番しか無かったり、タイトルが途中で欠けていたりと「完璧ではない」ことがあります。
これだと後で女優名やタイトルが分からないため、その後の自家発電業務に大きな支障をきたすことがあります。 F*ck!!
このアプリを使うと、
- ファイルの型番部分を自動認識してNyaa系サイトやGoogleを検索
- 型番による検索結果(より良いタイトル)を一覧表示
- マウス操作で適切なタイトルを選択し、ファイル名変更
という流れを画面操作で行なえます。
ファイル名を正しいタイトルにしてエロ動画を整理整頓!
貴方の自家発電ライフを快適支援します。 Enjoy!
使い方
- 名前を正したいファイルをウインドウにドラッグ&ドロップします
- 「型番候補」欄に型番と思しき文字がセットされます
(▼をクリックすると他の候補が表示されます)
これで良ければ右横の『検索』ボタンを押します - 運が良ければ「ファイル名候補」欄に検索結果が表示されます
何も出ない場合は一致なしです
※「検索先」をGoogleにしてみたら何か見つかるかもしれません - これだと思う物を一覧から選んだら、
『ファイル名変更』ボタン押下、又はEnterキーを押します
名称を微調整したいときは「変更後ファイル名」を修正してから
『ファイル名変更』ボタンを押下します。
コツ・小技
- ウインドウを広げると長いファイル名が確認しやすくなりますよ。
- 型番候補の内容が気に入らない場合は「型番候補」欄を修正して調整してください。
Nyaaは検索精度が良くないので、型番のハイフンをスペースに変えたり、型番と数字の間にスペースを入れたりして調整すると結果が変わることがあります。 - 型番候補の一番下にファイル名そのものがありますので、
検索が上手く行かない場合は試してみてください。 - それでもうまく探せないときは「Google検索」をお試しください。
タイトルが途中で切れることが多いですが、ヒントにはなります。 - ファイル名を微調整する場合は「変更後ファイル名」欄を修正してから「ファイル名変更」ボタンを押します。
こんなときに使ってください。- 分割ファイルに連番を付ける
- ファイル名頭の謎記号や【2時間45分】みたいなゴミを取る
- 候補Aを選んで女優名だけコピって、候補Bを選んで女優名を貼り付ける
- ファイル名として使えない文字(例:半角¥)が含まれていると失敗します。
上手くいかない場合は記号を全角にしたり、削ったりして試してください。
インストール方法
圧縮ファイル内のファイルを適当なフォルダに解凍します。
そのフォルダの【VideoTitleGetter.exe
】をダブルクリックすれば起動します。
アンインストール方法
プログラムのあるフォルダを削除します。
(iniファイルやレジストリは一切使用しません)
動作環境
Windows + .Net Framework 4.5以降必須
Windows 7以降なら確実に動きます(作者環境はWindows 10)。
更新履歴
v2.4 2019/08/28
[機能変更]・ビルド環境更新:Visual Studio Community 2017→2019
・ライブラリ更新:Html Agility Pack v1.11.0.0→v1.11.12.0
・Googleはタイトルのヒントになる事があるので、当面残しますw
・変更後ファイル名に使用禁止文字(「<」「>」「/」「|」など)があっても異常終了しないよう対応
v2.3 2019/03/27
[機能変更]・Nyaa系の主力がNyaaPantsuからNyaa.siになってきたみたいなので追加
・型番候補をハイフン区切り・スペース区切りを提案するようにした
・ファイル名頭/末尾の空白を取り除くようにした
(誤入力でファイル名頭に空白が入ってしまうと、エクスプローラーでの修正が面倒くさい)
・文字を少し大きくした
・ウインドウの最小サイズを640×480に設定(無意味に小さくできてしまっていた)
・ライブラリ更新:Html Agility Pack v1.5.1→v1.11.0.0
・ビルド環境更新:Visual Studio Community 2015→2017
・Googleがデザイン変更で検索できなくなっていたので対応
(存在意義が無く修正工数が掛かるので、次は外します)
v2.2 2017/08/23
[機能変更]・NyaaTorrents閉鎖に伴い、取得元をNyaaPantsuに変更
・複数ファイルをドラッグしても無視するようにした
・フォルダーをドラッグしても無視するようにした
・ステータスバーの説明などを少し丁寧にした
・Html Agility Pack v1.4.9→v1.5.1
・Googleがデザイン変更で動かなくなっていたので対応
・ファイルをドロップしなくても検索ボタンを押せていたのを修正
・変更後ファイル名を選択しなくても変更ボタンを押せていたのを修正
(ファイル名が空になってしまう)
v2.1 2016/07/13
[機能変更]・変更後ファイル名欄を1行から2行に変更
[不具合修正]・ファイル名に”.”が含まれているとその後ろが欠落するのを修正
・ファイル名候補欄の空白部分をクリックすると異常終了するのを修正
v2.0 2016/06/02
・Google対応(おまけ)
・ファイル名候補欄の最下段にファイル名そのものを表示するようにした
v1.0 2016/05/25
・初版
旧バージョン
最新バージョンの動作がおかしい場合、旧バージョンをお使いください。
プログラムソース
プログラムのソースコードです。
Microsoft Visual Studio 2019のソリューション形式です。
解凍フォルダ直下のVideoTitleGetter.sln
を開きます。
必須ライブラリのHtml Agility Packも含めています(※)ので、VS2019で開けば即ビルドできます。
(※…MITライセンスだから大丈夫のハズ)
新しいWebサービスに対応させるには
***Scraper.csを追加
Yugen.Tools.Web.Scraper
ディレクトリの中に各Webサービス用のスクレイパーがあります。
(全てIScraper.cs
を継承しています)
新しいWebサービスが現れたら、適当なファイルをコピって新しい***Scraper.cs
を作ってください。
以下、既存のGoogleScraper.cs
を例に説明します。
定数を修正
cUaName
に普遍的な(弾かれにくい)UA文字列を入れます。
cBaseURL
にWebサービスのベースURLを入れます。
cFileNameListXPath
に検索結果のファイル名に当たる部分のXPathを入れます。
備考:XPathの調べ方
- Chromeで対象サイトを開く
- Dev Tools起動(F12キー)
- 調べたい箇所(タイトル部分)にマウスカーソルを持ってゆく
- 右クリック→「Copy」→「Copy XPath」
で大体の構造が取得できます。
このXPathはそのままでは使えず、
- 配列番号を取り除く
- id/class指定によりデザイン変更に強くする
等の調整が必要です。
クエリURLを調整(GetFilenames
メソッド)
ソースの39行目、
var url = cBaseURL + "q=" + condition;
のように、クエリURL(GETメソッド)を完成させます。
POSTメソッドじゃないとダメな場合は…頑張ってgetFromWeb
などを弄ってください。
(今の所、そういう所にブチ当たってない)
LINQ文の調整(GetFilenames
メソッド)
ソースの54行目、
var articles = htmlDoc.DocumentNode .SelectNodes(cFileNameListXPath) .Select(a => new { Title = a.FirstChild.InnerText.Trim(), });
cFileNameListXPath
のXPathとTitle = a.FirstChild.InnerText.Trim()
の右辺を調整しながら、Title
に動画タイトルが入るようにLINQ文を組み立てます。
まあ極端な話、このメソッドがタイトルの一覧(List<string>
)さえ返せれば、中身はゴリゴリの文字走査ループだろうが正規表現を駆使しようが、手段は何でもいいです。
フォームの修正
Form1.cs
をデザイナーで開き、検索先のラジオボタンを増やします。
あわせて同フォームのselectScraper()
サブルーチンにif文を追加します。
if (rbtSearchNyaaSi.Checked) return new NyaaSiScraper(); if (rbtSearchNyaa.Checked) return new NyaaPantsuScraper(); if (rbtSearchGoogle.Checked) return new GoogleScraper();
以上で、新サイトへの対応は終わりです。
バージョン番号の変更箇所
プロジェクトのプロパティ
→アプリケーション
→アセンブリ情報
→アセンブリバージョン/ファイルバージョン
にバージョン番号をセットします。
またはAssemblyInfo.cs
を修正します。