Skip to main content
Glama

Render a Reddit thread video

reddit_render_video

Render a Reddit thread (script, or post+comments) to an MP4 and wait for it to finish. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render typically takes 20-60 seconds.

Returns a public link to the MP4; the file is deleted after 24 hours. If txtreel is busy or you hit the rate limit, the result is an error with the message.

If the thread is invalid, this returns an error result with the validation messages (script errors are prefixed with the offending line number) instead of rendering.

Reddit thread script format (post + nested comments):

title: AITA for not going to my sister's wedding? body: First paragraph of the post (optional, one line per paragraph) body: Second paragraph [photo URL] a photo in the post (URL, file path or uploaded photo's number) sleepy_joe: A top-level comment

OP: A reply by the post's author (blue OP label)

sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age [91 more replies] collapsed replies under the comment above [pause 2] wait 2 s

comment

The video is a screen recording of a thread on mobile reddit.com in iOS Safari: the page is laid out once and the view scrolls from block to block, holding each one long enough to read. The title is on screen from frame 0. Scores and ages left out of the script are generated (decreasing down the thread, never older than the post).

Input Schema

NameRequiredDescriptionDefault
postNoThe post. Use this OR script, not both.
speedNoPacing multiplier; 2 = twice as fast, 0.5 = half speed. Default: 1. Use 1.3-1.5 for a faster reel.
themeNoColor theme, "light" or "dark". Default: light.
scriptNoThread as a plain-text script. Use this OR post/comments, not both. Reddit thread script format (post + nested comments): title: AITA for not going to my sister's wedding? body: First paragraph of the post (optional, one line per paragraph) body: Second paragraph [photo URL] a photo in the post (URL, file path or uploaded photo's number) sleepy_joe: A top-level comment > OP: A reply by the post's author (blue OP label) >> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age [91 more replies] collapsed replies under the comment above [pause 2] wait 2 s # comment The video is a screen recording of a thread on mobile reddit.com in iOS Safari: the page is laid out once and the view scrolls from block to block, holding each one long enough to read. The title is on screen from frame 0. Scores and ages left out of the script are generated (decreasing down the thread, never older than the post).
endHoldNoSeconds to hold on the final frame before the video ends. Default: 2.
commentsNoComments as an array of event objects instead of a script string (use this OR script, not both). Each item is one of: {author, text, depth (0 top-level, 1 reply to the nearest depth-0 comment above, 2 reply to that, …), score?, age?, op?, avatar?, moreReplies?, hold?} or {type:"pause", seconds}. "op" or an author matching the post author gets the blue OP label automatically.
statusBarNoPhone status bar shown above the Safari toolbar.
subredditNoThe subreddit the thread is posted in.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / script / description
      Previous value: -"Thread as a plain-text script. Use this OR post/comments, not both.\n\nReddit thread script format (post + nested comments):\n\ntitle: AITA for not going to my sister's wedding?\nbody: First paragraph of the post (optional, one line per paragraph)\nbody: Second paragraph\n[photo URL]                    a photo in the post (URL, file path or uploaded photo's number)\nsleepy_joe: A top-level comment\n> OP: A reply by the post's author (blue OP label)\n>> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age\n[91 more replies]              collapsed replies under the comment above\n[pause 2]                      wait 2 s\n# comment\n\nThis is a screen recording of someone reading a real-looking thread on mobile reddit.com in iOS Safari: the page is laid out once and the camera scrolls from block to block, holding each one long enough to read. The title is the hook and is on screen from frame 0 — make it count. A typical reel is a post with 1-3 short body paragraphs plus 4-10 comments, about 30-60 seconds. Use nested replies (\">\", \">>\", …) and a reply from the post's author (\"> OP: …\") for drama — someone getting called out and the poster jumping in reads as real. A \"[N more replies]\" line under a comment adds realism: it's what a real collapsed thread looks like. Leave scores and ages out unless they matter to the story — they're made up realistically (decreasing down the thread, never older than the post) when omitted. Use \"speed\" 1.3-1.5 for a faster-paced reel."New value: +"Thread as a plain-text script. Use this OR post/comments, not both.\n\nReddit thread script format (post + nested comments):\n\ntitle: AITA for not going to my sister's wedding?\nbody: First paragraph of the post (optional, one line per paragraph)\nbody: Second paragraph\n[photo URL]                    a photo in the post (URL, file path or uploaded photo's number)\nsleepy_joe: A top-level comment\n> OP: A reply by the post's author (blue OP label)\n>> sleepy_joe [2.1K 3h]: A reply to that reply, with its votes and age\n[91 more replies]              collapsed replies under the comment above\n[pause 2]                      wait 2 s\n# comment\n\nThe video is a screen recording of a thread on mobile reddit.com in iOS Safari: the page is laid out once and the view scrolls from block to block, holding each one long enough to read. The title is on screen from frame 0. Scores and ages left out of the script are generated (decreasing down the thread, never older than the post)."
  2. First observed

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no output schema, the description carries the return-value burden and does so: a public link to the MP4, deletion after 24 hours, synchronous queue-and-wait semantics, 20-60s typical duration, and distinct error results for busy/rate-limit versus invalid-thread validation. This goes well beyond the annotations (readOnlyHint=false, non-idempotent), which only signal that a render is a non-destructive but non-repeatable write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded correctly: purpose and wait semantics come first, then return value, then errors, then format. However, the multi-line script-format example is reproduced verbatim from the schema's `script` field, which is wasted space in the description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 8-parameter tool with nested objects, zero required params, and no output schema, the description covers what the agent most needs: what the call returns, how long it blocks, that the artifact expires in 24h, and how failures surface. Input-mode exclusivity is stated for both script and post/comments.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters including defaults and ranges; the baseline of 3 applies. The description's script-format block is largely a verbatim duplicate of the `script` property description rather than net-new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Render a Reddit thread ... to an MP4 and wait for it to finish' — and names both supported input modes (script, or post+comments). The MP4/video framing inherently separates it from the sibling reddit_screenshot, even though that sibling is not named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the two input modes and mutual exclusivity, plus failure behavior, but never says when to choose this over reddit_screenshot or chat_render_video. Usage context is implied by the 'MP4' output rather than stated as routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources