> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scraperize.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Post transcript

> Returns the transcript of a Reddit video — from the captions Reddit's video player shows — by the post's URL or the video's own v.redd.it URL: timed segments (seconds), the full text, the caption language and every language the video has captions in, plus the post (for a post URL) and the video's id, link and length. Reddit captions videos with speech; one without captions, or without captions in the requested language, returns 404 (with the languages there are). NSFW posts return 403. Only publicly available data is returned.

> [!NOTE]
>
> **Cost: 1 credit** per successful request. Errors and cache hits (`cache_max_age`) are free.

> [accordion] Copy for AI assistant
>
> Paste this into ChatGPT, Claude or your coding assistant to generate working code for this endpoint (use the copy button).
>
> ```text Prompt
> I want to make an API call to /v1/reddit/post/transcript. Here are the details:
>
> Endpoint: GET https://api.scraperize.com/v1/reddit/post/transcript
> Description: Returns the transcript of a Reddit video — from the captions Reddit's video player shows — by the post's URL or the video's own v.redd.it URL: timed segments (seconds), the full text, the caption language and every language the video has captions in, plus the post (for a post URL) and the video's id, link and length. Reddit captions videos with speech; one without captions, or without captions in the requested language, returns 404 (with the languages there are). NSFW posts return 403. Only publicly available data is returned.
>
> Required Headers:
> - x-api-key: Your API key
>
> Parameters:
> - url (string) [required]: A Reddit video post URL, or the video URL `https://v.redd.it/<id>`.
> - language (string): The caption language, as a code: `en` (default), `es`, `pt-BR` …
> - cache_max_age (select): Optional. Return a cached result if one this age or newer exists — served for **0 credits** with `meta.cached=true` and `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and refreshes the cache. Omit to always scrape fresh.
>
> Example Response:
> {
>   "data": {
>     "post": {
>       "id": "1xo9500",
>       "url": "https://www.reddit.com/r/BeAmazed/comments/1xo9500/my_knees/",
>       "title": "My knees 😌",
>       "type": "video",
>       "subreddit": "BeAmazed",
>       "subredditId": "t5_363r3",
>       "author": "FreaksNake1237",
>       "authorId": "t2_agpvdudc",
>       "authorAvatarUrl": "https://cf.preview.redd.it/snoovatar/avatars/16145d92-7d59-4b39-b39d-a510be247a9c-headshot.png?width=64&height=64&crop=smart&auto=webp&s=8470e5bb27a2c679a4a7449…",
>       "createdAt": "2026-11-05T04:06:17.818Z",
>       "score": 52406,
>       "upvoteRatio": 0.9480272643858959,
>       "commentCount": 344,
>       "awardCount": 15,
>       "domain": "v.redd.it",
>       "linkUrl": "https://v.redd.it/emz7ds6qxpzh1",
>       "language": "und",
>       "flair": {
>         "text": "Art",
>         "backgroundColor": "#0266B3"
>       },
>       "text": null,
>       "links": [],
>       "imageDescription": null,
>       "thumbnailUrl": "https://external-preview.redd.it/my-knees-v0-OWNhMXdjNHF4cHpoMfSKH1ZGyiD_uC5lJe9buCd_tbRifzvB4EcUjIRzwp6E.png?format=pjpg&auto=webp&s=2ea0ddb2422356c2a838ce2c59…",
>       "images": [],
>       "video": {
>         "id": "emz7ds6qxpzh1",
>         "hlsUrl": "https://v.redd.it/emz7ds6qxpzh1/HLSPlaylist.m3u8?f=sd%2CsubsAll%2ChlsSpecOrder&v=1&a=1796561360%2CZjQ4YTA4ZTFlZDQyMzIzOGYyZTNiNmEzOWY2NDJlMGYyNmY0MzZiMzYxYWFlNm…",
>         "mp4s": [
>           {
>             "url": "https://packaged-media.redd.it/emz7ds6qxpzh1/pb/m2-res_1280p.mp4?m=DASHPlaylist.mpd&c=wh_ben_en&var=sgpssan&v=1&e=1793984400&s=880791d721df5f511b43f26c31fcbdfd7…",
>             "width": 720,
>             "height": 1280,
>             "bitrate": 2121332
>           }
>         ],
>         "posterUrl": "https://external-preview.redd.it/my-knees-v0-OWNhMXdjNHF4cHpoMfSKH1ZGyiD_uC5lJe9buCd_tbRifzvB4EcUjIRzwp6E.png?format=pjpg&auto=webp&s=2ea0ddb2422356c2a838ce2c59…",
>         "durationSeconds": 43,
>         "previewUrl": "https://v.redd.it/emz7ds6qxpzh1/CMAF_96.mp4",
>         "isGif": false
>       },
>       "embed": null,
>       "crosspostParent": null,
>       "isNsfw": false,
>       "isLocked": false,
>       "isStickied": false,
>       "isArchived": false,
>       "isCrosspost": false
>     },
>     "video": {
>       "id": "emz7ds6qxpzh1",
>       "url": "https://v.redd.it/emz7ds6qxpzh1",
>       "durationSeconds": 43
>     },
>     "transcript": "And this place is gonna track me down I can't remember where I'm supposed to go You think you got me feeling out So light me up, my lumen all Watch me glow And …",
>     "language": "English",
>     "languageCode": "en",
>     "segments": [
>       {
>         "start": 0,
>         "end": 7.9,
>         "text": "And this place is gonna track me down I can't remember where I'm supposed to go"
>       }
>     ],
>     "availableLanguages": [
>       {
>         "languageCode": "en",
>         "language": "English"
>       }
>     ],
>     "segmentCount": 5,
>     "fetchedAt": "2026-11-06T12:49:20.016Z"
>   },
>   "meta": {
>     "requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
>     "creditsCharged": 1,
>     "creditsRemaining": 4999,
>     "cached": false
>   }
> }
>
> Please help me write code in my preferred programming language to make this API call and handle the response appropriately. Include error handling and best practices.
> ```


