linkedin-learning について
linkedin-learning は、Apify を介して LinkedIn Learning の公開コースカタログを扱う Python・MCP インターフェースです。ログイン認証なしでコースを検索し、レビューやレッスン単位のシラバスを含む詳細情報を取得できます。
主な機能
- 01キーワードや条件によるコース検索
- 02検索上限を超える結果の取得
- 03コースレビューと評価の取得
- 04シラバスと無料プレビュー表示の確認
- 05カタログ結果の JSON、CSV、Excel 出力
活用シーン
- 01条件に合うコースカタログの作成
- 02コースの評価やレビューの比較
- 03無料で視聴できるレッスンの特定
MCP 対応
Apify Actor への MCP インターフェースを提供し、MCP クライアントから公開カタログの検索やコース詳細の取得を行えます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.apify.com/?tools=johnvc/linkedin-learning-apiclaude mcp add --transport http johnisanerd-linkedin-learning https://mcp.apify.com/?tools=johnvc/linkedin-learning-api{"mcpServers":{"johnisanerd-linkedin-learning":{"type":"http","url":"https://mcp.apify.com/?tools=johnvc/linkedin-learning-api"}}}Cursor で開く{"servers":{"johnisanerd-linkedin-learning":{"type":"http","url":"https://mcp.apify.com/?tools=johnvc/linkedin-learning-api"}}}VS Code で開く{"mcpServers":{"johnisanerd-linkedin-learning":{"type":"http","url":"https://mcp.apify.com/?tools=johnvc/linkedin-learning-api"}}}{"mcpServers":{"johnisanerd-linkedin-learning":{"serverUrl":"https://mcp.apify.com/?tools=johnvc/linkedin-learning-api"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
🎓 LinkedIn Learning API:Python と MCP でコースデータ、レビュー、シラバスを取得
Apify の LinkedIn Learning API を Python と MCP ですぐに使い始めるためのガイドです。キーワード、スキルレベル、長さ、ソフトウェアで LinkedIn Learning の公開コースカタログを検索し、任意のコースの完全なレコードを取得できます。評価と評価件数、受講者が書いたレビュー、各レッスンの説明と無料プレビューの有無を含む完全なシラバス、プロフィールへのリンク付き講師、習得できるスキル、修了証の詳細を確認できます。ログイン、Cookie、サイトライセンスは必要ありません。
- Actor:Apify の LinkedIn Learning API
- 入力スキーマ:入力パラメーター
- 無料の API トークンを取得:apify.com
LinkedIn 独自の Learning API は、パートナープログラムまたは購入したサイトライセンスを通じてのみ利用でき、管理者がプロビジョニングする OAuth キーが必要です。この Actor は、ログアウト状態の訪問者に LinkedIn Learning が公開しているページを読み取り、検索結果からはコース名、リンク、講師、所要時間、閲覧者数、サムネイルを、コース URL からはレビューと目次を含む完全なレコードを、同じカタログメタデータとして JSON で返します。対象は公開カタログのみです。ライセンス契約を結んだ組織の受講者のアクティビティを返す LinkedIn のレポート API は別の製品であり、このツールはそのデータを読み取りません。料金は行単位です。検索結果 1,000 件あたり $0.10、コースの完全なレコード 1,000 件あたり $0.50 です。これに加えて、Apify のプラットフォーム利用料金として、Actor の起動 1 回あたり $0.00001(実行メモリ 1 GB ごとに 1 イベント、最低 1 イベント)と、保存されたデータセットの行 1 件あたり $0.00001 が適用されます。
動画:Apify で MCP サーバーを構築する
テキストでの解説
LinkedIn Learning API には、mode で指定する 2 つのモードがあります。search モードでは、queries(最大 25 個のキーワード)または topics を渡し、必要に応じて sortBy、difficultyLevel、entityType、duration、softwareNames で絞り込めます。各コースは、title、courseUrl、courseId、entityType、instructors、durationText、viewersText、releaseText、thumbnailUrl を含む search_result の行として返されます。LinkedIn が返す結果はクエリごとに最大 50 件です。より多くのコースを取得したい場合は、expandWithFilters を使うと、LinkedIn 独自のフィルターの組み合わせでクエリを再実行し、重複のないコースを統合します。details モードでは、コース、レッスン、ラーニングパスのリンクを含む courseUrls(最大 200 件)を渡すと、ratingValue、ratingCount、enrollmentCount、reviews、レッスンごとの isFree フラグを含む tableOfContents、skills、instructors、lessonCount、freeLessonCount、hasCertificate、certificateName を含む course_detail の行が返されます。検索時に enrichDetails を true に設定すると、見つかった各コースを開いて、代わりに完全なレコードを返します。この場合、完全なレコードの料金が 1 回課金されます。公開タスクの LinkedIn Learning のコースレビューと評価を抽出 は、3 つのコース URL を指定して details モードを実行し、レビュー本文とともに、各レビュー投稿者の名前、職種、プロフィールリンクを返します。サンプルファイルの run_course_reviews() も同じ details モードの呼び出しを Python から実行しますが、最初の実行コストが約 $0.0005 になるよう、3 つの URL のうち最初の URL のみに絞っています。
クイックスタート
前提条件:Python 3.11 以降、uv、および apify.com で取得できる無料の Apify API トークン。
git clone https://github.com/johnisanerd/Apify-LinkedIn-Learning-API.git
cd Apify-LinkedIn-Learning-API
uv sync
cp .env.example .env # paste your token into .env
uv run python linkedin-learning-api-example.py
各サンプルは個別のフラグで指定します。
uv run python linkedin-learning-api-example.py --example default # search "python", 5 rows
uv run python linkedin-learning-api-example.py --example catalog # course catalog rows, each printed as JSON
uv run python linkedin-learning-api-example.py --example reviews # written reviews for one course
uv run python linkedin-learning-api-example.py --example new-courses # newest releases on a topic
uv run python linkedin-learning-api-example.py --example all
各サンプルでは、意図的に取得する行数を少なくしています。料金は取得した行数に応じて発生するため、まずデータの形式を確認してから maxItems を増やしてください。
.env ファイルを使わない場合は、代わりにトークンを環境変数として設定します。
export APIFY_API_TOKEN="paste_your_real_token_here" # replace with the token from your Apify account
uv run python linkedin-learning-api-example.py
この LinkedIn Learning API を使う理由
「機能と出力形式」の項目別の詳細に入る前に、Actor が返すデータと料金を簡単に紹介します。
ログインもサイトライセンスも不要
Actor は、ログアウト状態の訪問者に LinkedIn Learning が表示する情報のみを読み取ります。セッション Cookie を指定する項目はなく、OAuth の手順もありません。無料の Apify トークンがあれば、誰でも実行できます。
レッスンごとの完全なシラバス
tableOfContents には、各セクションとレッスンがすべて一覧表示されます。それぞれに独自の title、description、durationSeconds、url、isFree フラグが含まれ、コース全体の freeLessonCount も集計されます。これにより、各ページを開かずに無料プレビューのレッスンを見つけられます。
受け取った行に対して料金が発生
検索結果はコース検出イベントに対して 1,000 件あたり $0.10、完全なレコードはコース詳細イベントに対して 1,000 件あたり $0.50 で課金されます。重複行、エラー行、およびクエリに一致するものがない場合に LinkedIn が代わりに表示する人気コースのページは、コース検出またはコース詳細の料金では課金されません。
レビュー投稿者の情報を含む LinkedIn Learning のレビュー
コースページに文章形式のレビューが掲載されている場合、完全なコースレコードの reviews にレビュー本文、星による rating、レビュー投稿者の authorName、authorJobTitle、authorProfileUrl、さらに datePublished が含まれます。他のコースデータツールでは星の平均評価と評価件数までしか取得できません。レビュー本文と投稿者の情報を確認できるのは、コースページだけです。
50 件の上限を超える LinkedIn Learning のコースカタログとコース一覧
LinkedIn では、1 回の検索で最大 50 件までしか表示されません。複数のキーワードやトピックページに対して検索モードを実行し、expandWithFilters を有効にすると、この上限を超えられます。データセットは JSON、CSV、または Excel でエクスポートできます。expandWithFilters は、LinkedIn 独自のフィルターの組み合わせを使って各クエリを繰り返し、重複のないコースを統合します。各クエリ内では、行は courseId、レッスンはそれぞれの URL に基づいて重複が排除されるため、2 つのスラッグから見つかったコースも 1 回だけ返されます。異なる queries の両方に一致するコースは、それぞれの searchQuery の下に 1 回ずつ表示されます。アカウント不要でダウンロードできる LinkedIn Learning のコースカタログとしては、これが最も近い方法です。
LinkedIn Learning のラーニングパス、レッスン、コースの区別
検索結果では、entityType によって COURSE、VIDEO、LEARNING PATH が区別されます。詳細モードでラーニングパスの URL を指定すると、pathUrl、courseCount、そのパスに含まれる順序どおりの courses が返されます。レッスンの URL を指定すると、そのレッスンと親の courseId が結び付けられて返されます。
機能
主な機能
queriesまたはtopicsで検索し、sortBy、difficultyLevel、entityType、duration、softwareNamesで絞り込めます。- LinkedIn Learning のコースカタログをダウンロードできます。
expandWithFiltersは LinkedIn 独自のフィルターの組み合わせでクエリを再実行します。これは 1 クエリあたり 50 件の上限を超える唯一の方法であり、1 回の実行で 50 行を超えるコース一覧を取得できます。 - LinkedIn Learning のラーニングパスに対応しています。詳細モードでは、コース、レッスン、ラーニングパスの URL を 1 回の実行につき最大 200 件まで指定でき、それぞれに対して
course_detail、lesson、learning_pathのいずれかの行が返されます。 enrichDetailsを使うと、1 回の実行で検索結果を完全なコースレコードに変換できます。料金は完全なレコードの単価で、行ごとに 1 回課金されます。- LinkedIn Learning の無料コースを確認できます。
tableOfContentsにあるfreeLessonCountと各レッスンのisFreeフラグから、各コースでサブスクリプションなしで視聴できる範囲がわかります。 - オンラインコースのデータセットを作成できます。1 回の検索で複数の
queriesまたはtopicsを実行し、各クエリの行をそれぞれのsearchQuery付きで JSON、CSV、または Excel としてエクスポートできます。
データ品質
- 各レビューには、
body、rating、authorName、authorJobTitle、authorProfileUrl、datePublishedが含まれます。 tableOfContents内のすべてのレッスンには、それぞれ固有のdescription、durationSeconds、url、isFreeフラグがあります。courseUrlはトラッキングパラメーターを除いた正規のリンクです。各クエリ内(および詳細取得の実行内)では、行はcourseIdで、レッスンはそれぞれの URL で重複排除されるため、2 つのスラッグ経由で取得されたコースも 1 回だけ返されます。異なる 2 つのqueriesに一致するコースは、各searchQueryの下に 1 回ずつ表示されます。no_resultsとerrorの行も追加されるため、何が失敗したのかを確認できます。これらの行に対して、コース取得時またはコース詳細取得時の料金が請求されることはありません。
レシピ
それぞれ専用の Store ランディングページがある、すぐに使える設定です。
- LinkedIn Learning のコースデータを JSON で取得(ログイン不要):
"project management"を検索モードで検索し、maxItemsを 25 に設定します。各行にはタイトル、リンク、講師、再生時間、視聴者数、サムネイルが含まれます。ローカル:uv run python linkedin-learning-api-example.py --example catalog - ログイン不要で LinkedIn Learning のコースデータを取得:
"cybersecurity"を同じ形式で検索し、アカウントもセッション Cookie もなくカタログを読み取れることを確認します。 - LinkedIn Learning のコースレビューと評価を抽出:3 つのコース URL を対象に詳細モードで実行します。各行には
ratingValue、ratingCount、投稿されたreviewsが含まれます。ローカル:uv run python linkedin-learning-api-example.py --example reviews - LinkedIn Learning のコース評価データセットを作成:
"python"を検索し、enrichDetailsを true、maxItemsを 5 に設定します。各コース行は評価、評価数、学習者数、レベル、再生時間を含む完全なレコードになります(ラーニングパスは引き続き検索結果の行として表示されます)。 - 新しい LinkedIn Learning コースの公開を追跡:
"artificial intelligence"を検索し、sortByをRECENCYに設定して新しい順に並べます。ローカル:uv run python linkedin-learning-api-example.py --example new-courses
スケジュール設定のヒント。 これらの入力を Actor ページでタスクとして保存し、毎週実行するようにスケジュール設定します。sortBy を RECENCY に設定すると、毎週、そのトピックの最新コースがデータセットに表示されます。また、enrichDetails を有効にすると、誰も操作しなくても、すべてのコースの ratingValue、ratingCount、投稿された reviews が更新されます。
使用例
基本設定。デフォルトの実行と同じです。
{
"mode": "search",
"queries": ["python"],
"sortBy": "RELEVANCE",
"difficultyLevel": "ANY",
"entityType": "COURSE",
"duration": "ANY",
"maxItems": 5
}
詳細設定。フィルターを適用した検索結果を完全なレコードに拡充します。
{
"mode": "search",
"queries": ["excel"],
"softwareNames": ["Microsoft Excel"],
"difficultyLevel": "BEGINNER",
"duration": "BETWEEN_1_TO_2_HOURS",
"sortBy": "POPULARITY",
"maxItems": 10,
"enrichDetails": true,
"maxConcurrency": 5
}
詳細モード。すでに取得済みの URL を対象に、完全なレコードを取得します。
{
"mode": "details",
"courseUrls": [
"https://www.linkedin.com/learning/python-essential-training-18764650",
"https://www.linkedin.com/learning/paths/getting-started-with-python"
]
}
入力パラメーター
必須なのは mode のみです。検索設定は mode が search の場合に適用され、courseUrls は mode が details の場合に適用されます。検索モードでは、queries または topics の少なくとも一方が空でない必要があります。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
mode | string | はい | search | キーワードとフィルターを使ってコースを検索する場合は search、すでに把握しているコース URL の完全なレコードを取得する場合は details を指定します。 |
queries | array of string | topics が設定されていない検索モード | 事前入力済みの ["python"] | 検索キーワードを 1 行に 1 つずつ指定します。各クエリは個別に検索され、該当する行には検索に使われたクエリがラベルとして付与されます。最大 25 件です。 |
topics | array of string | queries が設定されていない検索モード | [] | LinkedIn Learning のトピックのスラッグまたはトピック URL を指定します。例:python または https://www.linkedin.com/learning/topics/python。最大 25 件です。 |
sortBy | string | いいえ | RELEVANCE | RELEVANCE、POPULARITY、RECENCY のいずれかです。 |
difficultyLevel | string | いいえ | ANY | ANY、BEGINNER、INTERMEDIATE、ADVANCED のいずれかです。 |
entityType | string | いいえ | ANY | ANY、COURSE、VIDEO、LEARNING_PATH のいずれかです。 |
duration | string | いいえ | ANY | ANY、BETWEEN_0_TO_10_MIN、BETWEEN_10_TO_30_MIN、BETWEEN_30_TO_60_MIN、BETWEEN_1_TO_2_HOURS、BETWEEN_2_TO_3_HOURS、MORE_THAN_3_HOURS のいずれかです。 |
softwareNames | array of string | いいえ | [] | LinkedIn 独自の名称(Python、Microsoft Excel、SQL、ChatGPT、Claude など)を使って、そのツールを教えるコースだけに絞り込みます。スキーマ上は最大 10 件を指定できますが、LinkedIn が適用するのは受け取った最初のラベルのみです。そのため、1 回の実行につき 1 つのラベルを指定し、追加のラベルごとに別の実行を開始してください。 |
maxItems | integer | いいえ | 50 | クエリごとに返すコース数です。1~1000 を指定できます。LinkedIn が返すのは、クエリとフィルターの組み合わせごとに最大 50 件です。50 件を超える結果が必要な場合は、expandWithFilters を有効にしてください。 |
expandWithFilters | boolean | いいえ | false | 同じクエリを LinkedIn 独自のフィルターの組み合わせで再実行し、重複のないコースを統合します。クエリあたり 50 件の上限を超える唯一の方法です。その分、課金対象の行数は増加します。 |
enrichDetails | boolean | いいえ | false | 検索で見つかった各コースを開き、完全なレコードを返します。詳細情報を取得した行には、検索料金ではなく完全なレコードの料金が適用されます。両方の料金が適用されることはありません。 |
courseUrls | array of string | details モード | コース URL が 1 件事前入力済み。デフォルトは [] | 完全な情報を取得するコース、レッスン、または学習パスの URL を 1 行に 1 つずつ指定します。1 回の実行につき最大 200 件です。 |
maxConcurrency | integer | いいえ | 5 | details モードおよび詳細情報の取得中に、同時に読み込むコースページの数です。1~10 を指定できます。 |
requestTimeoutSecs | integer | いいえ | 40 | 1 つのページを再試行する前に待機する時間です。10~120 秒を指定できます。 |
出力形式
search_result の行:
{
"position": 1,
"title": "Python Essential Training",
"courseUrl": "https://www.linkedin.com/learning/python-essential-training-18764650",
"courseId": "18764650",
"entityType": "COURSE",
"instructors": [{ "name": "Ryan Mitchell" }],
"durationText": "4h 23m",
"durationSeconds": 15780,
"thumbnailUrl": "https://media.licdn.com/dms/image/v2/D560DAQEruxcXLwzu_A/l...",
"viewersText": "646,624 viewers",
"releaseText": "Released Jan 25, 2023",
"resultType": "search_result",
"searchQuery": "python",
"searchType": "query",
"appliedFilters": { "sortBy": "RELEVANCE" },
"approximateTotalResults": 9816,
"fetchedAt": "2026-08-27T18:14:05.123456+00:00"
}
1つのシラバスセクションと1件のレビューに絞り込んだ course_detail の行:
{
"resultType": "course_detail",
"sourceUrl": "https://www.linkedin.com/learning/python-essential-training-18764650",
"courseUrl": "https://www.linkedin.com/learning/python-essential-training-18764650",
"courseId": "18764650",
"title": "Python Essential Training",
"description": "Get a comprehensive overview of the Python programming language.",
"difficultyLevel": "Beginner",
"provider": "LinkedIn Learning",
"language": "en",
"instructors": [
{
"name": "Ryan Mitchell",
"jobTitle": "Principal Software Engineer",
"profileUrl": "https://www.linkedin.com/in/remitchell",
"imageUrl": "https://media.licdn.com/dms/image/v2/C5603AQHi4kzL_mpFUQ/p..."
}
],
"skills": [
{ "name": "Python (Programming Language)", "url": "https://www.linkedin.com/learning/topics/python" }
],
"categoryPath": ["All topics", "Technology", "Software Development", "Programming Languages"],
"dateCreated": "2023-01-25",
"datePublished": "2023-01-25",
"durationText": "PT4H23M9S",
"durationSeconds": 15789,
"enrollmentCount": 646624,
"ratingValue": 4.7,
"ratingCount": 17489,
"reviews": [
{
"rating": 5,
"body": "Clear and well paced.",
"authorName": "Takaaki Iwai",
"authorJobTitle": "Supply Chain Lead",
"authorProfileUrl": "https://jp.linkedin.com/in/example",
"datePublished": "2026-08-21T05:38:27.264Z"
}
],
"tableOfContents": [
{
"section": "Introduction",
"items": [
{
"title": "Getting started with Python",
"durationText": "50s",
"durationSeconds": 50,
"url": "https://www.linkedin.com/learning/python-essential-training-18764650/getting-started-with-python",
"isFree": true,
"description": "Meet the instructor and preview key topics."
}
]
}
],
"lessonCount": 56,
"freeLessonCount": 10,
"hasCertificate": true,
"certificateName": "LinkedIn Learning Certificate of Completion",
"accessModel": "Subscription",
"thumbnailUrl": "https://media.licdn.com/dms/image/v2/D560DAQEruxcXLwzu_A/l...",
"parseSource": "jsonld",
"fetchedAt": "2026-08-27T18:14:05.123456+00:00"
}
主に使用するフィールド:
| フィールド | 型 | 行 | 説明 |
|---|---|---|---|
resultType | string | すべて | search_result、course_detail、lesson、learning_path、no_results または error。 |
title | string | search、detail、lesson、path | 公開されているコース、レッスン、またはラーニングパスのタイトル。 |
courseUrl | string | search、detail、lesson | トラッキングパラメーターを削除した、正規のコースリンク。 |
courseId | string | search、detail、lesson | コースURL末尾の番号から取得した識別子。番号がない場合はURLスラッグを使用します。レッスンの行には、親コースのIDが含まれます。 |
entityType | string | search | COURSE、VIDEO または LEARNING PATH。 |
instructors | array | search、detail、lesson | search行では名前、完全なレコードでは名前、役職、プロフィールリンク、写真。 |
durationText、durationSeconds | string、integer | search、detail、lesson | search行では表示されている長さ、detail行ではISO 8601形式、および合計秒数。 |
viewersText、releaseText | string | search | 検索カードに表示されている視聴者数と公開日。 |
approximateTotalResults | integer | search | LinkedInがクエリに対して報告するコース数。正確な件数ではなく、規模を示す値です。 |
ratingValue、ratingCount | number、integer | detail | 学習者による5点満点の平均評価と、評価した学習者の人数。 |
enrollmentCount | integer | detail | コースを受講した人数。 |
reviews | array | detail | 記述式レビュー:rating、body、authorName、authorJobTitle、authorProfileUrl、datePublished。 |
tableOfContents | array | detail | 各セクションとレッスン。title、description、durationSeconds、url、isFree を含みます。 |
lessonCount、freeLessonCount | integer | detail | コース内のレッスン数と、サブスクリプションなしで視聴できるレッスン数。 |
skills | array | detail | 教授するスキル。それぞれにLinkedIn Learningのトピックページへのリンクが付いています。 |
hasCertificate、certificateName | boolean、string | detail | 修了証が授与されるかどうかと、その名称。 |
pathUrl、courses、courseCount | string、array、integer | learning path | ラーニングパスのリンク、順序付けられた構成コース、およびコース数。 |
httpStatus | integer | error | LinkedInから返されたステータスコード。 |
fetchedAt | string | すべて | 行が取得された日時(UTC)。 |
no_results 行には resultType、searchQuery、message、fetchedAt が含まれます。error 行には resultType、errorType、errorMessage、fetchedAt が含まれ、1つのURLに関する失敗の場合は sourceUrl と httpStatus も含まれます。無効な入力によるエラーには、URLもクエリも含まれません。ラーニングパスの行では、courseUrl の代わりに pathUrl を使用します。
🤖 この Actor について AI アシスタントに質問する
LinkedIn Learning API に関するすぐに送信できるプロンプトを、お好きな AI で開きます。
- 💬 ChatGPT
- 🧠 Claude
- 🔍 Perplexity
- 🅒 Copilot
こんなことも検索されています
LinkedIn または LinkedIn Recruiter のアカウントが危険にさらされることはありますか?
いいえ。誰でもサインアウト状態で開ける公開 LinkedIn ページのみを読み取ります。ログインすることはなく、Cookie を要求することもありません。アカウント、パスワード、li_at セッション Cookie を入力する欄もありません。この Actor の動作が、お客様の LinkedIn アカウント、LinkedIn Learning ライセンス、LinkedIn Recruiter シート、Sales Navigator ライセンスに結び付くことはありません。リクエストはブラウザーではなく Apify のサーバー上で実行されるため、お客様と関連付けられることはなく、実行中も Recruiter で作業を続けられます。
LinkedIn Learning では修了証を取得できますか?
はい。修了証が発行され、すべての完全なコース記録で hasCertificate と certificateName にその情報が表示されます(例:LinkedIn Learning Certificate of Completion)。これは修了証であり、認定資格ではありません。
LinkedIn Learning のコースは無料ですか?
ほとんどのコースではサブスクリプションが必要です(コースページにオファーが掲載されている場合、accessModel は Subscription となり、それ以外の場合は行から省略されます)。ただし、コースでは個々のレッスンを無料プレビューとして公開しています。API は tableOfContents 内で各レッスンに isFree のフラグを付け、freeLessonCount にその合計数を示すため、無料で視聴できる範囲に基づいてコースを並べ替えられます。
LinkedIn Learning のコース一覧を取得するにはどうすればよいですか?
search モードで Actor を実行し、1 つ以上の queries を指定するか、topics を指定します。各行には 1 つのコースが表示され、タイトル、リンク、講師、再生時間、視聴者数が含まれます。LinkedIn では 1 つのクエリにつき最大 50 件に制限されているため、より長い LinkedIn Learning コース一覧を取得するには、クエリを増やすか、expandWithFilters を使います。これを使うと、LinkedIn 独自のフィルターの組み合わせごとにクエリを再実行し、重複しないコースを統合します。公式のコース一覧ダウンロードと公式 API のどちらも、管理者が付与するサイトライセンスまたはパートナープログラムへのアクセスが必要です。ログイン不要で LinkedIn Learning のコースデータを取得タスクでは、アカウントもセッション Cookie も使わずにこの検索を行います。
LinkedIn Learning のすべてのコースに修了証明書がありますか?
多くのコースにありますが、決めつけずに確認してください。enrichDetails を true に設定して検索を実行し、hasCertificate でデータセットを絞り込みます。ラーニングパスと単一レッスンの行には hasCertificate フィールド自体がないため、値を確認する前に resultType が course_detail のものに絞り込んでください。
LinkedIn Learning のラーニングパスとは何ですか?
ラーニングパスとは、1 つのトピックに関する複数のコースを厳選して順番に並べたものです。検索結果では entityType が LEARNING PATH として表示され、entityType: "LEARNING_PATH" を指定すると、パスに検索対象を絞り込めます。details モードで /learning/paths/... の URL を渡すと、pathUrl、courseCount、および順序どおりに並んだコースを含む learning_path の行が返されます。
LinkedIn Learning のラーニングパスとコースの違いは何ですか?
コースは、独自のシラバス、評価、修了証明書を備えた、複数のレッスンからなる 1 つの単位です。パスは、複数のコースを順序づけてまとめるコンテナーです。検索結果では entityType フィールドで区別できます(COURSE と LEARNING PATH)。また、詳細モードでは、コースの URL を指定すると course_detail の行が返され、パスの URL を指定すると、そのパスに含まれるコースを列挙した learning_path の行が返されます。
LinkedIn Learning の無料コースを見つけるにはどうすればよいですか?
details モードまたは enrichDetails を使って完全なレコードを取得し、tableOfContents 内のすべてのレッスンの isFree と、コースの freeLessonCount を確認します。公開タスクのLinkedIn Learning コースの無料プレビュー レッスンを探すでは、3 つのコースを対象にこの処理を行います。
LinkedIn Learning のコースカタログをダウンロードできますか?
LinkedIn が提供するコース一覧のダウンロード機能は、サイトライセンスを購入した場合に利用できる管理者向け機能です。ライセンスがない場合は、この Actor を search モードで実行し、必要なキーワードやトピックページを検索して、expandWithFilters を有効にします。その後、実行の Output タブまたはデータセットのエンドポイントから、データセットを JSON、CSV、Excel 形式でエクスポートできます。LinkedIn は各検索の結果を最大 50 件に制限しているため、幅広いカタログを作成するには、複数のクエリの結果を組み合わせます。
これは公式の LinkedIn Learning API またはレポート API ですか?
どちらでもありません。公式の LinkedIn Learning API と LinkedIn Learning レポート API は、Partner Program 契約またはサイトライセンスを持つ組織向けの LinkedIn 製品です。管理者が OAuth キーを使って利用できるように設定します。レポート API は、誰が何を修了したかなどの学習者のアクティビティを返します。この Actor が読み取るのは公開コースページのみのため、コースのメタデータ、レビュー、シラバスの内容を返しますが、学習者のアクティビティは一切返しません。
この Actor の LinkedIn Learning API ドキュメントはどこにありますか?
入力スキーマではすべてのパラメーターを説明しています。上記の「出力形式」セクションでは、よく使うフィールドについて説明しています。また、2 つのサンプル行では、検索結果と完全なコースレコードの全体的な構造を確認できます。Actor ページの API タブでは、この Python クライアントを使用できない API 統合向けに、curl、Node、Python から実行を開始する REST API 呼び出しを確認できます。
Python から LinkedIn Learning API を使うにはどうすればよいですか?
このリポジトリをクローンし、uv sync を実行して、.env に Apify トークンを設定し、uv run python linkedin-learning-api-example.py を実行します。rows() ヘルパーでは、run_input 辞書を使って Actor を呼び出し、その後、実行のデフォルトのデータセットを反復処理する一連の流れを確認できます。
LinkedIn Learning API を MCP や Claude と一緒に使えますか?
はい。以下のインストール手順では、この Actor を MCP ツールとして Claude Code(無料トライアル)、Claude Cowork Desktop(無料トライアル)、ウェブ版 Claude、Cursor、ChatGPT に追加します。接続すると、エージェントが自分でカタログを検索し、完全なコースレコードを取得できます。
Claude Cowork デスクトップへのインストール

