mcpField
A
anthropic-skilljar-extractor

anthropic-skilljar-extractor

github.com/maystudiosドキュメント2662 回インストール11 週間前に更新
リポジトリ

anthropic-skilljar-extractor について

Anthropic Skilljar Course Extractorは、Skilljarのコースページを整理されたレッスンファイルに変換するスクリプトとワークフローです。埋め込みノートとコース構成を抽出し、図をダウンロードして、生成したMarkdownを拡充する手順を示します。

主な機能

  1. 01コースノートとレッスンの抽出
  2. 02コース構成の解析
  3. 03レッスン図のダウンロード
  4. 04URLによるレッスンの重複排除
  5. 05レッスンMarkdownの拡充

活用シーン

  1. 01ローカルのレッスンファイル作成
  2. 02抽出したコースノートの整理
  3. 03コース図への説明追加

インストール

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

$npx skills add https://github.com/maystudios/claude-skills --skill anthropic-skilljar-extractor

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

同梱ファイルscripts/extract_course.py

詳細

Anthropic Skilljar コース抽出ツール

ステップ 1:抽出スクリプトを実行する

python3 scripts/extract_course.py \
  <skilljar_url> <output_dir>

次の内容が生成されます:

<course-slug>/
├── README.md
├── 01-<section>/
│   ├── 01-<lesson>.md
│   └── ...
└── assets/images/   ← downloaded .webp diagrams

ステップ 2:図を説明する

assets/images/ にあるフルサイズの .webp(-medium.webp ではないもの)ごとに、次の手順を実行します。

  • Read ツールを使って画像を視覚的に確認します
  • 詳細な代替テキストのブロックを追加し、関連するレッスンの Markdown に ![desc](../assets/images/file.webp) を埋め込みます

トピックに基づいて画像をレッスンに割り当てます。アーキテクチャ図は導入レッスンに、コードのスクリーンショットはハンズオンレッスンに、まとめのスライドは復習レッスンに配置します。

ステップ 3:レッスンの Markdown を充実させる

スクリプトは箇条書きのメモを埋め込みます。各レッスンのファイルを拡充します。

  • 概念ごとに適切な ## 見出しを追加します
  • コード例を言語タグ付きのフェンスコードブロックで整形します
  • 「Key: value」の行を **Key:** value の太字形式に変換します
  • 比較表(例:メッセージの種類、プリミティブ)を追加します
  • フロントマターブロック(Section、URL、Lesson Type)はそのまま残します

ステップ 4:README を強化する

自動生成された README に以下を追加します。

  • コースの説明を詳しく記した段落
  • 主要な概念の参照表
  • すぐに参照できるコードスニペット
  • 各画像について一行で説明した図の索引

スクリプトの仕組み(デバッグ用)

  • ページの HTML を取得し、window.__chatData を抽出します(すべての Skilljar ページに埋め込まれている LLM のメモ)
  • サイドバーの <ul class="dp-curriculum"> を解析し、セクションとレッスンの構成を取得します
  • d7juhi4i8fsw0.cloudfront.net/images/<slug>/ から CloudFront の画像をダウンロードします
  • URL を使ってレッスンの重複を除去します(カリキュラムの HTML はページソースに二度出現します)
  • タイトルの類似度に基づいて、メモをレッスンにファジーマッチングします

ログインが必要な場合

個々のレッスンページは常に認証が必要なため、取得しないでください。 コースのランディングページ自体にログインが必要な場合(スクリプトがレッスンを 0 件検出した場合):

  1. ページの HTML を保存するようユーザーに依頼します(ブラウザー → 名前を付けて保存 → Web ページ、HTML のみ)
  2. スクリプトの fetch() を open(path).read() に変更し、ローカルファイルを渡します

コメント