mcpField
Y
youtube-render-pdf

youtube-render-pdf

github.com/wdknsドキュメント820334 回インストール6 日前に更新
リポジトリ

youtube-render-pdf について

youtube-render-pdfは、YouTube動画を中国語の講義ノートとPDFにまとめるスキルです。内容を学習しやすい順序に再構成し、元のカバー画像や重要な映像を取り入れます。

主な機能

  1. 01中国語の講義ノート作成
  2. 02授業向けの内容再構成
  3. 03重要な映像の図版化
  4. 04完全なLaTeX文書の生成
  5. 05PDFへのコンパイル

活用シーン

  1. 01オンライン講義のノート化
  2. 02長い動画の内容統合
  3. 03映像を使った数式や図の説明

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wdkns/wdkns-skills --skill youtube-render-pdf

インストール後、Claude Code で/youtube-render-pdfを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlassets/notes-template.tex

詳細

YouTube Render PDF

このスキルを使うと、YouTube 動画を完全なコンパイル可能な .tex ノートと、レンダリング済み PDF に変換できます。

目標

YouTube の URL をもとに、質の高い中国語の講義ノートを作成します。

出力には、次の要件を満たす必要があります。

  • 字幕の書き起こしだけに頼らず、動画で実際に教えている内容を使う
  • 動画のオリジナルカバー画像が入手できる場合は、.tex とレンダリング済み PDF の表紙に掲載する
  • 重要度の高い必要なキーフレームをすべて図として含め、重複するスクリーンショットは追加しない
  • 最後に、講演者による実質的な締めくくりの議論と、要点をまとめた独自の考察を含む総括セクションを設ける
  • \section{...} と \subsection{...} を使って構造化する
  • \documentclass から \end{document} までを含む完全な .tex ドキュメントにする
  • 最終成果物として PDF を正常にコンパイルする

教育上の基準

ノートは、優れた人間の教師が読者を導くような内容にしてください。

  • 各主要セクションは、まず動機、次に中心的な考え方、その仕組み、例や根拠、最後に要点という順に構成する
  • 論理のつながりを丁寧かつ明確に説明し、講演者がなぜその概念を導入するのか、どのような問題を解決するのか、次の考え方にどうつながるのかを示す
  • 深く、それでいて理解しやすい説明を目指す。技術的な深さを保ちつつ、形式的な説明は平易な直感を示してから導入する
  • 内容の濃いセクションは、長い導出にすべてを詰め込まず、理解を段階的に深められるよう、より小さなサブセクションに分ける
  • 字幕の内容を時系列順に並べるだけにせず、明確な意図、対比、展開のある教え方に沿って再構成する

ソースの取得

  1. まず動画のメタデータを確認します。 作成を始める前に、タイトル、チャプター、再生時間、サムネイルの有無、字幕の有無を優先して確認してください。

  2. 図の抽出には、利用可能な最適な動画ソースを優先します。 フォーマットを調べ、この環境で実際にダウンロード可能な最高解像度を選択してください。

  3. .tex の作成前に、動画のオリジナルカバー画像を取得します。 プラットフォームのメタデータから取得できる、最も高解像度のサムネイルを優先してください。 選択したカバー画像をローカルに保存し、表紙からローカルの画像ファイルを参照してください。 公式カバー画像がある場合は、無作為に選んだ動画フレームで代用しないでください。

  4. 動画に最も適した字幕トラックを優先します。 手動字幕と自動生成字幕の両方がある場合は、手動字幕を優先してください。 動画の言語またはユーザーが指定した言語に最も適したデフォルト言語を優先してください。 必要な場合に限り、次に適した字幕トラックを使用してください。 字幕のタイムスタンプは保持し、図の位置を特定する必要がある間は、字幕を早い段階でプレーンテキストにまとめないでください。

  5. 可能な場合は、すべてのソース資料をローカルに保存します。 一般的な作業用資料には、メタデータ、ダウンロードしたカバー画像、タイムスタンプ付き字幕ファイル、必要に応じて整形した文字起こしテキスト、ローカル動画ファイル、抽出したフレームなどがあります。

長時間動画の戦略