Cowork はデスクトップアプリの自動化モードです。LinkedIn Learning API をツールとして使えるようにするには、Apify MCP サーバーをコネクターとして追加します。
- Claude デスクトップアプリを開き、設定 → コネクターに移動します(または、
claude_desktop_config.jsonを直接編集するには、設定 → 開発者 → 設定を編集に移動します)。- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
- Apify MCP サーバーを追加し、この Actor のみを事前に読み込みます。
{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-learning-api"
]
}
}
}
- アプリを再起動します。Cowork が初めてツールを呼び出すときは、ブラウザーで OAuth プロンプトを完了するか、OAuth を省略するためにコネクターの設定に Apify API トークンを追加します。
- Cowork のチャットでツールが利用可能であることを確認し、LinkedIn Learning API を実行するよう依頼します。
デスクトップアプリをダウンロードして、無料トライアルを開始しましょう:https://claude.ai/referral/uIlpa7nPLg 詳細はこちら:https://docs.apify.com/platform/integrations/claude-desktop
Claude Code へのインストール

Claude Code はコマンドラインツールです。1 つのコマンドで Actor の MCP サーバーを追加します。
claude mcp add --transport http apify \
"https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-learning-api"
ブラウザーでの OAuth の代わりにトークンを使用するには:
claude mcp add --transport http apify \
"https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-learning-api" \
--header "Authorization: Bearer YOUR_APIFY_TOKEN"
次に、claude mcp list で確認するか、セッション内で /mcp を実行します。Claude Code に LinkedIn Learning API を呼び出すよう依頼します。
Claude Code を無料でお試しください:https://claude.ai/referral/uIlpa7nPLg Claude Code の MCP ドキュメント:https://code.claude.com/docs/en/mcp
Claude(ウェブサイト)へのインストール