## OpenAPI

````yaml /api-reference/openapi.json get /v1/reddit/post/transcript
openapi: 3.0.3
info:
  title: Scraperize API
  version: 1.0.0
  description: >-
    Extract public data from social media platforms as clean JSON. Endpoints are
    split by platform and by what they return, e.g. `GET /v1/twitter/tweet`.


    ## Authentication

    Send your API key in the `x-api-key` header (or `Authorization: Bearer
    <key>`). Create keys in your dashboard.


    ## Credits

    Each successful live scrape costs **1 credit**. Credits are prepaid and
    never expire.


    ## Caching

    Every endpoint accepts an optional `cache_max_age`
    (`1d`|`3d`|`7d`|`14d`|`30d`). A cache hit within that window is returned for
    **0 credits**.


    ## Responses

    Success returns `{ "data": …, "meta": { "requestId", … } }`. Errors return
    `{ "error": { "code", "message", "requestId" } }` with a matching HTTP
    status. `meta` on a scrape carries `creditsCharged`, `creditsRemaining`,
    `cached`, and (on a hit) `cachedAt`.


    ## Rate limits

    Requests are limited per team per minute; over the limit returns `429` with
    a `Retry-After` header.
servers:
  - url: https://api.scraperize.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Twitter
    description: Twitter / X scraping endpoints
  - name: Facebook
    description: Facebook scraping endpoints
  - name: Linkme
    description: Linkme (link.me) scraping endpoints
  - name: Amazon
    description: Amazon (creator shop / storefront) scraping endpoints
  - name: Linkbio
    description: Linkbio (lnk.bio) scraping endpoints
  - name: Pillar
    description: Pillar (pillar.io) scraping endpoints
  - name: Komi
    description: Komi (komi.io) scraping endpoints
  - name: Linktree
    description: Linktree (linktr.ee) scraping endpoints
  - name: Kick
    description: Kick (kick.com) scraping endpoints
  - name: Snapchat
    description: Snapchat (snapchat.com) scraping endpoints
  - name: Telegram
    description: Telegram (t.me) scraping endpoints
  - name: LinkedIn
    description: LinkedIn scraping endpoints
  - name: Twitch
    description: Twitch scraping endpoints
  - name: TikTok
    description: TikTok (tiktok.com) scraping endpoints
  - name: Instagram
    description: Instagram scraping endpoints
  - name: Lagos Life
    description: Lagos Life scraping endpoints
  - name: Bluesky
    description: Bluesky (bsky.app) scraping endpoints
  - name: Threads
    description: Threads (threads.com) scraping endpoints
  - name: Reddit
    description: Reddit (reddit.com) scraping endpoints
  - name: Rumble
    description: Rumble (rumble.com) scraping endpoints
  - name: Truth Social
    description: Truth Social (truthsocial.com) scraping endpoints
  - name: YouTube
    description: YouTube (youtube.com) scraping endpoints
