弾幕(XML) ASS変換ツール

BilibiliなどのXML形式の弾幕(コメント)を高品質なASS字幕に変換。PotplayerやIINA、VLCなどで、重なりのないスムーズな弾幕再生を実現します。

100% ブラウザ内 · アップロードなし
ジャンプよくある問題使い方よくある質問

弾幕 XML → ASS 変換ツール

Bilibili / AcFun の弾幕 XML を VLC・PotPlayer・IINA で再生できる衝突防止 ASS 字幕に変換します。

よくある問題

Q

IINAでBilibiliの弾幕を見る方法は?

A

BBDownなどで取得した .xml をアップロードし、解像度とフォントを動画に合わせて変換します。生成された .ass を動画と同じ名前で同じフォルダに置けば、IINAが自動で読み込んで流れる弾幕を再現します。

Q

変換後に弾幕のタイミングがずれるのを直すには?

A

p属性の先頭は動画開始からの相対秒数で時間コードではありません。元のXMLからそのまま変換すれば合います。ずれる場合はXMLを手で編集したか、弾幕と動画のバージョンが違うことが原因です。

Q

弾幕が重なって見づらいのを直すには?

A

変換時にトラックベースの衝突回避を有効にします。各弾幕をレーンに割り当て、前の弾幕が画面を抜けるまで同じレーンを使わないため、高能シーンでも重ならず読みやすくなります。

Q

mpvやPotPlayerでASS弾幕を読み込むには?

A

.ass を動画と同じフォルダに同名(episode01.mp4 + episode01.ass)で置けば自動読み込みされます。手動なら字幕メニューから追加、mpvはコマンドラインで --sub-file=episode01.ass も使えます。

Q

上下に固定すべき弾幕がスクロールしてしまうのは?

A

Bilibiliは p[1] で位置を表し、1〜3はスクロール、4は下固定、5は上固定です。すべてをスクロール扱いする変換器は固定弾幕も流してしまいます。本ツールはモード4・5を正しい配置で固定します。

ワークフロー

弾幕(XML) ASS変換ツール とは?

BBDownやyou-getなどでBilibiliの動画を保存すると、弾幕は <d p="...">コメント本文</d> が並んだ .xml ファイルとして別に出力されます。しかしIINA・mpv・VLC・PotPlayerはこのXMLを認識できず、動画に重ねても何も表示されません。本ツールは弾幕XMLをプレイヤー共通のASS字幕トラックに変換し、手動変換で必ずつまずく2点——タイムライン(pの最初の数値は時間コードではなく「相対秒数」)と重なり(同時刻に数百件のコメントが団子状に重なる)——も同時に解消します。

弾幕(XML) ASS変換ツール の使い方

XMLを貼り付けるか .xml をアップロードします。変換前に効果を左右する3つを設定してください。①解像度——動画に合わせます(1920×1080、1280×720 など)。ASSの座標はキャンバス(PlayResX/PlayResY)に対する絶対値なので、ずれると文字が浮いたり見切れたりします。②フォントサイズ——1080pなら36、720pなら28が目安。③表示時間——8秒が読みやすく、密集時は短めに。変換後、.ass を動画と同じ名前(movie.mp4 → movie.ass)で同じフォルダに保存すると自動で読み込まれます。

使用例

入力 (Bilibili XML):
<d p="12.53,1,25,16777215,1699...">前方高能</d>
  p[0]=12.53 出現秒数  p[1]=1 スクロール  p[2]=25 フォント  p[3]=16777215 色(白)

出力 (ASS):
[Script Info]
PlayResX: 1920
PlayResY: 1080
[Events]
Dialogue: 0,0:00:12.53,0:00:20.53,R2L,,0,0,0,,{\move(1920,64,-260,64)}前方高能

注意: ASSの色は &HBBGGRR(バイト逆順)。RGB 0xFFFFFF は FFFFFF のままですが、0xFF0000 の赤は &H0000FF になります。

活用例

1. macOSのIINA / mpvで、ダウンロードしたBilibili動画を元の流れる弾幕付きで視聴する。

2. ffmpeg (-vf "ass=movie.ass") で弾幕を焼き込み、外部字幕を読めない端末でも共有できるようにする。

3. 5万件超の大規模弾幕をローカルで変換し、視聴履歴を第三者サーバーに送らない。

4. 上下固定弾幕(モード4/5)を固定のまま保持し、歌詞や空耳系の弾幕に対応する。

5. 配信のコメントを永続的で検索可能な .ass ファイルとしてアーカイブする。

よくある質問

なぜVLCやIINAでXML弾幕が表示されないのですか?

これらのプレイヤーはASS/SRT/SSAなどの字幕形式しか描画できず、BilibiliのXML弾幕構造を直接は扱えません。先にXMLをASSへ変換する必要があり、本ツールが各 <d> を正しいタイムラインと動きを持つDialogue行へ変換します。

弾幕は出るのにタイミングが全体的にずれます。なぜ?

BilibiliのXMLでは p の最初の数値が動画開始からの「相対秒数」で、HH:MM:SSの時間コードではありません。元のXMLからそのまま変換すれば合いますが、ファイルを手で編集したり別バージョンの動画に当てるとずれます。

衝突回避(重なり防止)はどう動きますか?

各スクロール弾幕を横方向のトラック(レーン)へ割り当て、文字列の長さから画面を横切る時間を計算し、前の弾幕が抜けるまで同じレーンを再利用しません。これにより密集部でも団子状に重なりません。

4K動画で弾幕が大きすぎる/画面外に出るときは?

変換時の解像度を動画に合わせ、フォントを小さくします。ASSの座標は PlayResX/PlayResY に対する相対値なので、キャンバスが1080pで動画が2160pだとプレイヤーが全体を2倍に拡大します。

他のツール