すでにご存知の方がほとんどだとは思いますが、2019年から騙し騙し運用し続けてきたボロボロの旧システムから、最新の技術スタックで書き直した新システムへの移行を完了いたしました!
以前の記事でお伝えした本業の手が空いた…という訳でもないんですが、他の検討事項の兼ね合いで若干の余裕が発生したこと、さすがにいくらなんでも放置しすぎていることを踏まえ、急ピッチで開発したものになります。
最近の LLM は本当に性能が高く、従来なら旧システムを書き直すだけで1ヶ月以上かかっていそうな作業を大幅に短縮し、空いた余裕で全体的なブラッシュアップを行うことができています。
UI デザインは既存のユーザーさんが混乱しないように意図的に従来の UI に寄せていますが、フォーム・変換結果画面の内部実装は完全に作り直しています。
既存のデザインを踏襲しつつ、よりわかりやすく親しみやすいデザインにブラッシュアップしました。
使ってみていただくのが一番早いとは思いますが、今までまともに出なかった、変換の進捗状況が完全にリアルタイムで出力されるようになったのが大きな差違です。
「変換時の詳細情報を表示する」をオンにした際の yt-dlp のログも、変換状況に合わせてリアルタイムで出力されるようになっています(あくまで私のデバッグ向け機能ではあります)。
また細かいところですが、角丸の丸さを少し大きめに変更したり、フェードアニメーションを調整したりなども改良しているつもりです。
さらに、現在稼働中の全サーバーのステータス情報を確認できるようになりました!
従来の旧システムでは、複数台用意している各サーバーが完全にランダムで都度選択されていました。
通常のユースケースならこれでも問題ありませんが、サーバーのリソース消費が非常に激しいサービスの特殊性&サーバー側の出来の悪さゆえ、
・負荷の高いサーバーにアクセスが集中して負荷が偏る
・応答を返さない一時的にアクセスできなくなっているサーバーにリクエストを送ってしまっていた
・そもそもサーバーがどれくらい混雑しているかを把握する術がない
などの問題がありました。
新システムでは、「全サーバーの中からちゃんと生きてて利用可能なサーバーを確認した上で、その時点で一番負荷が小さいサーバーを利用する」より賢いロジックとしています。
数日運用してみていますが、意図通り負荷分散できている印象です。

