世界を動かす技術を、日本語で。

YouTube動画を自動的にアーカイブするブラウザ拡張機能とローカルバックエンド

2025年8月3日原文(github.com)

概要

Starchive はYouTube動画を自動でアーカイブするシステム。 Firefox拡張機能Go製バックエンド で構成。 動画は yt-dlpffmpeg でダウンロード・変換。 字幕対応 (英語のみ、一部制限あり)。 セットアップや利用方法も簡単。

Starchive: YouTube自動アーカイブシステム概要

  • Starchive は、YouTube動画を訪問時に自動保存するブラウザ拡張機能およびローカルバックエンドシステム
  • Firefox拡張機能 がYouTube動画ページを検出し、動画IDを抽出
  • Go製バックエンド が動画IDを受け取り、 yt-dlpffmpeg で動画をダウンロードおよびMOV形式(h264_videotoolboxエンコーディング)へ変換
  • 英語字幕(VTT形式) のダウンロードにも対応(ただしリトライ制御で一回のみ試行)
  • 動画ファイルはローカルの ./data/ ディレクトリに保存

コンポーネント詳細

  • バックエンド(Go)

    • HTTPサーバー(main.go)
      • ポート3009で稼働
      • エンドポイント「/」はヘルスチェック、「/youtube」はPOSTで動画ID受信・ダウンロード処理
    • 動画ダウンローダー(youtube.go)
      • yt-dlpffmpeg で動画取得・MOV変換
      • 字幕(英語・VTT形式) 対応(現在リトライ1回のみ)
  • ブラウザ拡張機能(Firefox)

    • manifest.json で権限と構成定義
    • content.js がYouTube動画ページ検出・動画ID抽出
    • background.js がcontent scriptとバックエンドAPIの通信担当
    • popup.html/js で手動取得用UI提供

動作フロー

  • YouTube動画ページ訪問時、content scriptが 動画ID をURLから抽出
  • 動画ID をbackground scriptに送信
  • background scriptが http://localhost:3009/youtube へPOSTリクエスト
  • Goバックエンドが動画IDを受信し、 yt-dlp で動画ダウンロード
  • ffmpeg でMOV形式に変換、./data/ディレクトリへ保存
  • 英語字幕も同時にダウンロード(制限あり)

セットアップ方法

  • Goバックエンド起動:
    • go run .コマンド実行
  • Firefox拡張機能を firefox/ ディレクトリから読み込み
  • 任意のYouTube動画ページ訪問で自動アーカイブ開始

依存関係

  • yt-dlp :YouTube動画ダウンロード
  • ffmpeg :動画変換・処理
  • Go :バックエンドサーバー実行環境

注意事項

  • Starchivehttps://www.starchive.io/ とは無関係
  • ローカル環境でのみ動作、外部サービスとの連携なし

Starchive はYouTube動画の個人アーカイブ用途に最適な自動化ツール。 シンプルな構成とセットアップで、動画保存を効率化。

Hackerたちの意見

動画は ./data/ ディレクトリに保存されて、ハードウェアアクセラレーションを使って ffmpeg で MOV 形式に変換されるんだって。トランスコード(痛い)されたのか、それともただ mov コンテナにリマックスされたのか?ちょっと調べてみないと。

関連するライン: https://github.com/andrewarrow/starchive/blob/136030c6ef11a5...

動画は再エンコードしないといけないんだよね。Apple QuickTime は YouTube の動画形式が好きじゃないから。でも音声はそのままコピーできる。うちの Mac のファンはハードウェアアクセラレーションのおかげで全然回らないから、バックグラウンドで動いてるのを忘れちゃう。

うん、再エンコードの部分までは賛成だったけど、yt-dlpはビットをそのまま維持するのに、なんでわざわざエンコードに時間をかけて質を落とす必要があるの?それに…ほんと、選べるフォーマットの中でMOVを選ぶなんて?!DivXやRealVideoを選ぶのと変わらないじゃん。

これには Tubearchivist とその拡張機能を使ってるよ。https://github.com/tubearchivist/browser-extension Tubearchivist の WebUI がすごく好きなんだ。

僕が求めてる主な機能は、いつも通り Firefox で YouTube を普通にブラウズできること。で、starchive が動いてるのを完全に忘れちゃうこと。そしたら、後で見たい動画がすでにダウンロードされてて、準備万端になってるのを見て驚くんだ。どの動画をダウンロードしたいかなんて分からないし、ボタンをクリックする必要もないのがいいんだよね。

いいけど…これって物をため込む行動にも聞こえるよね。何年もかけて保存したものを、数年後に捨てることになって、最初に保存したのが無駄だったって気づくことが多い。90年代には友達のお母さんが AMC の映画をビデオに撮ってたんだけど、300本以上のテープを持ってた。珍しいものもあったかもしれないけど、今はその映画が合法的にも違法的にも、しかもずっと良い画質で見れるからね。別の友達は1980年代のコンピューターマガジン(Byteとか)を全部取っておいて、30年以上引っ越しのたびにその重い箱を運んでたけど、彼がそれを開いたことなんて一度もないと思う。で、結局それらは The Archive に出てきて、やっと処分したんだ。ちなみに、僕もローカルストレージにいくつかの YouTube 動画を保存してるけど、見るたびに全部保存するのは、僕が個人的にやりすぎたことを思い出させるんだ。そういえば、最近その雑誌をため込んでた友達に会ったんだけど、ついに彼がストックを処分したことを確認したんだ。それで、今も保存してるものについて考えさせられた。実際、Amiga 時代の 3.5 インチフロッピーディスクが8枚くらい入った箱があるんだけど、Amiga を手に入れるか、Amiga エミュをダウンロードしてそのディスクを読み取るドライブを用意する可能性はほぼゼロだから、捨てるべきだよね。同様に、90年代のバックアップデータの CD-ROM の本も持ってるけど、その内容を見る気になることはほぼ0%だね。

公共の共有アーカイブに載せるのは、たぶん良い結果だと思うけどね。昼間のテレビを何百時間も録画した女性がいて、そのアーカイブには面白い歴史的な用途があるかもしれない?でも個人的なコピーにはあまり意味がない気がする。

別の友達は1980年代のコンピューターマガジン(Byteとか)を全部取っておいて、30年以上その重い箱を運んでた。IA が Microsoft Systems Journal(後の MSDN Magazine)の初期号を全部持ってるとは思えないから、これは役に立つかもね。(それに、そもそも誰が最初に IA に雑誌をアップしたと思う?)

デジタルホーディングは、実際のスペースをほとんど取らないよね。まだアクセスできたらいいのにと思うYouTubeの動画がいくつかある。

CD-ROMにバックアップデータを保存した本を持ってるんだけど、 > その内容を見ることはほぼ0%の確率でやらないだろうな。もっとありそうなシナリオは、君が亡くなった後に子供や孫、他の家族が君のものを整理して、君が共有したくなかったことを発見するってこと。これについてはよく考えるんだ。デジタルレガシープランがないからね。

時々見た古い動画を検索できたらいいな。あのレシピを見つけたり、聞いたかもしれない事実を引っ張り出したり。あるいは、後でプライベートにされたり完全に削除された曲を聴きたい時もある。YouTubeが動画を削除すると、プレイリストにタイトルすら残らないから、同じものを探すのがイライラするんだよね。

Hacker Newsで議論の続きを見る