表題の通りです。
今日結局YouTubeMP3もどきの復旧に付きっきりで徹夜で全く寝れておらずコンディション最悪なんですが、そんなことはさておき、従来よりもサーバー負荷を大幅に改善しました。
みなさまからの厚いご支援のおかげでサーバーを増強できたのはいいものの、大元の設計の脆さから、依然として負荷が高く頻繁にサーバーがフリーズする状況が続いていました。
現在運用中の旧システムでボトルネックになっていた箇所を改善し、また意図せず再エンコードや異なるコーデックでダウンロードされるようになっていた問題を修正することで、従来よりもサーバー負荷をかなり改善できたと思います。
たとえば今この記事を書いている18時前後の時間帯には、帰宅時間帯だからなのか毎日大変多くのアクセスをいただいています。
例の YouTube アクセス規制が起きる前も 18 時前後は特に混雑が激しく変換待ちが数十〜数百に及ぶなどろくに使えない状況でしたが、今回の改善により(すぐに変換完了とはいかないものの)数分待てば変換が完了する程度には混雑が解消されました。
あくまで旧システムを継ぎ接ぎでどうにか延命している状況ですので完璧からはほと遠い状況ですが、今のところ取れる策は最大限講じたつもりです。
また YouTube からの規制は幸い現在の VPS 業者に対しては比較的緩めのようです。
IP 規制されることもあるにはあるものの、IPv6 アドレスを使わず IPv4 アドレスだけでアクセスするようにしたのが奏功したのか、数時間モニタリングする限りでは YouTube の動画をダウンロードできる状況を維持できています(常にモニタリングできているわけではないので、もし何か壊れていたらご連絡ください)。
サイト上に書いてあるので薄々お気付きの方も多いかとは思いますが、音声形式に変換してダウンロードする際は、なるべく MP3 ではなく M4A や Opus 形式でのダウンロードをお願いいたします。
・・・というのも YouTube の音声データは M4A (AAC) や Opus 形式で保存されていますが、MP3 形式の音声は存在しないため、必然的に他の形式からトランスコードする必要がある(そしてトランスコードにはサーバーの CPU リソースを多く消費する)からです。
いまだに「音声ファイルといえば MP3」ということしか知らない方が大半だと思いますが、実は MP3 は30年近く前に開発された、今となってはかなり古典的な音声ファイルフォーマットです。
後発である AAC (MP4 動画の音声も通常は AAC) や、さらに圧縮率の高い Opus に比べると音質もさほど良くありません。とはいえ人間の耳に知覚できるかというと微妙なのですが、最大の問題は「再エンコードされる」という点です。
せっかく YouTube に音声データが保存されているのですから、再エンコードせずに音声データはそのまま、コンテナ形式だけ詰め替えて音声ファイルにした方が早いですし、音質も劣化せずに済みます。(再エンコードすると音質はどうしても劣化します。)
特に MP3 は AAC や Opus と比べ圧縮率が高くないため、せっかく圧縮率の高い音声ファイルフォーマットでダウンロードしてきたのに、わざわざより劣化させてしまっていることになります。
…ここで皆さんに謝らなければならないのですが、おそらく1年か少なくともここ数ヶ月の間、本来フォームで「音声(M4A形式)」を選択したときは再エンコードを行わず無劣化・ロスレスで動画から音声を抽出できるはずなところ、つねに再エンコードが行われてしまっていました。
少なくとも1〜2年前までは問題なかったはずですが、YouTube 側で音声ファイルフォーマットが増えたことが影響しているのかもしれません。
このミスにより本来不要な再エンコードが毎回行われ、サーバーリソースをかなり圧迫していたようです。
また MP4 形式でのダウンロードに関しても、意図しない低い画質や H.264 + AAC ではないコーデックで変換されることがありました。
これらの問題はすべて最新の yt-dlp のコマンドライン仕様や実態に合わせて修正済みです。現在は確実に意図通りの画質・音質のファイルを入手できるようになっているかと思います。
FANBOX でご支援くださった方にお約束していた「優先変換チケット」はシステムリニューアルを行えていないため、まだご提供の目処が立たない状況で心苦しい限りですが、新システムへリプレースできるまでの間はこのシステム体制で凌ぐ予定です。
今回旧システム向けではあるものの、様々な新施策を投入しました。これらの施策により成果があれば、同様の実装を新システムにも反映予定です。
今後ともYouTubeMP3もどきをよろしくお願いいたします。
あっぽーまん
2024-09-15 00:45:15 +0000 UTC