Show HN: YouTube ギタータブ解析ツール

2026/07/14 5:13

Show HN: YouTube ギタータブ解析ツール

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

この CLI ツールは、Anthropic API キーを指定するといった最小限の設定で YouTube ギターレッスン動画をギターのタブ譜 PDF ファイルに変換します。その核心となるワークフローでは、Claude Vision を用いて動画フレームを分析し、水平バンドグリッドを使用してタブ領域を検出するとともに、最初のバンドと最後のバンドの中央値を取ることで楽譜を堅牢に識別します。

yt-dlp
(高画質制限を遵守しつつ)で動画をダウンロードした後、
ffmpeg
を使用して設定可能な間隔ごとにフレームを抽出します。各フレームは検出された領域に合わせて切り出され、近似的に同一の連続的な切り出し部分は知覚ハッシュング(
dHash
)を用いて除去されて API コストの削減を図ります。その後、Claude はバー/小節番号を読み取り、実際のタブ内容とイントロやタイトルカードを区別し、各行のカursor フレームをバー番号の変化に基づいて単一ページに統合して collapses します。最後に
pdf-lib
がビデオ順に異なるタブ行を A4 ページ上に垂直に積み重ねて出力を生成し、ファイルは
out/<video-title>.pdf
に保存され、ビデオタイトルをヘッダーとして含み、ドキュメントメタデータも付与されます。

