LinkedIn post video transcript
Beta GET /v1/linkedin/post/transcript
GET /v1/linkedin/post/transcript
The transcript of a post's video when LinkedIn shows one publicly; otherwise AI transcription of the video's audio.
- Cost: 1 credit for captions; AI transcription 1 up to 2 minutes, then 1 per started minute
- Status: Beta. Built and tested against recorded responses; the shape may still gain fields.
- Cache: Results are kept up to 30 days; send
max_age_daysto reuse them for free. - Timeout: A request still running after about 25 seconds answers
202with a job to poll (Batch and jobs).
Parameters#
| Name | Type | Required | Description |
|---|---|---|---|
url | URL | yes | Post URL (linkedin.com/posts/...). Accepted hosts: linkedin.com. |
Every request also accepts:
trim:truefor a smaller response withoutnullfields andextra.raw:trueto also get the platform's original object asraw.max_age_days: accept a cached result up to this many days old, for 0 credits (Caching).
Example request#
Set your key in the environment first (see Authentication).
curl
curl -G "https://api.socialscrape.io/v1/linkedin/post/transcript" \
-H "x-api-key: $SOCIALSCRAPE_API_KEY" \
--data-urlencode "url=https://www.linkedin.com/feed/update/urn:li:activity:7520503284458147840"Python
import os
import requests
params = {
"url": "https://www.linkedin.com/feed/update/urn:li:activity:7520503284458147840",
}
res = requests.get(
"https://api.socialscrape.io/v1/linkedin/post/transcript",
headers={"x-api-key": os.environ["SOCIALSCRAPE_API_KEY"]},
params=params,
)
body = res.json()
if body["ok"]:
print(body["data"])
else:
print(body["error"]["code"], body["error"]["message"])TypeScript
const url = new URL("https://api.socialscrape.io/v1/linkedin/post/transcript");
url.search = new URLSearchParams({
"url": "https://www.linkedin.com/feed/update/urn:li:activity:7520503284458147840"
}).toString();
const res = await fetch(url, {
headers: { "x-api-key": process.env.SOCIALSCRAPE_API_KEY! },
});
const body = await res.json();
if (body.ok) {
console.log(body.data);
} else {
console.error(body.error.code, body.error.message);
}n8n
{
"nodes": [
{
"name": "SocialScrape LinkedIn post video transcript",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
0,
0
],
"parameters": {
"method": "GET",
"url": "https://api.socialscrape.io/v1/linkedin/post/transcript",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "url",
"value": "https://www.linkedin.com/feed/update/urn:li:activity:7520503284458147840"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "x-api-key",
"value": "={{ $env.SOCIALSCRAPE_API_KEY }}"
}
]
}
}
}
],
"connections": {}
}Example response#
This is a sample from a recorded response, lists and long text are shortened. Status 200.
{
"ok": true,
"credits_charged": 1,
"credits_remaining": 4999,
"cached": false,
"cached_at": null,
"request_id": "req_6910d396e73caad5b83c65d1",
"data": {
"object": "transcript",
"platform": "linkedin",
"video_id": "7520503284458147840",
"url": "https://www.linkedin.com/posts/microsoft_activity-7520503284458147840-j1lE",
"language": "en",
"source": "auto_captions",
"duration_seconds": 112.0,
"text": "Everywhere I go I don't find people saying oh can you please make an AI model more powerful? They ask what can it do for me? What can it do for my company, for my family, for our health care, for medical discovery, for fighting wildfires an...",
"segments": [
{
"start": 0.13,
"end": 3.158,
"text": "Everywhere I go I don't find people saying oh can you"
},
{
"start": 3.158,
"end": 6.02,
"text": "please make an AI model more powerful?"
},
{
"start": 6.02,
"end": 9.886,
"text": "They ask what can it do for me? What can it do for my"
}
],
"available_languages": null,
"extra": {
"captions_format": "srt"
}
},
"cursor": null,
"has_more": null
}Response#
A Transcript object in data.
See Data models for every field. The envelope around data is described in Responses.
Errors#
Failures are free: credits_charged is 0. Branch on error.code, never on the message.
| Code | HTTP | Retry | Meaning |
|---|---|---|---|
invalid_params | 400 | no | A parameter is missing, unknown or has the wrong type. |
unsupported_url | 400 | no | The URL is not one this endpoint accepts (wrong platform or form). |
not_found | 404 | no | The platform says this profile, post or item does not exist. |
transcript_unavailable | 404 | no | No captions exist and AI transcription is not possible for this media. |
Every request can also fail with the account and platform errors listed on the Errors page.
Example error:
{
"ok": false,
"error": {
"code": "transcript_unavailable",
"message": "No captions exist and AI transcription is not possible for this media.",
"retryable": false
},
"credits_charged": 0,
"request_id": "req_d2a55d772fe10ed2ee0dc2a2"
}Related endpoints#
- LinkedIn Ad Library search (
GET /v1/linkedin/ad-library/search) - LinkedIn Ad Library ad details (
GET /v1/linkedin/ad-library/ad) - LinkedIn public person profile (
GET /v1/linkedin/profile) - LinkedIn company page (
GET /v1/linkedin/company) - LinkedIn company posts (
GET /v1/linkedin/company/posts) - LinkedIn public post (
GET /v1/linkedin/post)