なお、「優先高速変換チケット」のシリアルコードをフォームに指定したときは、常に支援者の方専用のプレミアムサーバー(SP)を利用してダウンロードを行います。
もしプレミアムサーバーが何らかの要因で一時的にダウンしているときに限り、オンライン状態の通常のサーバーにフォールバックする仕様となっています。
UI 側は一部旧システムの UI を移植して実装コストを削減していますが、サーバー側は完全に書き直しています。
ユーザーには見えない部分のためわかりづらいですが、旧システムの頃はダウンロードしたファイルが意図しないタイミングで削除されたり、ダウンロード途中で失敗したりといった問題があったかと思います。
一方の新システムでは、この辺りの動作安定性が大幅に向上しています!
(4時・10時・16時・22時のサーバー再起動をまたぐ利用以外では)意図せずせっかくダウンロードしたファイルがすぐ消えてしまったりする問題が解消されているはずです。
ダウンロードした一時ファイルは、変換が完了してから厳密に30分後にサーバーから自動削除されるようになりました。変換完了から30分以内にダウンロードいただくようお願いします。
また、サーバー上で同時にダウンロードできる回数を超えた場合に、ちゃんと変換の順番待ちができるようになりました!
旧システムにも一応実装してはいましたが、元々かなり付け焼き刃な実装のため、一度タスクに空きが出ると待機中セッションから空き枠に一斉になだれ込んでしまい「本来4セッションしか同時に処理できないはずが、同時に20セッション近く同時処理している」状況がかなり発生しやすいバグがありました。
一方、新システムでは「素直に早くから並んでいれば、長くても数十分待てば必ず自分の番が来る」仕様としています。この辺りの実装は結構大変でした…。
それ以外にも数えたらキリがないくらい様々な挙動が改良されていますので、ぜひ違いを見つけてみてください。
ダウンロード進捗を詳細にリアルタイム表示できるようになったのも、サーバー側を作り直した恩恵のひとつです。
ダウンロードサーバー自体の実装は共通ですが、サーバーインフラのスペックやインフラが異なります。
また支援していただいた方専用のため、単純に1日あたりのダウンロード・変換回数が通常サーバーよりも大幅にすくなくんります。
そして昨今サーバーの IP アドレスが YouTube に規制されがちなのも、単純に「動画のダウンロード回数が一般的な正規ユーザーと比べて明らかに多すぎる」からです。
したがって、ダウンロード回数自体が少なければ、規制される確率も大幅に下がるというわけです。
また、これも単純に利用者が少ない分、サーバーの CPU やネットワークリソースに余裕があります。
サーバーステータス画面を見れば、他は深夜以外は常に何かタスクが動いているのに、プレミアムサーバーは常に空いていて一目瞭然です。
…逆をいえば、もしプレミアムサーバーのユーザーが500人、1000人と増えすぎると、プレミアムサーバー自体を増やさない限り破綻するロジックではあります。
元々無料で DL できるから使っている方がほとんどだと思いますし、あくまでベストエフォート型なのでそこまで増えることはないとは思いますが…。
通常サーバーがいつか再度 YouTube からアクセス規制されてしまうのは(ダウンロード量が多すぎるので)最早仕方ないと思ってはいますが、プレミアムサーバーに関してはご支援いただいている以上、アクセス規制に気付き次第、なるべく復旧できるよう対策を取っていくつもりです。
ℹ️ 現時点でも、通常サーバーは一時的にアクセス規制を喰らいダウンロードできない時間帯が発生することを確認しています。
ただ対策の効果もあり、しばらく時間をおいて試すとうまくいくことがあるのも確認済みです。もし上記事象に遭遇した際は一度お試しください。
いろいろ準備が遅くなり本当に申し訳ありませんでした…。
リニューアルを待ち今まで継続的にご支援くださっていた支援者の皆さん、本当にありがとうございます!個人的にも過去数年間ずっと懸案でしたので、達成感でかなり感慨深いです。
実際に本番サーバーのコードを更新してみないとわからないことは多々あります。
特にYouTubeMP3もどきのように複数サーバーがありワークロード負担が大きいアプリケーションでは、一度リリースしてみないと負荷テストができないがちです。
実際、今回も初回リリース直後は正常に動作しておらず対応に追われていました。
旧システムよりも圧倒的に堅牢な作りなので(YouTube の規制以外では)これ以上問題が起きることはあまりないとは思いますが、もし何か不具合などあれば遠慮なくコメントなどでご報告ください。
このリプレースで地味に従来異様に重かったサーバー負荷もかなり削減されているので、あとはどれだけちゃんと維持運営できるかどうか…。
今後ともYouTubeMP3もどきをよろしくお願いします。
ウジ虫
2025-05-29 23:24:01 +0000 UTCYouTubeMP3もどき
2025-05-29 21:26:45 +0000 UTCウジ虫
2025-05-29 03:33:37 +0000 UTCYouTubeMP3もどき
2025-05-25 22:55:20 +0000 UTCしん
2025-05-24 16:01:21 +0000 UTCYouTubeMP3もどき
2025-05-15 14:24:34 +0000 UTCYouTubeMP3もどき
2025-05-15 14:21:42 +0000 UTCKokuzo
2025-05-15 09:47:33 +0000 UTCkel0118
2025-05-15 07:59:05 +0000 UTCYouTubeMP3もどき
2025-05-14 23:33:50 +0000 UTCうっちー
2025-05-14 13:57:17 +0000 UTCX
2025-05-10 08:27:34 +0000 UTC竹
2025-04-23 13:32:35 +0000 UTCkota
2025-04-18 16:03:22 +0000 UTC