X(旧Twitter)の投稿から動画を保存したのに、再生してみると音が出ない。こういう相談をときどき受けます。
保存に失敗したように見えますが、多くの場合は失敗していません。そもそも元の投稿に音が入っていない、というだけです。
そもそも無音の投稿がある
一番多いのがこれです。Xには、見た目は短い動画なのに音声トラックを持たないものがあります。
代表がGIFです。XにGIFを投稿すると、内部ではGIFファイルとして保存されず、MP4動画に変換されて保存されます。見た目はループするGIFのままですが、実体は動画です。そして元のGIFには音の概念がないので、変換後のMP4にも音声トラックは入りません。
つまり「GIFを保存したら無音のMP4になった」のは正常な動作で、Xが持っている元データがそれだからです。
タイムラインでは気づけない
やっかいなのは、保存する前の段階では無音かどうか分からないことです。
Xのタイムラインで動画が自動再生されるとき、音は最初ミュートになっています。タップして音を出すまで、その動画に音があるのかないのかは画面上で区別がつきません。ミュートのまま眺めて「動画だから音もあるだろう」と思って保存すると、手元で初めて無音だったと気づくことになります。
見分けたいときは、保存する前に投稿の再生画面でスピーカーのアイコンを探してみてください。音声トラックがある動画にはミュート解除のアイコンが出ます。出ない場合は元から無音です。
保存側の問題であるケース
もちろん、本当に音があるのに無音のファイルになってしまうこともあります。
よくあるのは、動画と音声が別々に配信されている投稿で、映像だけを取ってきてしまうパターンです。この場合は保存したファイルのサイズが不自然に小さかったり、再生時間は合っているのに音声トラック自体が存在しなかったりします。
もう一つは、複数の動画が入った投稿です。Xの投稿には動画が何本か含まれていることがあり、そのうちの一本だけを見て「この投稿の動画」と判断すると、目的と違うものを保存してしまいます。この場合は無音というより中身が違う、という形で気づくことが多いです。
使っている道具の話
私はX Video Downloaderという小さなツールを作って公開しています。投稿のリンクを貼ると中身の種類を判定して、動画はMP4で音声トラックを残したまま、複数の動画がある投稿はそれぞれ別のファイルとして、複数枚の画像投稿は元のサイズのままひとまとめで返します。GIFについては、Xが実際に持っているMP4をそのまま渡します。無音なのは変換の失敗ではなく、元がそうだからです。
ブラウザだけで動くので、アカウント登録も拡張機能もアプリのインストールも必要ありません。
できないこと
正直に書いておくと、公開されている投稿しか扱えません。非公開アカウントの投稿や、すでに削除された投稿の動画は取得できませんし、取得できてしまう方が問題です。Xとは無関係の個人プロジェクトです。
まとめ
音が出ないときは、まず元の投稿に音があったかを確認してみてください。GIFなら無音が正常です。保存の設定をいじる前にそこを見たほうが、結果的に早く解決します。