長時間の動画では、単一の大きな処理に頼らないでください。

  • 動画が20分を超える場合、または字幕ファイルに300件を超える字幕エントリーが含まれる場合は、作業を小さなセグメントに分割してください。
  • 分割には章の境界を優先してください。章がない場合や、章の長さに偏りがある場合は、まとまりのある時間区間または字幕範囲ごとに分割してください。
  • サブエージェントが利用できる場合は、異なるセグメントを担当する複数のサブエージェントを並行して起動し、網羅性を高め、詳細が失われないようにしてください。
  • 各サブエージェントには具体的なセグメントの範囲を指定し、次の内容を返すよう求めてください:セグメントの学習目標、中核となる主張、重要な数式やコード、時間情報の出典を含む必要な図、および統合時に解決すべき曖昧な点。
  • 説明が境界をまたぐ場合は、隣接するセグメント間に小さな重複を設け、統合時に重複を取り除いてください。
  • メインエージェントは、セグメントごとの出力を1つの統一されたアウトラインと一貫性のある最終的な解説にまとめてください。最終PDFは、要約をつなぎ合わせたものではなく、1つの講義ノートとして読めるものでなければなりません。

教材の内容に関するルール

利用可能な場合は、以下のすべてをもとにノートを作成してください。

  • 動画のタイトルと章構成
  • 動画の元のカバー画像と主要なメタデータ
  • 画面上の図、数式、表、プロット、アーキテクチャのスライド
  • 字幕による説明、例、口頭での強調
  • インタビュー、パネル、ポッドキャスト、会話形式の動画における、正確な言い回しが臨場感、ユーモア、直感、または特に簡潔な情報を加える、短く情報密度の高いオリジナルの対話部分
  • 講演で表示または説明されたコードスニペット

実際の学習に貢献しない内容は省いてください。

  • あいさつ
  • 雑談
  • 情報、緊張感、ユーモア、直感、または学習上の価値を加えない、定型的なやり取り
  • スポンサー関連の内容
  • チャンネル運営に関する内容
  • 締めくくりの社交辞令

まとめ、制約、今後の課題、トレードオフ、助言、未解決の問いなど、実際の学習価値を含む場合は、話者による最後の議論も残してください。

