关于 linkedin-learning
linkedin-learning 通过 Apify 为公开的 LinkedIn Learning 课程目录提供 Python 和 MCP 接口。它支持搜索课程并获取含评论和逐课纲信息的详细记录,无需登录凭据。
主要功能
- 01按关键词和条件搜索课程
- 02扩展搜索以突破结果上限
- 03获取课程评论和评分
- 04查看课程大纲及免费预览标记
- 05将目录结果导出为 JSON、CSV 或 Excel
适用场景
- 01构建筛选后的课程目录
- 02比较课程评分和评论
- 03查找可免费预览的课程
MCP 相关
项目通过 MCP 接口连接 Apify Actor,供 MCP 客户端搜索公开的 LinkedIn Learning 目录并获取课程详情。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
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 已向未登录访客公开的页面,并以 JSON 格式返回相同的目录元数据:搜索结果中的课程标题、链接、讲师、时长、观看人数和缩略图,或根据课程 URL 获取包含评价和目录的完整记录。它仅涵盖公开课程目录。LinkedIn 的报告 API 是另一款产品,用于返回已获许可组织的学员活动数据;这里不会读取该 API。费用按行计:每 1,000 条搜索结果 $0.10,每 1,000 条完整课程记录 $0.50。Apify 还会按平台计费事件收费:每次 Actor 启动 $0.00001(每 GB 运行内存计为一个事件,至少一个),每条存储的数据集行 $0.00001。
视频:使用 Apify 构建 MCP 服务
文字演示
LinkedIn Learning API 有两种模式,由 mode 设置。在 search 模式中,你可以传入 queries(最多 25 个关键词)或 topics,并可通过 sortBy、difficultyLevel、entityType、duration 和 softwareNames 进一步筛选。每门课程都会以 search_result 行的形式返回,包含 title、courseUrl、courseId、entityType、instructors、durationText、viewersText、releaseText 和 thumbnailUrl。LinkedIn 每个查询最多返回 50 条结果;如果需要更完整的课程列表,expandWithFilters 会使用 LinkedIn 自有的筛选组合重新运行查询,并合并去重后的课程。在 details 模式中,你可以传入 courseUrls(课程、课程节次或学习路径链接,最多 200 个),并获取包含 ratingValue、ratingCount、enrollmentCount、reviews、含有每节课 isFree 标记的 tableOfContents、skills、instructors、lessonCount、freeLessonCount、hasCertificate 和 certificateName 的 course_detail 行。在搜索时将 enrichDetails 设为 true,会打开每门找到的课程并返回完整记录,按完整记录费率计费一次。已发布的任务提取 LinkedIn Learning 课程评价和评分会针对三个课程 URL 运行 details 模式,并返回书面评价文本,以及每位评价者的姓名、职位和个人资料链接;示例文件中的 run_course_reviews() 会使用 Python 执行相同的 details 模式调用,但仅保留这三个 URL 中的第一个,因此首次运行的费用约为 $0.0005。
快速开始
前提条件: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 对每次搜索最多显示 50 条结果。你可以针对一组关键词或主题页面运行搜索模式,启用 expandWithFilters 突破这一上限,然后将数据集导出为 JSON、CSV 或 Excel。expandWithFilters 会使用 LinkedIn 自带的筛选条件组合重复执行每个查询,并合并不重复的课程;每个查询内的记录按 courseId 去重,课程按各自的 URL 去重,因此通过两个 slug 找到的课程只会返回一次;同一课程若匹配不同的 queries,则会在每个 searchQuery 下各出现一次。这是无需账户即可下载 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 自带的筛选条件组合重新运行查询,这是突破每个查询 50 条结果上限的唯一途径,因此一次运行即可获取超过 50 行的课程列表。 - LinkedIn Learning 学习路径:详情模式每次运行最多接受 200 个课程、课程视频和学习路径 URL,并为每个 URL 返回一条
course_detail、lesson或learning_path记录。 enrichDetails会在一次运行中将搜索结果转换为完整课程记录,并按完整记录费率逐条计费。- LinkedIn Learning 免费课程:
tableOfContents中的freeLessonCount和每节课程的isFree标记会显示无需订阅即可观看的课程内容。 - 在线课程数据集:在一次搜索中运行多个
queries或topics,并将每个查询对应的记录导出为 JSON、CSV 或 Excel;每条记录均带有相应的searchQuery。
数据质量
- 每条评价都包含
body、rating、authorName、authorJobTitle、authorProfileUrl和datePublished。 tableOfContents中的每节课都有自己的description、durationSeconds、url和isFree标记。courseUrl是去除跟踪参数后的规范链接;在每个查询内(以及每次详情运行内),行会按courseId去重,课程则按各自的 URL 去重,因此通过两个 slug 找到的课程只会返回一次;匹配两个不同queries的课程会在各自的searchQuery下各出现一次。- 会推送
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 页面上的 Task,并设置为每周运行。将 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 时,搜索设置才适用;mode 为 details 时,courseUrls 才适用。在搜索模式下,queries 和 topics 至少有一个非空。
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
mode | string | 是 | search | 使用 search 按关键词和筛选条件查找课程,或使用 details 获取已有课程 URL 的完整记录。 |
queries | array of string | 搜索模式下必填,除非设置了 topics | 预填 ["python"] | 要搜索的关键词,每行一个。每个查询都会单独搜索,搜索结果行会标注找到该结果的查询。最多 25 个。 |
topics | array of string | 搜索模式下必填,除非设置了 queries | [] | LinkedIn Learning 主题 slug 或主题 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 只会应用收到的第一个标签,因此每次运行传入一个标签;要使用其他标签,请另行运行。 |
maxItems | integer | 否 | 50 | 每个查询返回的课程数,范围为 1 至 1000。LinkedIn 每个查询和筛选条件组合最多返回 50 个结果,因此只有启用 expandWithFilters 时才应请求更多结果。 |
expandWithFilters | boolean | 否 | false | 使用 LinkedIn 自己的筛选条件组合再次运行相同查询,并合并去重后的课程。这是突破每个查询最多 50 个结果限制的唯一方式;会返回更多计费行。 |
enrichDetails | boolean | 否 | false | 打开搜索到的每门课程,并返回其完整记录。丰富后的结果行按完整记录费率计费,而非搜索费率,绝不会重复计费。 |
courseUrls | array of string | details 模式 | 预填一个课程 URL,默认值为 [] | 要完整收集的课程、课程单元或学习路径 URL,每行一个。每次运行最多 200 个。 |
maxConcurrency | integer | 否 | 5 | 同时读取的课程页面数,范围为 1 至 10;适用于 details 模式和丰富处理期间。 |
requestTimeoutSecs | integer | 否 | 40 | 单个页面重试前的等待时间,范围为 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"
}
一行 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 | 搜索、详情、课程 | 按发布时的名称显示的课程、课程章节或学习路径标题。 |
courseUrl | string | 搜索、详情、课程 | 移除跟踪参数后的规范课程链接。 |
courseId | string | 搜索、详情、课程 | 从课程 URL 末尾的数字中提取的标识符;如果课程没有数字,则使用 URL slug;课程章节行使用其所属课程的 ID。 |
entityType | string | 搜索 | COURSE、VIDEO 或 LEARNING PATH。 |
instructors | array | 搜索、详情、课程 | 搜索行中的姓名;完整记录中的姓名、职位、个人资料链接和照片。 |
durationText、durationSeconds | string、integer | 搜索、详情、课程 | 搜索行中显示的时长;详情行中为 ISO 8601 格式,以及总秒数。 |
viewersText、releaseText | string | 搜索 | 搜索卡片上显示的观看人数和发布日期。 |
approximateTotalResults | integer | 搜索 | LinkedIn 针对该查询报告的课程数量。用于衡量规模,并非精确计数。 |
ratingValue、ratingCount | number、integer | 详情 | 学员评分平均值(满分 5 分)及评分学员人数。 |
enrollmentCount | integer | 详情 | 学习过该课程的人数。 |
reviews | array | 详情 | 书面评价:rating、body、authorName、authorJobTitle、authorProfileUrl、datePublished。 |
tableOfContents | array | 详情 | 每个章节和课程章节,包含 title、description、durationSeconds、url 和 isFree。 |
lessonCount、freeLessonCount | integer | 详情 | 课程章节总数,以及无需订阅即可观看的章节数。 |
skills | array | 详情 | 所教授的技能,每项都链接到对应的 LinkedIn Learning 主题页面。 |
hasCertificate、certificateName | boolean、string | 详情 | 是否颁发结业证书,以及证书名称。 |
pathUrl、courses、courseCount | string、array、integer | 学习路径 | 路径链接、按顺序排列的所属课程,以及课程数量。 |
httpStatus | integer | 错误 | LinkedIn 返回的状态码(如果有)。 |
fetchedAt | string | 全部 | 收集该行的时间,使用 UTC。 |
no_results 行包含 resultType、searchQuery、message 和 fetchedAt;error 行包含 resultType、errorType、errorMessage、fetchedAt,以及在故障涉及某个 URL 时提供的 sourceUrl 和 httpStatus。无效输入错误不包含 URL 或查询。学习路径行使用 pathUrl 代替 courseUrl。
🤖 向 AI 助手咨询此 Actor
在你选择的 AI 中打开一条关于 LinkedIn Learning API 的现成提示词:
- 💬 ChatGPT
- 🧠 Claude
- 🔍 Perplexity
- 🅒 Copilot
人们也会搜索
这会让我的 LinkedIn 或 LinkedIn Recruiter 账户面临风险吗?
不会。它只读取公开的 LinkedIn 页面,也就是任何人退出登录后都能打开的页面。它绝不会登录,也不会索要你的 Cookie:没有账户、密码或 li_at 会话 Cookie 的输入项。它所做的一切都与你的 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,并提供一个或多个 queries,或者指定 topics。每行代表一门课程,包含标题、链接、讲师、时长和观看人数。LinkedIn 对单个查询最多返回 50 条结果,因此要获取更长的 LinkedIn Learning 课程列表,可以增加查询数量,或使用 expandWithFilters,让 Actor 根据 LinkedIn 自带的筛选条件组合重新运行查询并合并不重复的课程。下载官方课程列表和使用官方 API 都需要站点许可证或 Partner Program 访问权限,并由管理员开通。任务 无需登录获取 LinkedIn Learning 课程数据 就是无需账户和会话 Cookie 的这种搜索方式。
所有 LinkedIn Learning 课程都有证书吗?
大多数有,但请先确认,不要想当然:将 enrichDetails 设为 true 后运行搜索,并按 hasCertificate 筛选数据集。学习路径和单节课程行都不包含 hasCertificate 字段,因此读取该字段前,请先将 resultType 筛选为 course_detail。
LinkedIn Learning 中的学习路径是什么?
学习路径是围绕一个主题精选的一系列课程。在搜索结果中,它会显示为 entityType LEARNING PATH;你可以用 entityType: "LEARNING_PATH" 将搜索范围限制为学习路径。在 details 模式下传入 /learning/paths/... URL,即可获得一条 learning_path 记录,其中包含 pathUrl、courseCount 和按顺序排列的 courses。
LinkedIn Learning 学习路径和课程有什么区别?
课程是一个包含多节课的单元,有自己的教学大纲、评分和证书。学习路径则是按顺序排列多门课程的容器。搜索结果中的 entityType 字段可用于区分二者(COURSE 和 LEARNING PATH);在详情模式下,课程 URL 会返回一条 course_detail 记录,而学习路径 URL 会返回一条 learning_path 记录,其中列出该路径包含的课程。
如何查找 LinkedIn Learning 上的免费课程?
使用 details 模式或 enrichDetails 获取完整记录,然后读取 tableOfContents 中每节课的 isFree,以及课程的 freeLessonCount。已发布的任务 查找 LinkedIn Learning 课程中的免费预览课程 会为三门课程执行此操作。
可以下载 LinkedIn Learning 课程目录吗?
LinkedIn 自带的课程列表下载功能是购买了站点许可证的组织才能使用的管理功能。若没有许可证,可在 search 模式下针对所需关键词或主题页面运行此 Actor,启用 expandWithFilters,然后从运行结果的 Output 标签页导出数据集为 JSON、CSV 或 Excel,也可以通过数据集端点导出。由于 LinkedIn 将每次查询的结果上限设为 50 条,因此需要汇总多次查询的结果,才能构建较完整的目录。
这是 LinkedIn Learning 官方 API 还是 Reporting API?
两者都不是。LinkedIn Learning 官方 API 和 LinkedIn Learning Reporting API 是 LinkedIn 面向签有合作伙伴计划协议或拥有站点许可证的组织提供的产品,由管理员使用 OAuth 密钥进行配置;Reporting API 返回的是学习者活动,例如谁完成了什么课程。此 Actor 只读取公开的课程页面,因此会返回课程元数据、评论和教学大纲内容,不会返回任何学习者活动。
在哪里可以找到此 Actor 的 LinkedIn Learning API 文档?
input schema 记录了所有参数,上方的 Output Format 部分介绍了最常用的字段,两条示例记录展示了搜索结果和完整课程记录的完整结构。Actor 页面上的 API 标签页展示了如何通过 curl、Node 或 Python 调用 REST API 来启动运行,适用于无法使用此 Python 客户端的 API 集成。
如何通过 Python 使用 LinkedIn Learning API?
克隆此仓库,运行 uv sync,将 Apify 令牌填入 .env,然后运行 uv run python linkedin-learning-api-example.py。rows() 辅助函数展示了完整流程:使用 run_input 字典调用 Actor,然后遍历运行默认的数据集。
可以通过 MCP 或 Claude 使用 LinkedIn Learning API 吗?
可以。下方的安装部分会将 Actor 添加为 MCP 工具,可用于 Claude Code(免费试用)、Claude Cowork Desktop(免费试用)、网页版 Claude、Cursor 和 ChatGPT。连接后,Agent 可以自行搜索目录并获取完整的课程记录。
在 Claude Cowork Desktop 中安装

