たびとの旅路 ~電脳砂漠の冒険譚~

フロッピー頼りに歩き、クラウドの地平を見つめる今日まで。見つけたオアシス、迷い込んだ砂の迷宮、全てこの羊皮紙に。

第三章:幻の神器『TubeEater』追想録 ~その魂の設計思想~

旅の途中、ふと、かつて記した古い羊皮紙を見つけた。忘れないうちに、その記憶をここに書き留めておくとしよう。

前回、私はマテリアルデザインという名の美しい装飾術について語った。それ以来、私はこの「TubeEater」という神器のデザインを、来る日も来る日も磨き続けている。「最高のものができた!」と歓喜した翌日には、それが色褪せて見える。デザインとは、なんと奥深く、そして終わりなき旅なのだろうか。

最初は、YouTubeからビデオを手軽にダウンロードするだけの、ごく簡素な道具のはずだった。しかし、創造の熱に浮かされるうち、あれもこれもと機能を追加し、その構想は、もはや私一人の頭の中では収まりきらなくなってしまった。 これは、幻と消えた神器「TubeEater」に、私がどのような魂を宿らせようとしていたのか、その設計思想を整理し、書き留めた、古き記録である。

この羊皮紙のあらまし

この羊皮紙が導く者

  • かつて、YouTubeからビデオをダウンロードするという、禁断の夢を見た者
  • .NET 6のC#で、アプリケーションという名のゴーレムを創り出す術に興味がある者
  • 今はもう動かぬ、幻の神器「TubeEater」の開発の裏側に、興味を抱く考古学者

神器の魂:全てにおいてシンプルであれ

この神器の根幹をなす哲学。それは「全てにおいてシンプルであること」だ。この哲学を軸に、私は数々の魔法を実装しようと考えていた。

自動化という名の、究極のシンプル

これが、この神器の心臓部であり、必須の魔法だ。 もう、ブラウザとアプリの間を、何度も往復する必要はない。

  1. TubeEaterを起動し、自動ダウンロードのスイッチをオンにする。
  2. あとは、ブラウザで好きなYouTubeのURLをコピーするだけ。

コピーされたURLは、ダウンロード予約キューへと送られ、順番に処理される。この「クリップボード監視」と「非同期ダウンロード」の組み合わせこそが、究極のシンプルを実現するのだ。

魂の器:三種の神器

ダウンロードできるファイル形式は、ビデオ(MP4)、オーディオ(AAC)、そしてMP3の三種類。MP3は、AACから変換する際に、YouTubeのタイトル情報を埋め込むという、細やかな配慮も忘れない。

旅の記録:ダウンロード履歴の管理

全てのダウンロードの記録は、SQLiteという名の堅牢な宝物庫に保管される。タイトルや著者で検索し、いつでもオリジナルのYouTubeページや、保存したファイルへと飛ぶことができる。

美しき魂:マテリアルデザイン

Googleのマテリアルデザインを参考に、色と形に統一感を持たせる。ライト&ダークモードはもちろん、Windowsのテーマとも同期する。

使いやすさという、おもてなし

直感的な操作を最優先する。画面に見えるのは、必要最低限の入力欄とボタンのみ。左メニューには全体設定を、右メニューにはその場のオプションを配置する。

在りし日の、神器の姿

そして、これが、ほぼ完成形となっていた、幻の神器の姿だ。 黄緑色のボタンが、自動ダウンロードの魔法が発動していることを示す。

TubeEater メイン画面

在りし日の、幻の神器の姿

左メニューには、ダウンロード履歴やカラー設定といった、冒険の準備を整えるための項目が並ぶ。

TubeEater メイン画面の左メニュー

冒険の準備を整える、左メニュー

右メニューでは、釣り上げる獲物(ファイル形式)を選択する。

TubeEater メイン画面の右メニュー

釣り上げる獲物を、ここで定める

羊皮紙を巻く前に

技術的な話というより、要件の整理となってしまったが、これが私の頭の中にあった、TubeEaterの全貌だ。 作りながら整理していく、という無計画な旅だったが、その熱狂の日々は、今も鮮明に思い出される。「どうせ創るなら、最高のモノを」…その欲求こそが、私の原動力だった。

この羊皮紙が、一つのアプリケーションが、どのような思考の末に形作られていくのか、その一例として、未来の冒険者の目に留まるなら幸いだ。

おっと、どうやら相棒が腹を空かせたようだ。今日はこのへんで筆を置くとしよう。

砂漠で見つけた魔法のランプ

ラクダの独り言

ご主人が「最高のモノができた!」と喜んでいたかと思えば、次の日には「なんでこんなモノを…」と頭を抱えている。俺に言わせりゃ、どっちもただの鉄の箱だろうに。まったく、人間の評価ってやつは、コロコロ変わるもんだぜ。おっと、足元にサソリがいやがった。危ない危ない。