執筆ルール

  1. ユーザーが別の言語を明示的に指定しない限り、ノートは中国語で執筆してください。

  2. \section{...} と \subsection{...} を使って文書を構成してください。 必要に応じて講義の流れを再構成し、字幕の順序をそのままなぞらないでください。 各セクションでは、該当する場合、次の問いに順番に答えてください:どのような問題を解決するのか、より単純な見方ではなぜ不十分なのか、中核となるアイデアは何か、どのように機能するのか、読者が何を覚えておくべきか。

    「不是……而是……」という文型を多用しないでください。 動画自体が実質的な対比を示し、その対比が仕組みの理解を大きく助ける場合にのみ使用してください。

    曖昧で抽象的すぎる表現は避けてください。 可能な限り、具体的な仕組み、例、変数、手順、観察された現象、タイムスタンプ、図、または話者が提示した根拠に基づいて主張を説明してください。

  3. assets/notes-template.tex を起点にしてください。 ローカルのカバー画像のパスを含むメタデータブロックを埋め、本文ブロックを生成したノートに置き換えてください。

  4. 利用できる場合は、表紙に動画の元のカバー画像を含めてください。 後のページに埋もれさせず、1ページ目に配置してください。 カバー画像は本文中の学習用図とは視覚的に区別してください。

  5. 説明が大きく改善される場合は図を使用してください。 図の数を少なくするために最適化するのではなく、説明の網羅性と読みやすさを優先し、明確な理解に必要なだけの図を含めてください。 効果的な図の例として、重要な数式、図表、比較図、プロット、パイプラインのスケジュール、アーキテクチャ図、段階ごとの視覚的な進行図が挙げられます。

  6. 画像を独自のメッセージボックスの中に配置しないでください。

  7. 数式が登場する場合: まず、その数式が何を表そうとしているのか、なぜ登場するのかを平易な中国語で説明してください。 $$...$$ を使ってディスプレイ数式として示してください。 その直後に、すべての記号を説明する平坦なリストを続けてください。

  8. コード例が登場する場合: コードを示す前にその役割を説明し、必要に応じてコードの後に期待される動作をまとめてください コード例は lstlisting で囲んでください 内容が分かる caption を付けてください

  9. 内容に応じて、学習上の重要なポイントを意識的かつ繰り返し強調してください: 正式な定義、中心的な主張、仕組みの要約、定理に相当する記述、重要なアルゴリズムの手順、複雑な説明の後に主要な考え方を簡潔に言い換えた内容など、読者が必ず理解しておくべき中核概念には importantbox を使用してください 前提知識の確認、歴史的な系譜、エンジニアリング上の背景、設計上のトレードオフ、用語の比較、直感を養うためのたとえなど、主題を理解するうえで役立つ補足知識には knowledgebox を使用してください 記法の混同、隠れた前提、誤解を招く経験則、起こりやすい実装ミス、因果関係の混同、1つずれるような推論ミス、誤った直感と正しい理解を対比する箇所など、よくある誤解や失敗につながる内容には warningbox を使用してください dialoguebox は、会話が中心の動画で、短い会話の一部が情報量に富み、面白く、印象的、または特に直感的であり、話者の言葉を残すことで読者がその場にいるように感じられる場合に限って使用してください dialoguebox には、1つのやり取りのほか、質問、追加質問、反論、明確化、回答など、密接につながった複数の発言を含めてもかまいません dialoguebox の内容は短くしてください。話者ラベルと具体的なタイムスタンプまたは時間範囲を残し、確信がある場合に限り、明らかなASRの誤りを軽く修正してください。また、その会話が重要である理由を説明する文章をボックスの後に続けてください 挨拶やつなぎの言葉、長い書き起こし、通常の要約説明のほうが分かりやすい会話には dialoguebox を使用しないでください 1セクションにつきボックスを1つに限定する必要はありません。複数の異なる学習上の重要なポイントが含まれる場合は、セクション内で複数のボックスを追加してください 各ボックスには、単なる強調ではなく、具体的な学習上の要点を持たせてください そのボックスのきっかけとなる段落、導出、例の直後に配置することを優先してください 通常の説明文は通常の文章のままにしてください。ボックスは重要な要点のために使い、装飾目的では使わないでください 図は importantbox、knowledgebox、warningbox、dialoguebox の外に配置してください

  10. すべての主要なセクションの末尾に \subsection{本章小结} を付けてください。 外部リンクとして価値のあるものが1つまたは2つある場合は、\subsection{拓展阅读} を追加してください

  11. 文書の末尾に、\section{总结与延伸} などの最上位セクションを追加してください。 この最終セクションには、次の内容を含めてください:

  • 定型的な締めの挨拶を除く、話者による内容のある締めくくりの議論
  • 中核となる主張、仕組み、実践的な意味について、構造化して独自にまとめた内容
  • 概念の要約、セクション間の関連付け、動画の内容に忠実な慎重な一般化を含む、発展的な統合
  • 内容に即した具体的な要点、未解決の問い、または次のステップ
  1. LaTeX 内に [cite] 形式のプレースホルダーを出力しないでください。

図の扱い

恣意的な枚数の上限や、文書を視覚的にすっきり見せることへの偏りではなく、必要性と学習上の価値に基づいて図を選んでください。

候補フレームを探す際は、適合率よりも再現率を大きく重視してください。 近くにある候補をまず多めに確認するほうが、スライド、数式、表、図がようやく完全に表示され、読み取れるフレームを見逃すよりも望ましいです。

フレームの理解は、直接目視して行う必要があります。

  • 候補フレームや切り抜きを確認して、何が表示されているか、どのように説明すべきか、掲載するのに十分な状態かどうかを判断する前に、view image ツールを使用してください。
  • フレームを視覚的に理解する代わりに、tesseract などの OCR ツールを使用しないでください。
  • 画像自体を確認せずに、近くの字幕、ファイル名、タイムスタンプだけからフレームの意味内容を推測しないでください。
  • コンタクトシート、モンタージュ、タイル状の画像列は候補を広く探すのに適していますが、最終的に採用するか却下するかの判断と、内容に即した命名は、view image で実際の画像を確認したうえで行ってください。
