TikTok & YouTube Transcript Extractor Scraper avatar
TikTok & YouTube Transcript Extractor Scraper

Pricing

$10.00/month + usage

Go to Store
TikTok & YouTube Transcript Extractor Scraper

TikTok & YouTube Transcript Extractor Scraper

Developed by

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Extract transcripts and metadata from both TikTok and YouTube videos in WebVTT format. Supports multiple URLs, language selection, proxy configuration, and advanced output for accessibility, analysis, or repurposing.

0.0 (0)

Pricing

$10.00/month + usage

7

Total users

205

Monthly users

47

Runs succeeded

>99%

Last modified

2 days ago

The TikTok & YouTube Transcript Extractor Scraper is a tool designed to automate the extraction of captions and transcripts from TikTok and YouTube videos in WebVTT format. This scraper provides an easy way to retrieve video subtitles for accessibility, analysis, or repurposing.


Features

  • Extract Transcripts from TikTok & YouTube: Automatically retrieve captions in WebVTT format from TikTok and YouTube videos.
  • Start with Specific URLs: Input TikTok or YouTube video URLs to fetch transcripts from desired videos.
  • Customizable Concurrency: Optimize the scraping speed with configurable concurrency settings.
  • Retry Mechanism: Ensure data accuracy with automatic retries for failed requests.
  • Proxy Support: Use proxies for anonymity and uninterrupted operations.
  • YouTube Language Selection: Choose the transcript language for YouTube videos.
  • Include YouTube Video Details: Optionally include extra metadata for YouTube videos.

Input Configuration

Below is the structure of the input configuration for the scraper:

1. Start URLs

  • Title: Start URLs
  • Type: Array
  • Description: Specify the TikTok or YouTube video URLs to scrape the transcript.
  • Editor: requestListSources
  • Example:
    { "url": "https://www.tiktok.com/@stoolpresidente/video/7451747413649263915" },
    { "url": "https://www.youtube.com/watch?v=aAkMkVFwAoo" }

2. Max Concurrency

  • Title: Max Concurrency
  • Type: Integer
  • Description: Maximum number of pages that can be processed simultaneously.
  • Default: 10

3. Min Concurrency

  • Title: Min Concurrency
  • Type: Integer
  • Description: Minimum number of pages that will be processed simultaneously.
  • Default: 1

4. Max Request Retries

  • Title: Max Request Retries
  • Type: Integer
  • Description: Number of retries for a failed request before the scraper gives up.
  • Default: 100

5. Include YouTube Video Details

  • includeYoutubeVideosDetails: Boolean
  • Description: If true, includes extra metadata for YouTube videos.

6. YouTube Transcript Language

  • youtubeTranscriptLanguage: String
  • Description: Language code for YouTube transcript extraction (e.g., "en").

7. Proxy Configuration

  • proxy: Object
  • Description: Configure proxy servers for secure and anonymous scraping.
  • Default:
    {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
    }
  • apifyProxyCountry: String
  • Description: Custom proxy configuration with proxyUrls array.
  • Details: For more information on proxy configuration, refer to Apify Proxy Configuration.

Example Input