Cowork 是桌面应用的自动化模式。要将 LinkedIn Learning API 作为工具提供给它,请将 Apify MCP 服务添加为连接器。
- 打开 Claude 桌面应用,然后前往 Settings → Connectors(或前往 Settings → Developer → Edit Config,直接编辑
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 提示,或在连接器设置中添加 Apify API 令牌以跳过 OAuth。
- 在 Cowork 聊天中确认该工具可用,然后让它运行 LinkedIn Learning API。
下载桌面应用并开始免费试用:https://claude.ai/referral/uIlpa7nPLg 更多帮助:https://docs.apify.com/platform/integrations/claude-desktop
在 Claude Code 中安装

Claude Code 是命令行工具。使用一条命令添加 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 的工具。
- 前往 Settings → Connectors → Browse connectors,搜索 Apify MCP server。安装它(如果出现提示,请启用或更新)。
- 连接时,使用 Apify API 令牌进行身份验证,并启用工具
johnvc/linkedin-learning-api。 - 在任意聊天中,打开 + → Connectors 并启用 Apify。
- 或者,选择 Add custom connector 并粘贴完整的 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 → Settings → MCP,确认 apify 服务已连接(绿点)。
- 在 Composer 或 Chat 中,让 Cursor 调用 LinkedIn Learning API。
刚开始使用 Cursor?在这里获取:https://cursor.com/referral?code=XQP4VBLI3NNX
在 ChatGPT 中安装

ChatGPT 通过开发者模式连接到 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
此示例仓库是 Alpha OSINT 的一部分。Alpha OSINT 是一套金融和运营数据源及 API 工具集。 如需了解相关工具和使用场景,请参阅 LinkedIn Learning API source page。 如需获得支持或对此 actor 提出请求,请直接在我们的支持页面 提交工单。
由 Apify 上的 johnvc 用心打造。
最后更新:2026.10.27
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