フレーム選択チェックリスト

動画フレームを挿入する前に、まず同じ字幕に対応する区間の近くにある候補を複数確認し、以下のチェックリストを適用してください。いずれかの項目を満たさない場合は、そのフレームを却下し、近くを探し続けてください。おおよその一致で済ませないでください。

  • 関連性:フレームは、単に広い意味で同じトピックを扱うだけでなく、前後の段落や節で説明されている具体的な概念を直接裏付ける必要があります。
  • 必要な内容の表示:本文で言及されている視覚要素がすべて、フレーム内にすでに表示されている必要があります。
  • 完全に表示された状態:スライド、ホワイトボード、アニメーション、ダッシュボードが段階的に展開される場合は、中間状態ではなく、内容がすべて表示されて読み取れる状態を使用してください。
  • 近くにある最良の候補:近くにある複数のフレームを比較し、最も完成度が高く、最も読み取りやすいものを選んでください。
  • 読みやすさ:テキスト、数式、ラベル、図の構造が、掲載するに足る程度に判読できる必要があります。
フレームの命名
  • 生の候補フレームには、中立的なタイムスタンプベースの名前を使用してください。実際のフレーム内容を確認する前に、意味的な名前を付けないでください。

  • フレームの内容が画像内にはっきりとすべて表示されていることを視覚的に確認してから、意味的な名前に変更してください。

  • 意味的なファイル名は、字幕、前後のナレーション、または意図された段落のトピックに基づく推測ではなく、フレームに実際に表示されている内容を説明するものにしてください。

  • フレームの表示が途中であったり、切り替わりの最中であったり、曖昧であったりする場合は、探索を続け、まだ意味的な名前を確定しないでください。

  • キーフレームの探索では、タイムスタンプ付きの字幕ファイルを主な手がかりとして使用してください。

  • まず、説明されている概念、例、数式、または視覚的な説明に対応する字幕の範囲を特定してください。

  • 次に、その字幕に対応する時間区間と、必要に応じてその前後を探索し、最も読みやすいフレームを見つけてください。

  • 推測したタイムスタンプから、直接1枚のフレームだけを抽出するのは避けてください。 まず、該当する区間全体から候補フレームを高密度で生成し、その後、確認して候補を絞り込んでください。

  • magick montage、コンタクトシート、タイル状のフレームストリップなど、多数の近接した候補をまとめて確認できるツールを優先してください。 これらを使用して見落としを防ぎ、視覚的な内容がすべて表示されているフレームを確実に見つけてください。

  • PPT の段階的な表示、アニメーションの展開、ホワイトボードへの追記、ダッシュボードの状態変化などがある場合は、内容が最後まで表示された状態を明示的に探してください。 おおむね適切に見える最初のフレームで止めないでください。

  • 近接した複数の候補が段階的な表示状態だけで異なる場合は、情報が最も完全かつ読みやすく表示されたフレームが見つかるまで確認を続けてください。

  • 同じ説明区間内の、情報が少ない早い段階のフレームと、より情報量が多い後のフレームのどちらにするか迷う場合、後のフレームの内容が大幅に充実していて、なおかつ読みやすければ、後のフレームを優先してください。

  • 内容を十分に説明するために必要な図はすべて含めてください。

  • 動画内でアイデアが段階的に展開される場合、1つのセクションまたはサブセクションに複数の図を含めても問題ありません。むしろ、そのほうが望ましい場合もあります。

  • 繰り返しの多いフレームや情報量の少ないフレームは省いてください。

  • チャプターがある場合は、その境界付近や説明の要点にあたる箇所からフレームを抽出してください。ただし、字幕のタイミングと照らし合わせて確認してください。

  • 最初に抽出したフレームがアニメーションの切り替わりにあたる場合は、前後のタイムスタンプも探索してください。

  • 全体の構図が粗すぎる場合は、該当領域を切り抜いたり、拡大したり、分離したりしてください。

  • スライドの内容が段階的に表示される場合は、読み取り可能な最終状態を取得してください。中間フレームを追加するのは、それが本当に異なる手順を伝える場合に限ります。

  • 視覚情報が密なセクションでは、まず多めに候補を抽出し、後から絞り込んでも問題ありません。 重要な視覚状態を確認できなくなるほど早い段階で候補数を抑えないでください。

  • ラベルが読めないほど情報を詰め込んだ1枚の図よりも、必要な図を複数並べた構成を優先してください。

  • 数式やラベルの読みやすさを保ってください。

