Automatic Title & Text Generator for Rhythm-Game-Playing Videos for Daily Uploading 日々の投稿用リズムゲームプレイ動画向け 自動タイトル&テキスト生成プログラム
小さな手間がいくつも重なると意外と煩わしい。
Publication Date: 2022.9.20 (Tue) 公開日時: 2022年9月20日(火)

今回は、自由研究報告。あるPythonプログラムを作ったという話題。

Yuhki Takahashi のYouTubeチャンネルでは、バーチャルYouTuber「磁音エヌ(Magne-N)」のライブ配信だけでなく、その他の活動にまつわる動画投稿も実施している。
その一環として取り組んでいるのが、お絵かき&音ゲーが捗るタブレットスタンド「Engawa by 谷6Fab」の実演を兼ねた、iPadリズムゲーム(いわゆる音ゲー)のプレイ映像である。

タブレットスタンド「Engawa」は、特徴的な「前脚」を持っており、これをデスク手前に引っ掛けるように置くことで、デバイスにかかる手指や手首の重さによって、うしろ方向へズレることを防ぐ設計になっている。
可動部がないので倒れることもなく、iPadでのお絵描きやリズムゲームで重宝していただけるものだ。
BOOTHというクリエイタープラットフォームで通信販売している(ストアページはこちら)のと、同人誌即売会イベントでの出展にてお求めいただきたい。

この製品の利便性をお見せする目的で、製作者自らリズムゲームのプレイ映像を撮影・制作・投稿している(動画と作るためのこだわりや独自の試みもあるが、別の機会に)。
とにかく動画本数と再生数を稼ぎたく、ゲームごとに1日1本(1曲)のペースで公開している。
現在は「Arcaea(アーケア)」と「Project SEKAI: COLORFUL STAGE! Feat. 初音ミク」(略記: プロセカ)の2本で取り組んでいるので、1日2本公開されている(Shortsを含めればさらに多い)。

こうして大量の動画をYouTubeへアップロードおよび公開していくにあたり、いくつかの手間が浮き彫りに見えた。
それぞれ小さな手間だが、数が増えると煩わしくなるものである。

ここで取り上げる手間は、動画のタイトルと概要欄に記載するテキストの入力である。
雛型(テンプレート)はあるが、わざわざそれを複製してそこに情報を書き込んでいくのは思ったより手順が多い。
しかしこの問題はPythonプログラミングによって解決できるのではと考えたのだった。

どんなプログラムなのか

  • 出来上がった動画ファイルを、特定のルールで命名し、指定のディレクトリ(フォルダ)に置いておく。
  • プログラムを実行すると、以下のことが行われる。
    • Web上のWikiから、楽曲情報(曲名と難易度など)を収集し、csv形式で保存する。これは任意で実行可能である。
    • ディレクトリ内にある動画ファイルごとに、概要欄用テキストがtxt形式で生成され、動画ファイルが名称変更される。
    • 動画が通常用かShorts用かに応じてMacファイルタグをつける。

▲プログラム実行前の動画ファイルディレクトリ。

▲プログラム実行後。動画ファイルが名称変更される。

▲同時に概要欄用テキストファイルが生成される。

▲生成された概要欄用テキスト。

もう少し詳しく(コード略)

Wikiから楽曲情報を読み取りcsv形式で保存する

各リズムゲームに対して、有志が運営しているWikiが存在するものである。
ウェブスクレイピングを活用し、そこに掲載されている楽曲ごとの情報(曲名とレベル毎の難易度)を読み取り、それを1行としたcsv形式ファイルとしてローカルに保存を行う。
これが概要欄用テキストに入る情報のもととなる。
この情報の更新は必要に応じて行えばいいので、任意実行が可能な仕組みとした。

動画ファイル毎にテキスト生成とファイル名変更

話が前後するが、プログラムを実行する前に、動画ファイル名は以下のようにつけておく。

  • Arcaea用「{曲名}_{L}」
    • {L}: レベル分類を表す記号。F…FUTURE、B…BEYOND など。
  • プロセカ用「{曲名}_{L}_{V}」
    • {L}: レベル分類を表す記号。X…EXPERT、M…MASTER など。
    • {V}: 音源のボーカル情報。各ボーカルを3文字で表し、順番に記述する(例: MikRin…ミクとリン、TsuRuiNenEmu…司と類と寧々とえむ)。
  • 共通事項: Shortsとして投稿する動画には末尾に「_T」がつく(Trimmedの頭文字)。

動画ファイル名および概要欄用テキストは、別途用意しておいた雛型の特定の箇所に情報を書き入れたものになっている。
例えば、プロセカ動画の概要欄用テキストには、曲名、レベル分類、難易度、ボーカル情報が入る。
(余談だが、タブレットスタンドのPRのための動画なので、製品情報も記述している)
従来の方法だと、雛型のコピー、楽曲と難易度のデータを見ながら雛型内の特定箇所に記入といった手間が必要だったのが、一度のコピーで済んでしまうのが嬉しい。

またYouTubeでは、動画アップロード時に動画ファイル名がそのままタイトルになる仕様なので、タイトルは概要欄用テキストのように別ファイル保存するのではなく、ファイル名を書き換える仕様とした。これで手間が一つ解消される。

Shortsか通常動画かで、動画ファイルにタグをつける

YouTubeへの投稿とは直接関係ない、おまけ機能を一つ。
Macではファイルにタグをつけることができる。ファイルの整頓の上では便利なので、ついでに実装してみた。
前述の通り、ファイル名末尾に「_T」をつけることでShorts用動画であることを示している。これがあれば「YouTube Shorts」という名前のオレンジ色の、なければ「Full」という名前の赤色のタグがつく。
mac-os_tagsライブラリ を使えば、PythonでMacのタグに関する機能を実装できる。

出来上がったテキストは、ぜひ投稿された動画ページでご覧いただきたい。

Works 作品
Yuhki Takahashi Yuhki Takahashi
Python Python
Rhythm Game 音ゲー
Play With Engawa Play With Engawa
Engawa by Tani6Fab Engawa by è°·6Fab
Coding プログラミング