GitHubLog in
TikTok Transcript MCP Server

TikTok Transcript MCP Server

Give Claude, ChatGPT, Cursor or any MCP client TikTok as a tool: transcripts from any public video, keyword search, a profile's recent posts and a creator's playlists, from one hosted server.

Server URL
https://transcriptfetch.com/mcp
Streamable HTTP · OAuth or API key

Point your client at the server URL and your agent can read TikTok on its own: paste a full link or a share link from the app and it gets the spoken words with timestamps, searches TikTok by keyword, or lists a creator's recent posts and playlists. Most TikToks have no caption file, so the server transcribes the audio, usually within the same call.

Not a developer? Add TikTok to ChatGPT or Claude in a minute
Setup

Add the server to your client

Nothing to install. All seven tools. Recommended for most clients.
Settings → Connectors
Add custom connector

Name  TranscriptFetch
URL   https://transcriptfetch.com/mcp
Connect in Claude opens TranscriptFetch in Claude's connector directory; or add it as a custom connector with the details above. Sign in to TranscriptFetch and approve access when Claude asks. No API key needed.Connect in Claude
Tools

Five tools work with TikTok

Each tool's description and parameters below are the server's own, as your client receives them. Your assistant picks the tool; you ask in plain words.

get_transcript1 credit

Fetch the full transcript for a video or media file. Accepts a YouTube video ID or URL, TikTok and Instagram URLs, and direct media file URLs. If no transcript comes back, the result says whether captions definitively do not exist (aiFallback.captionsUnavailable) and whether transcribing the audio would still work (aiFallback.available). When it does, call this tool again with ai_fallback: true.

videostringrequired
Video ID or URL: YouTube (dQw4w9WgXcQ, youtu.be/…), TikTok, Instagram, or a direct media file URL.
ai_fallbackboolean
Skip captions and use AI Fallback Transcription of the audio instead. Use this only after a previous call reported aiFallback.available. Charged 1 credit per started 5 minutes of audio, minimum 1 credit, on delivery; short media may return inline, while longer work returns a processing result to collect with a later call.
timestampsboolean
Include the timestamped segments in the structured result (default true). Set false when only the text is needed: the segments repeat the transcript's words with timings, so leaving them out keeps the response smaller.
markdownboolean
Return the transcript as Markdown (default false): a title line, then paragraphs that each open with their time, linked to that moment on YouTube. Use it when you will quote or cite the video.
chunksboolean
Also return the transcript split into pieces of about 500 tokens for an embedding model or vector store (default false), each with its start and end time and a link to that moment. In the structured result only.
search_videos1 credit

Search for videos matching a query on YouTube (default), TikTok, or Instagram. Returns titles, ids, durations, and URLs that get_transcript accepts directly. On YouTube, upload_date, duration, sort and captions narrow the results; search_channels finds channels or playlists instead.

querystringrequired
Search keywords.
platformyoutube | tiktok | instagramdefault youtube
Where to search. Defaults to youtube.
limitinteger
Max results to return (1–50). Defaults to 5.
list_channel_videos1 credit

List a creator's items, newest first by default. Accepts a YouTube channel (@handle, UC… id, or URL), a TikTok profile URL (tiktok.com/@user), or an Instagram profile URL. On YouTube, tab picks the videos, shorts or live tab, sort orders it, and query searches inside the channel. Every row's url can be passed straight to get_transcript.

channelstringrequired
YouTube handle/ID/URL, or a TikTok or Instagram profile URL.
limitinteger
Max results to return (1–50). Defaults to 5.
list_playlist_videos1 credit

List the items in a playlist. Accepts a YouTube playlist ID or URL or a TikTok playlist URL (tiktok.com/@user/playlist/name-id). Every row's url can be passed straight to get_transcript.

playliststringrequired
YouTube playlist ID or URL, or a TikTok playlist URL.
limitinteger
Max results to return (1–50). Defaults to 5.
get_creditsFree

Check the caller's remaining credit balance. Free; costs no credits.

No parameters.

A caption fetch or a listing call costs one credit, and AI transcription 1 credit per started 5 minutes of audio. Failed and empty calls are free, and get_credits costs nothing.

Example call

What your agent sends and gets back

Tool callget_transcript
{
  "video": "https://www.tiktok.com/@khanacademy/video/7690953765293231373"
}
Responsesource: captions1 credit · abridged
{
  "videoId": "7690953765293231373",
  "platform": "tiktok",
  "title": "Lower Car Payment? Check the Loan First!  The best deal isn’t always the one with the lowest monthly payment. Learn more in Khan Academy’s Monthly payment versus total cost lesson! Link in bio",
  "channel": "khanacademy",
  "duration": 35,
  "language": "eng-US",
  "source": "captions",
  "segments": [
    {
      "start": 0.5,
      "duration": 3.98,
      "text": "Wait, this payment for my new car is way lower?"
    },
    {
      "start": 4.78,
      "duration": 2,
      "text": "Yeah, I'm going with this payment."
    },
    {
      "start": 6.781,
      "duration": 2.86,
      "text": "Okay, but look at that loan closely."
    }
  ],
  "outcome": "ok",
  "creditsSpent": 1,
  "balance": 656
}
Good to know

What to know about TikTok

  • Most TikToks have no caption fileTikTok's auto-captions are opt-in per upload, so most videos expose none. When there is no caption file and the video has speech, the server transcribes the audio itself and holds the call for a short clip, so the transcript usually comes back in the same response. AI transcription costs 1 credit per started 5 minutes of audio, which is 1 credit for nearly every TikTok.
  • Share links work as they areget_transcript takes a full tiktok.com/@creator/video/… link or the short vm.tiktok.com and vt.tiktok.com links from the app's share sheet, so a link sent from a phone works without opening it first.
  • Profiles and serieslist_channel_videos takes a profile URL (tiktok.com/@user) and returns up to 50 recent posts per call. list_playlist_videos takes a playlist URL (tiktok.com/@user/playlist/name-id) and returns the series in the creator's own order. Every row's url goes straight to get_transcript.
  • Searchsearch_videos with platform: tiktok finds posts by keyword. The upload_date, duration, sort and captions filters are YouTube only.
  • What does not return textText typed in the TikTok editor or CapCut and burned into the frames, clips with only music, and private accounts. Empty and failed fetches are never billed.
Hosted or self-hosted

Why a transcript server and not a TikTok API wrapper?

Many TikTok MCP servers wrap TikTok's own APIs for posting, ads or analytics, which do not return what a video says. The transcript servers that read caption files come back empty on most TikToks, because there is no file to read. This server transcribes the audio, so what was said comes back whether or not the creator added captions. It runs on credits, with 50 free every month.

FAQ

Frequently asked questions

  • Do TikToks need captions for this to work?No. Most TikToks have no caption file; the server transcribes the audio with AI, so a missing caption file does not mean a missing transcript.
  • What does a TikTok transcript cost?1 credit for a video with captions, and 1 credit per started 5 minutes of audio for AI transcription, which is 1 credit for almost every TikTok. Every account gets 50 free credits a month, and failed or empty fetches are free.
  • Can it read a creator's whole profile?Yes. list_channel_videos takes a tiktok.com/@user URL and returns up to 50 recent posts per call; your agent passes each url to get_transcript.
  • Does it read the text shown on screen?No. It returns what was said. Text typed into the video and burned into the frames is not in the audio, so it is not in the transcript.
  • Does it work in ChatGPT and Claude?Yes. On claude.ai and ChatGPT you add https://transcriptfetch.com/mcp as a connector and sign in with OAuth, no key. Other clients use the configurations in the setup panel.