TED Talks Scraper: Speakers, Views, Topics & Transcripts avatar

TED Talks Scraper: Speakers, Views, Topics & Transcripts

Pricing

from $6.96 / 1,000 talks

Go to Apify Store
TED Talks Scraper: Speakers, Views, Topics & Transcripts

TED Talks Scraper: Speakers, Views, Topics & Transcripts

Extract TED talks by topic, speaker or URL: title, speaker and occupation, views, duration, topics, dates, event, languages and transcript. Export JSON, CSV, Excel.

Pricing

from $6.96 / 1,000 talks

Rating

4.5

(2)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

TED Talks Scraper

TED Talks Scraper

Here is one real result, with every field the actor returns:

{
"imageUrl": "https://pi.tedcdn.com/r/talkstar-photos.s3.amazonaws.com/uploads/fad1c1b6-af69-46d8-af12-c17f590718a1/MuthoniDrummerQueen_2019U-embed.jpg",
"title": "Creativity builds nations",
"url": "https://www.ted.com/talks/muthoni_drummer_queen_creativity_builds_nations",
"id": "48857",
"slug": "muthoni_drummer_queen_creativity_builds_nations",
"type": "TED Stage Talk",
"speaker": "Muthoni Drummer Queen",
"speakers": [
{
"name": "Muthoni Drummer Queen",
"occupation": "Musician",
"bio": "Muthoni Drummer Queen's thought-provoking music fuses traditional African drum patterns with modern styles like hip-hop, reggae and blues."
}
],
"description": "In a hopeful talk followed by an empowering performance, musician and TED Fellow Muthoni Drummer Queen shares how indust ... [description trimmed for brevity; the real field returns the full summary]",
"event": "TED2019",
"durationSeconds": 706,
"durationText": "11:46",
"viewCount": 273718,
"recordedDate": "2019-04-15",
"publishedDate": "2019-09-27T16:16:40Z",
"topics": ["performance", "music", "art", "Africa", "... [trimmed; the real field lists every topic]"],
"primaryLanguage": "en",
"languageCount": 20,
"languages": ["English", "Swahili", "Turkish", "Portuguese, Brazilian", "... [trimmed; the real field lists all 20 languages]"],
"transcriptAvailable": true,
"transcript": "Between 2004 and 2008, I unsuccessfully tried to get into the Kenyan music industry. But the recurring answer from produ ... [transcript trimmed for brevity; the real field returns the full transcript]",
"youtubeId": "fwvbx80QidM",
"externalUrl": "https://www.youtube.com/watch?v=fwvbx80QidM",
"observedAt": "2026-08-08T21:12:18.598Z",
"error": null
}

The description, topics, languages and transcript values above are trimmed to keep this example readable; the actor returns the full text and complete arrays. All other values are the exact record from a live run.

The most complete TED Talks scraper available. It returns every field a TED talk page exposes, including view count, duration, all speakers with occupation and bio, recorded and published dates, topics, language availability and the full transcript, and gives you two ways to collect talks: search by topic or speaker, or pass exact talk URLs.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor discovers TED talks by search term (a topic or speaker name), or takes exact talk URLs you provide, and writes one normalized record per talk to the run's dataset. With withDetails on (the default) it opens each talk page to collect the view count, duration, all speakers with occupation and bio, recorded and published dates, event name, topics, the number and list of available languages, and the full transcript. Missing source values are returned as null rather than invented. With details off, only the lightweight search-card fields are returned.

Quickstart

Open the actor, paste this into the input, and press Run. It returns 3 talks about creativity with full details.

{
"searchTerm": "creativity",
"maxTalks": 3,
"withDetails": true
}

Provide searchTerm to discover talks, or talkUrls to scrape specific talks. If both are given, the URLs are used.

Input reference

FieldTypeRequiredDefaultDescription
searchTermstringno(empty)A keyword, topic or speaker name to search TED for, for example leadership, climate change, Brene Brown.
talkUrlsstring[]no(empty)Specific TED talk URLs to scrape, for example https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action. Takes precedence over searchTerm when both are set.
maxTalksintegerno10Maximum number of talks to collect. Range 1 to 1000000.
withDetailsbooleannotrueOpen each talk page for view count, duration, topics, all speakers, dates, language availability and transcript. Off returns only search-card fields.

