Transcript Dock
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TRANSCRIPTDOCK_API_KEY | Yes | Your workspace API key (td_live_...). The server exits with a clear message if it is missing. | |
| TRANSCRIPTDOCK_BASE_URL | Yes | Explicit HTTPS API origin, e.g. https://www.transcriptdock.com. HTTP is allowed only for loopback local development (e.g. http://127.0.0.1:3000). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| transcribeA | Submit a YouTube or TikTok URL to TranscriptDock and return the created job. captions_only costs 1 credit; auto uses captions when the video has them (1 credit) and AI transcription otherwise; transcribe always runs AI transcription (2 credits per started minute, paid plans). |
| get_video_transcriptA | Get the transcript of a YouTube or TikTok video in one step: submits a job, waits for it (long polling), and returns the transcript text (or srt/vtt/segments). Use this for 'what does this video say' questions. Default mode captions_only (1 credit); pass mode auto to fall back to AI transcription when the video has no captions. Same video and options are served from cache without a new charge. |
| get_jobB | Look up a TranscriptDock job's status, stage, error, and billing by ID. |
| get_transcriptA | Fetch a completed transcript by ID, as normalized JSON segments or as a text/SRT/VTT export. |
| list_jobsA | List jobs for the workspace, newest first, with cursor pagination. |
| wait_for_jobA | Wait for a job to reach a terminal status (succeeded, failed, or cancelled) using API long polling, then return it. |
| search_youtubeA | Search YouTube videos by query and return the listing. Pass cursor unchanged for the next page. |
| list_channel_videosA | List videos from one YouTube channel and return the listing. Pass cursor unchanged for the next page. |
| get_channel_latest_videosB | Get the latest videos from one YouTube channel. The channel videos tab is newest first. |
| search_channel_videosA | Search videos within one YouTube channel and return the listing. Pass cursor unchanged for the next page. |
| list_playlist_videosA | List videos from one YouTube playlist and return the listing. Pass cursor unchanged for the next page. |
| list_tiktok_user_videosA | List TikTok videos for one user. TikTok search is not available. TikTok returns at most 10 videos from its embed page and no further pages. Set include_details to also fetch each video page for full stats, dates, hashtags, and music. |
| get_video_discoveryA | Get one video discovery by ID, including status, videos, cursor, and error. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Most tools are cleanly separable by resource+action, but list_channel_videos and get_channel_latest_videos both list videos from a single channel with only an unspecified ordering distinction, making selection guesswork. The transcript trio (transcribe, get_video_transcript, get_transcript) is saved largely by explicit descriptions contrasting job-submission vs one-step vs by-ID retrieval.
Names overwhelmingly follow verb_noun (get_job, list_jobs, search_youtube, list_playlist_videos), which makes the surface predictable. Minor deviations: the bare verb 'transcribe' and the near-duplicate prefix pair get_transcript/get_video_transcript blur specificity.
13 tools is well within a healthy range and covers job, discovery, and listing concerns without bloat. Slightly overweight because get_channel_latest_videos overlaps list_channel_videos rather than adding a distinct capability.
Core lifecycle is covered: submit (transcribe), poll (get_job, wait_for_job), enumerate (list_jobs), and retrieve output (get_transcript, get_video_transcript), plus discovery/listing across YouTube, playlists, and TikTok. Gaps are minor but real — wait_for_job references a 'cancelled' state yet no cancel tool exists, and get_video_discovery has no listing or creation counterpart.