paths:
  /v1/reddit/post/transcript:
    get:
      tags:
        - Reddit
      summary: Post transcript
      description: >-
        Returns the transcript of a Reddit video — from the captions Reddit's
        video player shows — by the post's URL or the video's own v.redd.it URL:
        timed segments (seconds), the full text, the caption language and every
        language the video has captions in, plus the post (for a post URL) and
        the video's id, link and length. Reddit captions videos with speech; one
        without captions, or without captions in the requested language, returns
        404 (with the languages there are). NSFW posts return 403. Only publicly
        available data is returned.
      parameters:
        - name: url
          in: query
          required: true
          description: A Reddit video post URL, or the video URL `https://v.redd.it/<id>`.
          schema:
            type: string
          example: https://www.reddit.com/r/BeAmazed/comments/1xo9500/my_knees/
        - name: language
          in: query
          required: false
          description: 'The caption language, as a code: `en` (default), `es`, `pt-BR` …'
          schema:
            type: string
            default: en
        - name: cache_max_age
          in: query
          required: false
          description: >-
            Optional. Return a cached result if one this age or newer exists —
            served for **0 credits** with `meta.cached=true` and
            `meta.cachedAt`. Otherwise a fresh scrape runs (**1 credit**) and
            refreshes the cache. Omit to always scrape fresh.
          schema:
            type: string
            enum:
              - 1d
              - 3d
              - 7d
              - 14d
              - 30d
          example: 7d
      responses:
        '200':
          description: The transcript.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      post:
                        type: object
                        nullable: true
                      video:
                        type: object
                      transcript:
                        type: string
                      language:
                        type: string
                        nullable: true
                      languageCode:
                        type: string
                      segments:
                        type: array
                        items:
                          type: object
                      availableLanguages:
                        type: array
                        items:
                          type: object
                      segmentCount:
                        type: integer
                      fetchedAt:
                        type: string
                        format: date-time
                  meta:
                    type: object
                    description: >-
                      requestId + credit/caching metadata (creditsCharged,
                      creditsRemaining, cached, cachedAt).
                required:
                  - data
                  - meta
              example:
                data:
                  post:
                    id: 1xo9500
                    url: >-
                      https://www.reddit.com/r/BeAmazed/comments/1xo9500/my_knees/
                    title: My knees 😌
                    type: video
                    subreddit: BeAmazed
                    subredditId: t5_363r3
                    author: FreaksNake1237
                    authorId: t2_agpvdudc
                    authorAvatarUrl: >-
                      https://cf.preview.redd.it/snoovatar/avatars/16145d92-7d59-4b39-b39d-a510be247a9c-headshot.png?width=64&height=64&crop=smart&auto=webp&s=8470e5bb27a2c679a4a74494a4d4055f8a9d1c29
                    createdAt: '2026-11-05T04:06:17.818Z'
                    score: 52406
                    upvoteRatio: 0.9480272643858959
                    commentCount: 344
                    awardCount: 15
                    domain: v.redd.it
                    linkUrl: https://v.redd.it/emz7ds6qxpzh1
                    language: und
                    flair:
                      text: Art
                      backgroundColor: '#0266B3'
                    text: null
                    links: []
                    imageDescription: null
                    thumbnailUrl: >-
                      https://external-preview.redd.it/my-knees-v0-OWNhMXdjNHF4cHpoMfSKH1ZGyiD_uC5lJe9buCd_tbRifzvB4EcUjIRzwp6E.png?format=pjpg&auto=webp&s=2ea0ddb2422356c2a838ce2c595bb1708589bf8a
                    images: []
                    video:
                      id: emz7ds6qxpzh1
                      hlsUrl: >-
                        https://v.redd.it/emz7ds6qxpzh1/HLSPlaylist.m3u8?f=sd%2CsubsAll%2ChlsSpecOrder&v=1&a=1796561360%2CZjQ4YTA4ZTFlZDQyMzIzOGYyZTNiNmEzOWY2NDJlMGYyNmY0MzZiMzYxYWFlNmQ4ZTQ0NGQzNGZhN2Y2YTcyMQ%3D%3D
                      mp4s:
                        - url: >-
                            https://packaged-media.redd.it/emz7ds6qxpzh1/pb/m2-res_1280p.mp4?m=DASHPlaylist.mpd&c=wh_ben_en&var=sgpssan&v=1&e=1793984400&s=880791d721df5f511b43f26c31fcbdfd70328bb1
                          width: 720
                          height: 1280
                          bitrate: 2121332
                        - url: >-
                            https://packaged-media.redd.it/emz7ds6qxpzh1/pb/m2-res_854p.mp4?m=DASHPlaylist.mpd&c=wh_ben_en&var=sgpssan&v=1&e=1793984400&s=82327890056b4cc3462e54671cdab535f0e3c52e
                          width: 480
                          height: 854
                          bitrate: 1051500
                        - url: >-
                            https://packaged-media.redd.it/emz7ds6qxpzh1/pb/m2-res_640p.mp4?m=DASHPlaylist.mpd&c=wh_ben_en&var=sgpssan&v=1&e=1793984400&s=d928bd5014ce65cc75f9fc02f20ad8bedd2af903
                          width: 360
                          height: 640
                          bitrate: 707170
                      posterUrl: >-
                        https://external-preview.redd.it/my-knees-v0-OWNhMXdjNHF4cHpoMfSKH1ZGyiD_uC5lJe9buCd_tbRifzvB4EcUjIRzwp6E.png?format=pjpg&auto=webp&s=2ea0ddb2422356c2a838ce2c595bb1708589bf8a
                      durationSeconds: 43
                      previewUrl: https://v.redd.it/emz7ds6qxpzh1/CMAF_96.mp4
                      isGif: false
                    embed: null
                    crosspostParent: null
                    isNsfw: false
                    isLocked: false
                    isStickied: false
                    isArchived: false
                    isCrosspost: false
                  video:
                    id: emz7ds6qxpzh1
                    url: https://v.redd.it/emz7ds6qxpzh1
                    durationSeconds: 43
                  transcript: >-
                    And this place is gonna track me down I can't remember where
                    I'm supposed to go You think you got me feeling out So light
                    me up, my lumen all Watch me glow And I know I don't belong
                    I'll do it all along Cause I'm just a spacekeeper With no
                    end in my head And after all, I can't know anything at all
                    Cause I'm just a spacekeeper With no one to make my bed
                  language: English
                  languageCode: en
                  segments:
                    - start: 0
                      end: 7.9
                      text: >-
                        And this place is gonna track me down I can't remember
                        where I'm supposed to go
                    - start: 10.88
                      end: 19.12
                      text: >-
                        You think you got me feeling out So light me up, my
                        lumen all Watch me glow
                    - start: 20.54
                      end: 30.02
                      text: >-
                        And I know I don't belong I'll do it all along Cause I'm
                        just a spacekeeper With
                  availableLanguages:
                    - languageCode: en
                      language: English
                  segmentCount: 5
                  fetchedAt: '2026-11-06T12:49:20.016Z'
                meta:
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  creditsCharged: 1
                  creditsRemaining: 4999
                  cached: false
        '401':
          description: Missing, invalid, or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: UNAUTHORIZED
                  message: API key required — pass it in the `x-api-key` header.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '402':
          description: Not enough credits for this request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: INSUFFICIENT_CREDITS
                  message: >-
                    This request costs 1 credit, but your balance is 0. Top up
                    to continue.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '403':
          description: An NSFW (18+) post — Reddit only shows it to signed-in adults.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            No such post / video, no Reddit-hosted video, no captions, or none
            in that language.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: NOT_FOUND
                  message: >-
                    The requested content was not found (it may not exist, be
                    deleted, or be private).
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '422':
          description: Invalid query parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: VALIDATION_ERROR
                  message: Request validation failed
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
                  details:
                    - path: url
                      message: url is required
        '429':
          description: Over the per-minute rate limit — honour `Retry-After`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: RATE_LIMITED
                  message: >-
                    Rate limit exceeded — max 100 requests per 60s. Retry in
                    ~30s.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
        '503':
          description: >-
            Temporarily unavailable — retry after `Retry-After`. `error.code`
            tells you why: `UPSTREAM_BLOCKED` (the source blocked this request),
            `EXTRACTION_FAILED` (the source returned unexpected data),
            `PLATFORM_UNAVAILABLE` (the source is down), or
            `SERVICE_UNAVAILABLE` (we are at capacity).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error:
                  code: UPSTREAM_BLOCKED
                  message: >-
                    The source is temporarily unavailable. Please try again
                    shortly.
                  requestId: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: NOT_FOUND
            message:
              type: string
              example: The requested content was not found.
            requestId:
              type: string
              example: req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f
            details:
              type: array
              items:
                type: object
              description: Present on validation errors.
          required:
            - code
            - message
            - requestId
      required:
        - error
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Your API key. Send it in the `x-api-key` header (or `Authorization:
        Bearer <key>`). Create and manage keys from your dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.