claude.ai では、Apify をコネクターとして追加し、この Actor のツールだけを有効にします。
- 設定 → コネクター → コネクターを参照に移動し、Apify MCP serverを検索します。インストールします(プロンプトが表示されたら有効化または更新します)。
- 接続時に、Apify API トークンで認証し、ツール
johnvc/linkedin-learning-apiを有効にします。 - 任意のチャットで、+ → コネクターを開き、Apifyをオンにします。
- または、カスタムコネクターを追加を選び、MCP URL 全体
https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-learning-apiを貼り付けます。プロンプトが表示されたら OAuth を使用します。 - Claude に LinkedIn Learning API を実行するよう依頼します。
ウェブで Claude を開く:https://claude.ai
Cursor へのインストール

Cursor は、プロジェクトファイル .cursor/mcp.json から MCP サーバーを読み込みます。
- プロジェクト内に
.cursor/mcp.jsonを作成します。
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-learning-api"
}
}
}
- ブラウザーでの OAuth の代わりにトークン認証を使用する場合は、ヘッダーを追加します。
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-learning-api",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}
- Cursor → 設定 → MCPを開き、apifyサーバーが接続されていること(緑色の点)を確認します。
- Composer またはチャットで、Cursor に LinkedIn Learning API を呼び出すよう依頼します。
Cursor を初めてお使いですか?こちらから入手してください:https://cursor.com/referral?code=XQP4VBLI3NNX
ChatGPT にインストール

ChatGPT は Developer mode を通じて Apify MCP サーバーに接続します(ChatGPT Pro、Plus、Business、Enterprise、Education プランで利用できます)。
- プロフィールアイコンをクリックし、Settings > Apps に移動します。Create app ボタンが表示されない場合は、Advanced settings を開き、Developer mode を有効にします。
- Create app をクリックし、フォームに入力します。
- Name: Apify
- MCP Server URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-learning-api - Authentication: OAuth
- Create をクリックし、Apify との接続を認証します。
- 会話でアプリを使うには、チャットで + をクリックし、Developer mode を選択して、Apify を選びます。
詳細については、https://docs.apify.com/platform/integrations/mcp をご覧ください。
🌐 Alpha OSINT について
このサンプルリポジトリは、金融および業務データソースと API のツールセットである Alpha OSINT の一部です。 関連するツールとユースケースについては、LinkedIn Learning API のソースページをご覧ください。 このアクターに関するサポートやリクエストについては、サポートページから直接チケットを作成してください。
Apify の johnvc が心を込めて作成しました。
最終更新日:2026.10.27
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