Provide at least one of searchTerm or talkUrls.

Output reference

One dataset item per talk. Types: string, integer, boolean, object[], string[], or null when the source value is absent.

FieldTypeDescription
imageUrlstringTalk thumbnail image URL.
titlestringTalk title.
urlstringCanonical TED talk URL.
idstringTED talk ID (unique per talk).
slugstringURL slug of the talk.
typestringTalk type, for example TED Stage Talk.
speakerstringPrimary speaker name.
speakersobject[]All speakers, each with name, occupation and bio.
descriptionstringTalk summary.
eventstringEvent the talk was recorded at, for example TED2019.
durationSecondsintegerTalk length in seconds.
durationTextstringTalk length as M:SS or MM:SS.
viewCountintegerTotal views reported by TED.
recordedDatestringDate the talk was recorded (YYYY-MM-DD).
publishedDatestringDate and time the talk was published (ISO 8601).
topicsstring[]Topic tags assigned by TED.
primaryLanguagestringPrimary language code, for example en.
languageCountintegerNumber of languages the talk is available in.
languagesstring[]Names of all available languages.
transcriptAvailablebooleantrue when a transcript was found.
transcriptstringFull transcript text (only with withDetails on), or null.
youtubeIdstringYouTube video ID when the talk is mirrored on YouTube, or null.
externalUrlstringExternal video URL (for example YouTube), or null.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"searchTerm": "creativity", "maxTalks": 3}):

{
"imageUrl": "https://pi.tedcdn.com/r/talkstar-photos.s3.amazonaws.com/uploads/63ab1c06-711f-4a81-9b53-99579f69d908/IsaacMizrahi_2008-embed.jpg",
"title": "Fashion and creativity",
"url": "https://www.ted.com/talks/isaac_mizrahi_fashion_and_creativity",
"id": "396",
"slug": "isaac_mizrahi_fashion_and_creativity",
"type": "TED Stage Talk",
"speaker": "Isaac Mizrahi",
"speakers": [
{
"name": "Isaac Mizrahi",
"occupation": "Fashion designer",
"bio": "Fashion designer Isaac Mizrahi mixes high fashion and the mass market, with a line of haute couture and a line for Target. Plus a talk show, a cabaret act, a movie, a new book ..."
}
],
"event": "TED2008",
"durationSeconds": 836,
"durationText": "13:56",
"viewCount": 1233218,
"recordedDate": "2008-02-02",
"publishedDate": "2008-11-18T01:00:00Z",
"topics": ["business", "creativity", "design", "entertainment", "... [trimmed]"],
"primaryLanguage": "en",
"languageCount": 23,
"transcriptAvailable": true,
"youtubeId": "eSn6GP0UhKM",
"externalUrl": "https://www.youtube.com/watch?v=eSn6GP0UhKM",
"observedAt": "2026-08-08T21:12:18.610Z",
"error": null
}

The long description, languages and transcript fields are present in the full dataset item and are trimmed or omitted here for readability.

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~ted-talks-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchTerm":"creativity","maxTalks":10,"withDetails":true}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~ted-talks-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"talkUrls":["https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action"]}'

Apify CLI:

apify call scrapers_lat/ted-talks-scraper \
--input '{"searchTerm":"leadership","maxTalks":25}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per talk returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxTalks.

FAQ and troubleshooting

A run returned 0 talks. Why? No searchTerm or talkUrls was provided, or the search matched nothing. Provide a topic, speaker name, or exact talk URLs. Zero-result runs are not charged.

Why is transcript null? The transcript is only collected when withDetails is on, and some talks (for example performances) have no transcript. When none exists, the field is null and transcriptAvailable is false.

Can I scrape specific talks by URL? Yes. Pass the talk URLs in talkUrls. When both talkUrls and searchTerm are set, the URLs win.

What does languageCount mean? The number of languages TED offers the talk in. The languages array lists their names.

Is this an official TED tool? No. This actor is independent and has no affiliation with TED. It reads only data that is publicly available on TED.com.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with TED. Accesses only publicly available data on TED.com.