{
"startUrls": [
{ "url": "https://www.tiktok.com/@stoolpresidente/video/7451747413649263915" },
{ "url": "https://www.youtube.com/watch?v=aAkMkVFwAoo" }
],
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 100,
"maxItems": 20,
"includeYoutubeVideosDetails": true,
"youtubeTranscriptLanguage": "en",
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Output

The scraper produces an output containing the transcript in WebVTT format. Here’s an example:

Output TikTok sample

{
"transcript": "WEBVTT\n\n\n00:00:00.260 --> 00:00:01.500\nWatch out for the snow storm,\n\n00:00:01.501 --> 00:00:02.621\npresident. Oh,\n\n00:00:02.622 --> 00:00:04.061\nhe said watch out for. No,\n\n00:00:04.062 --> 00:00:05.541\nI didn't know what the hell you were talking about.\n\n..."
}
  • transcript: Contains the WebVTT format captions from the TikTok video.

Transcript Format (WebVTT)

The captions are structured in WebVTT format with time codes and text:

WEBVTT
00:00:00.260 --> 00:00:01.500
Watch out for the snow storm,
00:00:01.501 --> 00:00:02.621
president. Oh,

Output Youtube sample

{
"transcript": [
{
"text": "(light cheerful music)",
"startMs": "3760",
"endMs": "7010",
"startTimeText": "0:03"
},
{
"text": "♪ I don't want a lot for Christmas ♪",
"startMs": "10482",
"endMs": "15482",
"startTimeText": "0:10"
},
{
"text": "♪ There is just one thing I need ♪",
"startMs": "16724",
"endMs": "21100",
"startTimeText": "0:16"
},
{
"text": "♪ I don't care about the presents ♪",
"startMs": "21100",
"endMs": "24788",
"startTimeText": "0:21"
},
{
"text": "♪ Underneath the Christmas tree ♪",
"startMs": "24788",
"endMs": "28210",
"startTimeText": "0:24"
},
{
"text": "♪ I just want you for my own ♪",
"startMs": "28210",
"endMs": "32479",
"startTimeText": "0:28"
},
...
],
"transcript_only_text": "(light cheerful music) ♪ I don't want a lot for Christmas ♪ ♪ There is just one thing I need ♪ ♪ I don't care about the presents ♪ ♪ Underneath the Christmas tree ♪ ♪ I just want you for my own ♪ ♪ More than you could ever know ♪ ♪ Make my wish come true ♪ ♪ All I want for Christmas is you ♪ ♪ Yeah ♪ ♪ I don't want a lot for Christmas ♪ ♪ There is just one thing I need ♪ ♪ And I don't care about the presents ♪ ♪ Underneath the Christmas tree ♪ ♪ I don't need to hang my stocking\nthere upon the fireplace ♪ ♪ Santa Claus won't make me happy ♪ ♪ With a toy on Christmas Day ♪ ♪ I just want you for my own ♪ ♪ More than you could ever know ♪ ♪ Make my wish come true ♪ ♪ All I want for Christmas is you ♪ ♪ You, baby ♪ ♪ Oh, I won't ask for\nmuch this Christmas ♪ ♪ I won't even wish for snow ♪ ♪ And I, I'm just gonna keep on waiting ♪ ♪ Underneath the mistletoe ♪ ♪ I won't make a list and send it ♪ ♪ To the North Pole for Saint Nick ♪ ♪ I won't even stay awake to\nhear those magic reindeer click ♪ ♪ 'Cause I just want you here tonight ♪ ♪ Holding on to me so tight ♪ ♪ What more can I do ♪ ♪ Oh, baby, all I want\nfor Christmas is you ♪ ♪ You, baby ♪ ♪ Oh oh, all the lights are\nshining so brightly everywhere ♪ ♪ So brightly, baby ♪ ♪ And the sound of children's\nlaughter fills the air ♪ ♪ And everyone is singing ♪ ♪ I hear those sleigh bells ringing ♪ ♪ Santa, won't you bring\nme the one I really need ♪ ♪ Won't you please bring my baby to me ♪ ♪ Oh, I don't want a lot for Christmas ♪ ♪ This is all I'm asking for ♪ ♪ I just wanna see my baby\nstanding right outside my door ♪ ♪ Oh, I just want you for my own ♪ ♪ More than you could ever know ♪ ♪ Make my wish come true ♪ ♪ Oh, baby, all I want\nfor Christmas is you ♪ ♪ You, baby ♪ ♪ All I want for Christmas is you, baby ♪ ♪ All I want for Christmas is you, baby ♪ ♪ All I want for Christmas is you, baby ♪ ♪ All I want for Christmas is you, baby ♪ ♪ All I want for Christmas is you, baby ♪",
"videoId": "aAkMkVFwAoo",
"title": "Mariah Carey - All I Want for Christmas Is You (Make My Wish Come True Edition)",
"lengthSeconds": "243",
"keywords": [
"all want for christmas is you",
"christmas songs",
"mariah carey all want for christmas",
"all want for christmas",
"merry christmas",
"mariah carey christmas",
"mariah carey",
"christmas",
"christmas song",
"last christmas",
"christmas music",
"always be my baby",
"Mariah carey hero",
"oh santa",
"holy night",
"we belong together",
"Jennifer Lopez",
"beyonce",
"Whitney Houston",
"pop music",
"90s pop",
"2000s pop",
"tiktok",
"tiktok trend",
"Holiday",
"Pop"
],
"channelId": "UClS0wn3LPs9jdX_yt2g1k8w",
"isOwnerViewing": false,
"shortDescription": "\"All I Want For Christmas Is You\" by Mariah Carey (Make My Wish Come True Edition)\nListen to Mariah Carey: https://MariahCarey.lnk.to/listenYD \nSubscribe to the official Mariah Carey YouTube channel: https://MariahCarey.lnk.to/subscribe_YD\n \nWatch more Mariah Carey videos: https://MariahCarey.lnk.to/listen_YC/youtube\n \nFollow Mariah Carey\nFacebook: https://MariahCarey.lnk.to/followFI\nInstagram: https://MariahCarey.lnk.to/followII\nTwitter: https://MariahCarey.lnk.to/followTI\nWebsite: https://MariahCarey.lnk.to/followWI\nYouTube: https://MariahCarey.lnk.to/subscribeYD\nSpotify: https://MariahCarey.lnk.to/followSI\n \nLyrics: \nI just want you for my own (Ooh)\nMore than you could ever know (Ooh)\nMake my wish come true\nAll I want for Christmas is you\nYou, baby\n \n#MariahCarey #AllIWantForChristmasIsYou #MakeMyWishComeTrue",
"isCrawlable": true,
"thumbnail": {
"thumbnails": [
{
"url": "https://i.ytimg.com/vi/aAkMkVFwAoo/hqdefault.jpg?sqp=-oaymwEmCKgBEF5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLBVNtG-3snews4SkuVgHePgFV50bA",
"width": 168,
"height": 94
},
{
"url": "https://i.ytimg.com/vi/aAkMkVFwAoo/hqdefault.jpg?sqp=-oaymwEmCMQBEG5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLCRGI_2lb-QxPufhBHOrgB6n2zOYw",
"width": 196,
"height": 110
},
{
"url": "https://i.ytimg.com/vi/aAkMkVFwAoo/hqdefault.jpg?sqp=-oaymwEnCPYBEIoBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLB97lSkpMJKiz4s8WQTKJIEkd8tdw",
"width": 246,
"height": 138
},
{
"url": "https://i.ytimg.com/vi/aAkMkVFwAoo/hqdefault.jpg?sqp=-oaymwEnCNACELwBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLBFav8lBGECh5aDt2erS3N_siXOTQ",
"width": 336,
"height": 188
},
{
"url": "https://i.ytimg.com/vi/aAkMkVFwAoo/maxresdefault.jpg?v=5dfa53d4",
"width": 1920,
"height": 1080
}
]
},
"allowRatings": true,
"viewCount": "739849592",
"author": "MariahCareyVEVO",
"isLowLatencyLiveStream": false,
"isPrivate": false,
"isUnpluggedCorpus": false,
"latencyClass": "MDE_STREAM_OPTIMIZATIONS_RENDERER_LATENCY_NORMAL",
"isLiveContent": false,
"microformat": {
"playerMicroformatRenderer": {
"thumbnail": {
"thumbnails": [
{
"url": "https://i.ytimg.com/vi/aAkMkVFwAoo/maxresdefault.jpg",
"width": 1280,
"height": 720
}
]
},
"embed": {
"iframeUrl": "https://www.youtube.com/embed/aAkMkVFwAoo?start=985",
"width": 1280,
"height": 720
},
"title": {
"simpleText": "Mariah Carey - All I Want for Christmas Is You (Make My Wish Come True Edition)"
},
"description": {
"simpleText": "\"All I Want For Christmas Is You\" by Mariah Carey (Make My Wish Come True Edition)\nListen to Mariah Carey: https://MariahCarey.lnk.to/listenYD \nSubscribe to the official Mariah Carey YouTube channel: https://MariahCarey.lnk.to/subscribe_YD\n \nWatch more Mariah Carey videos: https://MariahCarey.lnk.to/listen_YC/youtube\n \nFollow Mariah Carey\nFacebook: https://MariahCarey.lnk.to/followFI\nInstagram: https://MariahCarey.lnk.to/followII\nTwitter: https://MariahCarey.lnk.to/followTI\nWebsite: https://MariahCarey.lnk.to/followWI\nYouTube: https://MariahCarey.lnk.to/subscribeYD\nSpotify: https://MariahCarey.lnk.to/followSI\n \nLyrics: \nI just want you for my own (Ooh)\nMore than you could ever know (Ooh)\nMake my wish come true\nAll I want for Christmas is you\nYou, baby\n \n#MariahCarey #AllIWantForChristmasIsYou #MakeMyWishComeTrue"
},
"lengthSeconds": "243",
"ownerProfileUrl": "http://www.youtube.com/@MariahCareyVEVO",
"externalChannelId": "UClS0wn3LPs9jdX_yt2g1k8w",
"isFamilySafe": true,
"isUnlisted": false,
"hasYpcMetadata": false,
"viewCount": "739849592",
"category": "Music",
"publishDate": "2019-12-19T21:00:11-08:00",
"ownerChannelName": "MariahCareyVEVO",
"liveBroadcastDetails": {
"isLiveNow": false,
"startTimestamp": "2019-12-20T05:00:11+00:00",
"endTimestamp": "2019-12-20T05:06:09+00:00"
},
"uploadDate": "2019-12-19T21:00:11-08:00",
"isShortsEligible": false,
"externalVideoId": "aAkMkVFwAoo",
"likeCount": "6483757",
"canonicalUrl": "https://www.youtube.com/watch?v=aAkMkVFwAoo"
}
},
"captions": {
"playerCaptionsTracklistRenderer": {
"captionTracks": [
{
"baseUrl": "https://www.youtube.com/api/timedtext?v=aAkMkVFwAoo&ei=f681aKTUNaH31sQP8a-4YQ&opi=112496729&xoaf=5&hl=hr&ip=0.0.0.0&ipbits=0&expire=1748373999&sparams=ip,ipbits,expire,v,ei,opi,xoaf&signature=6D4061B1E750F9D72358BC2212EBFF26AA7423D7.A12F4FD68C7DCADDC114730E6F19F75884B0A787&key=yt8&lang=en&name=en",
"name": {
"simpleText": "Engleski - en"
},
"vssId": ".en.nP7-2PuUl7o",
"languageCode": "en",
"isTranslatable": true,
"trackName": "en"
}
],
"audioTracks": [
{
"captionTrackIndices": [
0
]
}
],
"defaultAudioTrackIndex": 0
}
}
}

Output Field Explanations (YouTube)

The YouTube transcript extractor provides detailed information about the video along with its transcript in a structured format. Here's a breakdown of the output fields:

Transcript Data

  • transcript: Array of objects containing the timed transcript segments
    • text: The actual text of the transcript segment
    • startMs: Start time of the segment in milliseconds
    • endMs: End time of the segment in milliseconds
    • startTimeText: Formatted start time (e.g., "0:03")
  • transcript_only_text: Complete transcript text as a single string, concatenating all segments

Video Metadata

  • videoId: YouTube's unique 11-character video identifier
  • title: Full title of the video
  • lengthSeconds: Total duration of the video in seconds
  • keywords: Array of SEO keywords/tags associated with the video
  • channelId: YouTube's unique identifier for the channel
  • isOwnerViewing: Boolean indicating if the video owner is viewing (typically false)
  • shortDescription: Full video description including links and metadata
  • isCrawlable: Boolean indicating if search engines can index this video
  • allowRatings: Boolean indicating if the video allows likes/dislikes
  • viewCount: Total number of video views (as a string)
  • author: Display name of the channel that uploaded the video
  • isLiveContent: Boolean indicating if this is a live stream

Thumbnails

  • thumbnail: Contains different resolution thumbnails
    • thumbnails: Array of thumbnail objects with different sizes
      • url: Image URL
      • width: Image width in pixels
      • height: Image height in pixels

Microformat Data

  • microformat: Detailed metadata in YouTube's microformat
    • playerMicroformatRenderer: Contains structured data about the video
      • publishDate: When the video was published (ISO 8601 format)
      • uploadDate: When the video was uploaded (ISO 8601 format)
      • viewCount: Number of views (redundant with root viewCount)
      • likeCount: Number of likes (if available)
      • category: Video category (e.g., "Music")
      • isFamilySafe: Boolean indicating if the content is family-friendly

Captions Information

  • captions: Details about available caption tracks
    • playerCaptionsTracklistRenderer: Contains caption track information
      • captionTracks: Array of available caption tracks
        • languageCode: BCP-47 language code (e.g., "en")
        • name: Display name of the language
        • isTranslatable: Boolean indicating if machine translation is available
      • audioTracks: Information about audio tracks and their associated captions
  • author: Name of the channel or content creator.
  • isPrivate: Boolean indicating if the video is set to private.
  • isUnpluggedCorpus: Boolean related to YouTube's content classification (usually false).
  • isLiveContent: Boolean indicating if the video is or was a live stream.
  • microformat: Object containing additional metadata about the video.
    • playerMicroformatRenderer: Contains details such as:
      • thumbnail: Main thumbnail image.
      • embed: Embed information (iframe URL, width, height).
      • title: Video title.
      • description: Video description.
      • lengthSeconds: Video duration in seconds.
      • ownerProfileUrl: URL to the channel's profile.
      • externalChannelId: Channel ID.
      • isFamilySafe: Boolean indicating if the video is family-friendly.
      • availableCountries: Array of country codes where the video is available.
      • isUnlisted: Boolean indicating if the video is unlisted.
      • hasYpcMetadata: Boolean for YouTube Premium content.
      • viewCount: Video view count.
      • category: Video category (e.g., "People & Blogs").
      • publishDate: Date and time when the video was published.
      • ownerChannelName: Name of the channel owner.
      • uploadDate: Date and time when the video was uploaded.
      • isShortsEligible: Boolean indicating if the video is eligible for YouTube Shorts.
      • externalVideoId: Video ID.
      • likeCount: Number of likes.
  • captions: Object containing information about available captions and translation languages.
    • playerCaptionsTracklistRenderer: Contains:
      • captionTracks: Array of available caption tracks (subtitles), each with:
        • baseUrl: URL to fetch the captions.
        • name: Name of the caption track.
        • vssId: Caption track ID.
        • languageCode: Language code of the captions.
        • kind: Type of captions (e.g., "asr" for auto-generated).
        • isTranslatable: Boolean indicating if the captions can be auto-translated.
        • trackName: Name of the track (if any).
      • audioTracks: Array of audio track objects.
      • translationLanguages: Array of available translation languages, each with:
        • languageCode: Language code.
        • languageName: Object with simpleText (full language name).
      • defaultAudioTrackIndex: Index of the default audio track.
  • transcript: Array of transcript segments, each with:
    • text: The spoken text for that segment.
    • startMs: Start time in milliseconds.
    • endMs: End time in milliseconds.
    • startTimeText: Human-readable start time (e.g., "0:02").
  • transcript_only_text: The full transcript as a single plain text string, with all

Note: Some fields (like microformat, captions, thumbnail) are nested objects and may contain additional subfields for advanced use cases.

Why Use This Scraper?

  • Ease of Use: Just provide the TikTok video URLs and extract captions effortlessly.
  • Customizable Settings: Adjust concurrency, retries, and proxy settings to fit your needs.
  • Accurate and Reliable: Automatically retries failed requests to minimize data loss.
  • Time-Saving: Automates manual effort of retrieving TikTok captions for multiple videos.

Notes

  • Ensure valid TikTok video URLs are provided in the startUrls field.
  • Proxies are recommended for large-scale scraping to prevent rate-limiting or IP bans.

Explore More Scrapers

If you found this Apify Smartbuyglasses Scraper useful, be sure to check out our other powerful scrapers and actors at memo23's Apify profile. We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.

Support

Additional Services