図の時間情報の記録

.tex または PDF が特定の動画フレーム、あるいは動画フレームから切り抜いた画像を参照する場合は、その元となる時間区間を同じページの最下部の脚注に記録してください。

  • 脚注には、たとえば 00:12:31--00:12:46 のように、具体的な時間区間を記載してください。
  • 時間区間は、曖昧なチャプター単位の推定ではなく、図を特定するために使用した字幕に対応する区間に基づいてください。
  • 図が切り抜き画像の場合も、脚注には元のフレームまたは字幕範囲の動画内の時間区間を記載してください。
  • 1つの図に含まれる近接した複数のフレームが同じ字幕区間に由来する場合は、分かりやすい脚注を1つ付ければ十分です。
  • 図と時間を記載した脚注が同じページに配置されるようにしてください。通常のフロート配置でページが分かれる場合は、[H]、フロートではないブロック、または安定した別の配置方法を優先してください。

可視化

スクリーンショットと文章だけでは説明が難しい概念には、正確な可視化を追加してください。

次の2つの方法を使用できます。

  • TikZ または PGFPlots で LaTeX ネイティブの可視化を作成する
  • スクリプトで図をあらかじめ作成し、画像として挿入する

スクリプトで作成するイラストには、正確な説明用の図を作るうえで最も明快な方法となる場合、matplotlib や seaborn などの Python ツールを優先してください。

LaTeX でネイティブに描画するのではなく、外部で可視化を作成する場合は、次の点に従ってください。

  • 図を pdf として書き出し、ラスタライズによる劣化なしに .tex に挿入できるようにする
  • プロット、チャート、概略図には、ベクター形式を優先する
  • 内容が本質的にラスター形式である場合を除き、スクリプトで作成する説明用の図には png や jpg を使用しない

元の資料に含まれる関係性、結果、数式をスクリーンショットで示すよりも描き直したほうが明確になる場合は、LaTeX ネイティブのツール、または matplotlib/seaborn で再構成してください。

次の用途に可視化を使用してください。

  • プロセスフロー、パイプライン、アーキテクチャの概要
  • スケーリング則、学習曲線、ベンチマーク結果、アブレーション比較などの曲線やチャート
  • データの関係性を説明する分布、相関、ヒートマップなどのプロット
  • 複雑な関数、曲面、等高線プロット、幾何学的な直感を示す図
  • チャートとして描き直すことで、より分かりやすくなる表や比較
  • セクションの中心となる仕組みや要点を1つの図にまとめた概要図

学習に役立たない装飾的な画像は追加しないでください。

最終チェックリスト

提出前に、次のすべてを確認してください。

  • 重要な学習内容が抜け落ちておらず、要約、再構成、要約作業の過程で具体的かつ重要な詳細が失われていない
  • テキストと図が対応している。挿入した各フレームが周囲の説明を補足し、必要なトリミングが行われ、切り替え中や未完成の状態ではなく、関連情報を最も網羅したフレームが選ばれている
  • 教材として十分に視覚的な内容になっている。情報量の多い重要なキーフレームをさらに追加すべきか、また、LaTeX ネイティブまたは Python スクリプトで作成するイラストを追加すると明確さが向上するかを確認する

提出物

次のすべてを提出してください。

  • 表紙に使用する、ダウンロード済みの画像
  • 文書で参照されている、抽出または作成した図のアセット
  • 最終版の .tex ファイルと、コンパイル済みの .pdf ファイル([中文视频标题]_notes.tex や [中文视频标题]_notes.pdf のような、適切な中国語のファイル名を使用してください)

アセット

  • assets/notes-template.tex:コピーして内容を記入する LaTeX のデフォルトテンプレート

コメント