要件:

  • Node.js ≥ 20
  • PATH 上に外部ツール
    yt-dlp
    および
    ffmpeg
    が用意されていること(例:
    brew install yt-dlp ffmpeg
  • .env
    または環境変数を通じて Anthropic API キーを提供する必要があること

設定と使用方法:

  • npm install
    を実行し、その後
    npm run build
    を実行します。
  • .env.example
    .env
    にコピーし、
    ANTHROPIC_API_KEY
    を設定するか(または変数を export する)
  • 以下のように実行します:
    node --env-file=.env dist/cli.js "<youtube-url>"

    デバッグ用ショートカット:
    node --env-file=.env --import tsx src/cli.ts "<url>"

主要なコマンドラインオプション:

  • -i, --interval <seconds>
    :スクリーンショットの間隔(デフォルト 2)
  • --model <id>
    :Claude vision モデル ID(デフォルト
    claude-sonnet-5
  • --sample <n>
    :タブ領域検出に使用するフレーム数(デフォルト 6)
  • --dedup-threshold <n>
    :プリデダップ用ハンミング距離コスト制御(デフォルト 12)
  • --max-height <px>
    :ダウンロード解像度の上限(デフォルト 720)
  • --keep-temp
    : 中間フレーム/切り出し結果を保持する

メリット:

  • 手動スクリーンショットや汎用 OCR を必要とせずにタブ抽出を自動化します。
  • 学習者に直ちに整理された印刷可能な楽譜を提供します。
  • 教育者には、好まれる印刷向けフォーマットを提供し音楽教育のデジタル化ワークフローを簡素化するなど、アクセシビリティを大幅に向上させるのを助けます。

本文

YouTube 動画からギタータブ PDF を自動生成する CLI ツール

このツールは、YouTube のギターレッスン動画を**PDF ファイルに変換するコマンドラインインターフェース(CLI)**です。 動画を購入し、フレームサンプリングを行い、Claude Visionを用いてタブ部分を自動的に検出・抽出します。小節番号に基づいて重複を除去し、異なるタブの行を縦に縫い合わせて PDF を作成します。

セットアップ完了後は特別な設定なしで、

out/
ディレクトリに
<動画タイトル>.pdf
として出力されます。ファイル名、最初のページの見出し、メタデータにも動画タイトルが自動適用されます。


📋 環境要件

以下の準備が必要です:

  • Node.js: バージョン 20 以上
  • 依存ツール:
    PATH
    yt-dlp
    ffmpeg
    がインストールされていること
    • Homebrew ユーザーの場合は
      brew install yt-dlp ffmpeg
      で入手可能
  • API キー: Anthropic API キー(Claude Vision へのアクセスに必須)

🛠 セットアップ手順

以下のコマンドで環境を構築してください。

npm install
npm run build
cp .env.example .env   # 次に、このファイルに自身の ANTHROPIC_API_KEY を設定してください

<動画タイトル>.pdf
が出力されるディレクトリは
out/
です。


🚀 使用方法

1.
.env
ファイルを用意する場合(推奨)

.env
ファイルに API キーを設定済みの状態で実行します。

node --env-file=.env dist/cli.js "https://www.youtube.com/watch?v=WgU5tDGC-Vc"

2. 環境変数で指定する場合

export ANTHROPIC_API_KEY
を設定済みの場合に使用します。

export ANTHROPIC_API_KEY=sk-ant-...
node dist/cli.js "https://www.youtube.com/watch?v=WgU5tDGC-Vc"

3. 開発環境での直接実行

ビルドステップを省略してソースコードから直接使用したい場合です。

node --env-file=.env --import tsx src/cli.ts "<url>"

出力情報

  • 保存先:
    out/<動画タイトル>.pdf
  • 標準出力: ファイルパス
  • 標準エラー出力: 進捗情報のログ

⚙️ オプションパラメータ

すべてのオプションには健全なデフォルト値が設定されています。通常は URL 指定のみで十分です。

コマンド説明デフォルト値
-i, --interval <秒数>
スクリーンショットの撮像間隔
2
--model <モデルID>
使用する Claude Vision モデル
claude-sonnet-5
--sample <枚数>
タブ領域検出に使用するフレームの数
6
--dedup-threshold <値>
事前重複除去用のハミング距離によるコスト制御閾値
12
--max-height <ピクセル>
ダウンロード時の解像度上限
720
--keep-temp
中間フレームおよびクロップ結果を保持するなし

🔍 動作原理の詳解

ツールは以下の工程で動画を PDF に変換します。

  1. ダウンロード

    • yt-dlp
      を使用して動画を配信に取得。
    • 必要に応じて
      --max-height
      パラメータで高さを制約します。
  2. フレーム抽出

    • ffmpeg
      を使用し、指定した間隔(
      --interval
      )ごとに 1 フレームずつ抽出します。
  3. 検出(領域認識)

    • サンプリングされたフレーム上に、水平方向の帯域を区切ったグリッドを生成します。
    • Claude Vision に「どの帯域に楽譜が含まれているか」を報告させます。
    • 外れ値対策: 中央値として最初の帯域と最後の帯域を取得し、これらを合わせて垂直方向の範囲を決定します(幅はそのまま維持)。
    • 注記: 粗やかなラベル付けされた帯域を使用するのは、視覚モデルに対して正確なピクセル座標を直接尋ねるよりも信頼性が高いです。
  4. クロップ

    • 抽出された各フレームを、上記で検出された領域に対してシャープに切り出します。
  5. 事前重複除去

    • **dHash(知覚的ハッシュ)**を使用して、ほぼ同一の連続するクロップをフィルタリングします。
    • これは最終的なタブ判定ではなく、次のステップにおける Vision コール数を削減するためのコスト制御のみです。
  6. 小節番号に基づく重複除去

    • 判別基準: 各行の開始位置に表示されている**小節番号(measure/bar number)**が存在するものを「楽譜」とみなします。
    • 処理ロジック: 出現した順序を基準として、異なる小節番号ごとに正確に 1 枚のみを保持し(最初の出現分を選択)ます。
    • 不要なフレームの削除: タブではないフレーム(タイトル画面、イントロ・アウトロなど)を排除します。
    • 圧縮効果: 再生カーソルが横断中も小節番号は不変であり、楽譜ページが変わるまで変更されません。このため、ほぼ同一なカーソルフレーム群をすべて単一のページに圧縮・整理することが可能です。
  7. PDF 作成

    • pdf-lib
      を使用して、発見された異なるタブの行順を追って A4 ページ内に縦方向に積み重ねます。
    • 動画タイトルは
      yt-dlp
      から取得され、出力ファイル名・最初のページの見出し・ドキュメントメタデータのタイトルとしても採用されます。

同じ日のほかのニュース

一覧に戻る →

2026/07/14 7:19

『アジア最浄の村』が日曜日観光客禁止に

## Japanese 翻訳: 2026 年 1 月以来、インディアのメガラヤ州にある約 600 人の居住者がいるモーリャン・オン(Mawlynnong)村では、「真の村の生活」を再建する目的として、日曜日の昼間の観光客に対する厳格な禁止措置を導入しています。1902 年に設立された教会が存在し、人口の推定 100% がクリスチャンであるこのコミュニティは、日曜日には単一の道路への入口を黒い金属製のゲートで閉鎖して、 uninterrupted な礼拝を保証しています。以前からほとんどの観光関連事業所が日曜日の営業停止を選択していました(レストランは 2 カ所のみ営業)ましたが、公式な禁止措置により、今では店舗や一日利用施設が完全に閉鎖されるようになっています。一泊予約を持つゲストはこの昼間の旅行禁止からの例外扱いで、ゲストハウスに滞在することができ、一方で地元のレストランや記念品販売店は引き続き閉鎖されています。住民は、村評議会の委員でもあるプリシウス・コングドプ(Precious Khongdup)を含むコミュニティの一致した支持を受けながら、この取り組みを文化のアイデンティティ、精神的なリズム、および 2003 年に「アジアで最も清潔な村」と命名されたり、2014 年にナレンドラ・モディ首相のクリーン・インディア・ミッションキャンペーンの際に全国的な注目を得たりした功績をもたらした規律を保持するために不可欠だと考えています。この決定は、観光客による妨害に対する具体的な懸念に対応しており、観光客が地面にプラスチック製の水ボトルを置き去りにするというバイラル化した事象などが挙げられ、これにより地元からは強い反発が生じていました。言語学の教授ヴィジャヤ・デブナス(Vijaya Debnath)を含む専門家は、このイニシアチブを称賛しており、清潔さを維持しつつ、村民の静かな一日の休息と祈りの必要性にも敬意を表していると評価しています。

2026/07/14 3:22

Xcode を起動することなく Mac および iOS アプリを開発して配送する方法

## Japanese Translation: 本テキストでは、Xcode を一度設定した後の開封を不要とする堅牢で完全にヘッドレスの iOS アプリケーションの作成・デプロイワークフローが概説されています。シェルスクリプトによるライフサイクル全体のアオマティゼーションを通じて、開発者は `xcodebuild` コマンドラインツールを用いてコードをコンパイルし、`notarytool` によってビルドを保護し、`devicectl` を用いて物理デバイスにアプリを直接インストールします。セキュリティは、証明書ベースのキーチェーンおよび外部パスワードマネージャーの活用により維持され、プライベートキーなどの機密情報はバージョン管理システムへの投入を完全に防ぎます。本システムは XcodeGen を用いてプロジェクトを管理し、煩雑なローカルフォルダではなくクリーンな YAML 設定ファイル(`.yml` ファイル)によってプロジェクトを制御し、アドホックテスト版と公式開発者 ID リリースを自動的に区別します。一度設定されたリリーススクリプトは、アーカイブ、署名、認証化、スタプリング、インストールを含む厳格なパイプラインを実行し、沈黙する失敗を防ぐために堅牢なエラー処理(`set -euo pipefail`)を採用します。このアプローチは、チームが手動のマウス操作または GUI ウィンドウなしに、実際に動作するソフトウェアを効率的にデプロイするために安全で再現可能な CI パイプラインを構築することを可能にします。 ## Text to translate: The text outlines a robust, fully headless workflow for creating and deploying iOS applications that eliminates the need to open Xcode after an initial setup. By automating the entire lifecycle through shell scripts, developers utilize command-line tools such as `xcodebuild` to compile code, `notarytool` to secure builds, and `devicectl` to install apps directly onto physical devices. Security is maintained by leveraging certificate-based keychains and external password managers, ensuring sensitive secrets like private keys never enter version control. The system employs XcodeGen to manage projects via clean YAML configurations (`.yml` files) rather than cluttered local folders, automatically distinguishing between ad-hoc testing versions and official Developer ID releases. Once configured, a release script executes a rigorous pipeline involving archiving, signing, notarizing, stapling, and installation, while using strict error handling (`set -euo pipefail`) to prevent silent failures. This approach empowers teams to establish secure, repeatable CI pipelines that deploy real software efficiently without any manual mouse interactions or GUI windows.

2026/07/14 1:06

Apple が発表した新たな音声分析 API「SpeechAnalyzer」のベンチマークテストで、Whisper とその前代モデルと比較

## Japanese Translation: Apple の新しい SpeechAnalyzer API は、次期 OS 26 の一部として提供されるもので、英語の読み上げ音声に対する優れたオンデバイス音声認識を実現しており、特定ベンチマークコンテキスト内では従来のツールや人気が高い Whisper モデル(Tiny, Base, Small)を大幅に上回っています。この優位性は、M2 Pro チップなどの Apple ハードウェアで行われた厳密なローカルベンチマークを通じて証明され、オーディオを外部サーバーにアップロードすることなく、高速な処理速度——Whisper Small の計算時間の約 1/3——を実現することが示されました。清潔な LibriSpeech テストデータに対しては、従来の SFSpeechRecognizer API に比べて単語誤りを約 4 倍削減し(2.12% WER から 9.02%)、ノイズのあるデータに対しても同様の劇的な改善が見られました。この研究では、Inscribe のプロダクションコードパスと同一のテストハルネスを用い、Whisper の測定値は OpenAI が公開した値と比較しましたが、Whisper の相対的な不正確さは、これらのベンチマーク(アクセントのある音声、遠距離音声、または複数話者シナリオを含まない)に限定されたもの임을 指摘しました。重要なのは、すべてのテストが完全にオンデバイスで行われたことであり、従来の SFSpeechRecognizer もローカルで使用される場合でもクラウド処理にデフォルトで切り替わるという点です。これらの結果に基づき、Inscribe は製品ロジックを更新し、対応言語(現在約 30 のロケール)では SpeechAnalyzer を優先し、未対応の言語のみを Whisper に切り替えました。さらに、研究チームは Inscribe が SpeechAnalyzer でオーディオファイルを取り扱う際に重大なバグを見出し、生テキストデータを検証のために公開ダウンロード可能とする措置を講じました。これは、Apple エコシステム内のプライバシー重視かつ高パフォーマンスなオンデバイス AI 機能において大きな飛躍を意味します。

Show HN: YouTube ギタータブ解析ツール | そっか~ニュース