accueil / serveurs / Médias / com.txtreel/txtreel
com.txtreel/txtreel
serveur MCP (Model Context Protocol) · txtreel 0.1.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que com.txtreel/txtreel est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.txtreel/txtreel » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 7 outils
- chat_render_video≈ 1644 tokens
Render a txtreel conversation (script or messages) 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 (a handful of messages) 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. Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.
Paramètres, retour & exemple (13)
Paramètresspeed· number · optionnel
Pacing multiplier; 2 = twice as fast, 0.5 = half speed. Default: 1.theme· string · optionnel · light | dark
Color theme, "light" or "dark". Default: light.script· string · optionnel
Conversation as a plain-text script. Use this OR messages, not both. Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.sounds· boolean · optionnel
Real UI sounds: iOS key clicks while typing, the app's send and receive sounds. Default: true.contact· object · optionnel
Contact header info.endHold· number · optionnel
Seconds to hold on the final frame before the video ends. Default: 2.autoRead· boolean · optionnel
Mark "me" messages as read as soon as the other person starts typing. Default: true.keyboard· boolean · optionnel
Show the iOS keyboard, which keeps the latest messages above the Reels caption area. Default: true.messages· array · optionnel
Conversation as an array of event objects instead of a script string (use this OR script, not both). Passed through to the txtreel API as-is; each item is one of: {from:"me"|"them", text, delay?, typing?, hold?, time?, instant?} (type "message" is the default and can be omitted), {type:"pause", seconds}, {type:"timestamp", text, instant?}, {type:"read", time?}, {type:"react", from:"me"|"them", emoji}.platform· string · optionnel · imessage | whatsapp | instagram
Chat app to render: "imessage", "whatsapp", or "instagram". Default: imessage.startTime· string · optionnel
Clock used for messages, read receipts, and WhatsApp bubble times, e.g. "9:41 PM". Default: 9:41 PM.statusBar· object · optionnel
Phone status bar shown at the top of the frame.composerTyping· boolean · optionnel
Type "me" messages into the input bar before sending them. Default: true.
Exemple d'appel{"name": "chat_render_video", "arguments": {"speed": 1, "theme": "light", "script": "texte", "sounds": true, "contact": {}, "endHold": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - chat_screenshot≈ 1669 tokens
Render a single frame of a txtreel conversation (script or messages) to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.
Paramètres, retour & exemple (14)
Paramètresframe· integer · optionnel
Frame index to capture, at 30 fps (e.g. 30 = one second in). Omit to capture the final frame of the conversation.speed· number · optionnel
Pacing multiplier; 2 = twice as fast, 0.5 = half speed. Default: 1.theme· string · optionnel · light | dark
Color theme, "light" or "dark". Default: light.script· string · optionnel
Conversation as a plain-text script. Use this OR messages, not both. Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.sounds· boolean · optionnel
Real UI sounds: iOS key clicks while typing, the app's send and receive sounds. Default: true.contact· object · optionnel
Contact header info.endHold· number · optionnel
Seconds to hold on the final frame before the video ends. Default: 2.autoRead· boolean · optionnel
Mark "me" messages as read as soon as the other person starts typing. Default: true.keyboard· boolean · optionnel
Show the iOS keyboard, which keeps the latest messages above the Reels caption area. Default: true.messages· array · optionnel
Conversation as an array of event objects instead of a script string (use this OR script, not both). Passed through to the txtreel API as-is; each item is one of: {from:"me"|"them", text, delay?, typing?, hold?, time?, instant?} (type "message" is the default and can be omitted), {type:"pause", seconds}, {type:"timestamp", text, instant?}, {type:"read", time?}, {type:"react", from:"me"|"them", emoji}.platform· string · optionnel · imessage | whatsapp | instagram
Chat app to render: "imessage", "whatsapp", or "instagram". Default: imessage.startTime· string · optionnel
Clock used for messages, read receipts, and WhatsApp bubble times, e.g. "9:41 PM". Default: 9:41 PM.statusBar· object · optionnel
Phone status bar shown at the top of the frame.composerTyping· boolean · optionnel
Type "me" messages into the input bar before sending them. Default: true.
Exemple d'appel{"name": "chat_screenshot", "arguments": {"frame": 1, "speed": 1, "theme": "light", "script": "texte", "sounds": true, "contact": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - chat_validate≈ 1663 tokens
Checks a txtreel conversation (script or messages) without rendering anything. It is fast and free. On success returns { ok: true, durationSeconds, messageCount, conversation } where "conversation" is the fully-resolved object (all defaults applied). On failure returns { ok: false, errors: string[] } — one message per problem; when the input was a script, errors are prefixed with the offending line number. Videos longer than the server limit are rejected here too. Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.
Paramètres, retour & exemple (13)
Paramètresspeed· number · optionnel
Pacing multiplier; 2 = twice as fast, 0.5 = half speed. Default: 1.theme· string · optionnel · light | dark
Color theme, "light" or "dark". Default: light.script· string · optionnel
Conversation as a plain-text script. Use this OR messages, not both. Conversation script format (one event per line): them: hey, you up? me: yeah why [pause 1.5] wait 1.5 s --- Today 9:41 PM date/time separator me: [photo URL] caption a photo (URL, local file path, or an uploaded photo's number) [them reacts ❤️] reaction on my last message [read] they read my messages === everything above is already on screen at the start === scroll 3 same, but open on the oldest message and skim down in 3 s # comment "Name: text" also means "them" when Name matches contact.name (e.g. contact.name "Sam" lets you write "Sam: omg" instead of "them: omg"). A literal "\n" inside a message becomes a line break. Lines starting with # are comments. Photos: "me: [photo https://example.com/image.jpg] optional caption" (https URLs only; local file paths are not available). "=== scroll 3" opens on the oldest message of a longer history and skims down to the live part in 3 s. With keyboard true (the default), the newest messages stay above the area where the Reels caption sits.sounds· boolean · optionnel
Real UI sounds: iOS key clicks while typing, the app's send and receive sounds. Default: true.contact· object · optionnel
Contact header info.endHold· number · optionnel
Seconds to hold on the final frame before the video ends. Default: 2.autoRead· boolean · optionnel
Mark "me" messages as read as soon as the other person starts typing. Default: true.keyboard· boolean · optionnel
Show the iOS keyboard, which keeps the latest messages above the Reels caption area. Default: true.messages· array · optionnel
Conversation as an array of event objects instead of a script string (use this OR script, not both). Passed through to the txtreel API as-is; each item is one of: {from:"me"|"them", text, delay?, typing?, hold?, time?, instant?} (type "message" is the default and can be omitted), {type:"pause", seconds}, {type:"timestamp", text, instant?}, {type:"read", time?}, {type:"react", from:"me"|"them", emoji}.platform· string · optionnel · imessage | whatsapp | instagram
Chat app to render: "imessage", "whatsapp", or "instagram". Default: imessage.startTime· string · optionnel
Clock used for messages, read receipts, and WhatsApp bubble times, e.g. "9:41 PM". Default: 9:41 PM.statusBar· object · optionnel
Phone status bar shown at the top of the frame.composerTyping· boolean · optionnel
Type "me" messages into the input bar before sending them. Default: true.
Exemple d'appel{"name": "chat_validate", "arguments": {"speed": 1, "theme": "light", "script": "texte", "sounds": true, "contact": {}, "endHold": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - lockscreen_render_video≈ 2338 tokens
Render an iOS lock screen with notifications to an MP4 and wait for it to finish: a wallpaper, the big clock, and cards from imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders that land one by one at the seconds you set. This queues a render, waits for it, and returns once it is done (or after failing/timing out). A short render (3-5 notifications) 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 input is invalid, this returns an error result with the validation messages instead of rendering. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a see-through time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video), growing out of the bottom of the screen (or out of the card already there) as on iOS 26; at 0 it is already there. While cards are on screen the lower half of the wallpaper darkens, as on the phone. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). "wallpaper" also takes one of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"); without one, "sky" (the iOS 26 default) is drawn, in its light or dark version with "theme". "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS 26 does (the newest card, the next one or two as one-line rows under it, the rest counted as "+3 from WhatsApp and Messages"); "list" shows every card.
Paramètres, retour & exemple (22)
Paramètresdim· number · optionnel
Black overlay on the wallpaper, 0 to 1. Default: 0.date· string · optionnel
The line above the clock, written as iOS 26 does, e.g. "Tue Oct 6". Default: "Tue Oct 6".time· string · optionnel
The big clock, without AM/PM, e.g. "9:41". Default: "9:41".theme· string · optionnel · light | dark
The phone's appearance: "light" = frosted glass, "dark" = smoked glass, white text on both as on iOS 26; Apple's wallpapers follow it. Default: light.camera· boolean · optionnel
Camera button bottom right. Default: true.sounds· boolean · optionnel
The iOS notification tone when each card lands (video only). Default: true.carrier· string · optionnel
Network name on the left of the status bar. Default: none.display· string · optionnel · list | stack
"list" shows every card, newest on top; "stack" is iOS 26's default fold: the newest card, the next one or two as one-line rows, the rest counted. Default: list.endHold· number · optionnel
Seconds to hold on the last frame after the last card has settled. Default: 2.padlock· boolean · optionnel
Small locked padlock above the date. Default: true.clockSize· number · optionnel
Clock size in points on a 402 pt wide iPhone screen. Default: 100.statusBar· object · optionnel
Right side of the status bar. (The clock there is not shown on a lock screen.)wallpaper· string · optionnel
One of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"), or a full-bleed image: URL or data: URI. Omitted: "sky", the iOS 26 default.clockColor· string · optionnel
Clock colour (CSS colour). Default: "#FFFFFF".flashlight· boolean · optionnel
Flashlight button bottom left. Default: true.wallpaperX· number · optionnel
Where the crop is centred horizontally when the image is not the screen's shape, in % (50 = middle). Default: 50.wallpaperY· number · optionnel
Where the crop is centred vertically, in % (50 = middle). Default: 50.clockWeight· number · optionnel
Clock numeral weight, 100-900. Default: 760.clockOpacity· number · optionnel
How much of the colour fills the Liquid Glass numerals, 0-1; the wallpaper shows through the rest. Default: 0.45.clockStretch· number · optionnel
Vertical stretch of the clock numerals. Default: 1.16.notifications· array · requis
The notifications, 1 to 20, in any order (they land in order of "at", ties keep the written order, and the newest sits on top). Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a see-through time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video), growing out of the bottom of the screen (or out of the card already there) as on iOS 26; at 0 it is already there. While cards are on screen the lower half of the wallpaper darkens, as on the phone. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). "wallpaper" also takes one of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"); without one, "sky" (the iOS 26 default) is drawn, in its light or dark version with "theme". "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS 26 does (the newest card, the next one or two as one-line rows under it, the rest counted as "+3 from WhatsApp and Messages"); "list" shows every card.wallpaperZoom· number · optionnel
1 = cover the screen, 2 = twice as close. Default: 1.
Exemple d'appel{"name": "lockscreen_render_video", "arguments": {"notifications": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - lockscreen_screenshot≈ 2318 tokens
Render a single frame of an iOS lock screen with notifications to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the input is invalid, this returns an error result with the validation messages instead of an image. Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a see-through time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video), growing out of the bottom of the screen (or out of the card already there) as on iOS 26; at 0 it is already there. While cards are on screen the lower half of the wallpaper darkens, as on the phone. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). "wallpaper" also takes one of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"); without one, "sky" (the iOS 26 default) is drawn, in its light or dark version with "theme". "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS 26 does (the newest card, the next one or two as one-line rows under it, the rest counted as "+3 from WhatsApp and Messages"); "list" shows every card.
Paramètres, retour & exemple (23)
Paramètresdim· number · optionnel
Black overlay on the wallpaper, 0 to 1. Default: 0.date· string · optionnel
The line above the clock, written as iOS 26 does, e.g. "Tue Oct 6". Default: "Tue Oct 6".time· string · optionnel
The big clock, without AM/PM, e.g. "9:41". Default: "9:41".frame· integer · optionnel
Frame index to capture, at 30 fps (e.g. 30 = one second in). Omit to capture the final frame, with every notification on screen.theme· string · optionnel · light | dark
The phone's appearance: "light" = frosted glass, "dark" = smoked glass, white text on both as on iOS 26; Apple's wallpapers follow it. Default: light.camera· boolean · optionnel
Camera button bottom right. Default: true.sounds· boolean · optionnel
The iOS notification tone when each card lands (video only). Default: true.carrier· string · optionnel
Network name on the left of the status bar. Default: none.display· string · optionnel · list | stack
"list" shows every card, newest on top; "stack" is iOS 26's default fold: the newest card, the next one or two as one-line rows, the rest counted. Default: list.endHold· number · optionnel
Seconds to hold on the last frame after the last card has settled. Default: 2.padlock· boolean · optionnel
Small locked padlock above the date. Default: true.clockSize· number · optionnel
Clock size in points on a 402 pt wide iPhone screen. Default: 100.statusBar· object · optionnel
Right side of the status bar. (The clock there is not shown on a lock screen.)wallpaper· string · optionnel
One of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"), or a full-bleed image: URL or data: URI. Omitted: "sky", the iOS 26 default.clockColor· string · optionnel
Clock colour (CSS colour). Default: "#FFFFFF".flashlight· boolean · optionnel
Flashlight button bottom left. Default: true.wallpaperX· number · optionnel
Where the crop is centred horizontally when the image is not the screen's shape, in % (50 = middle). Default: 50.wallpaperY· number · optionnel
Where the crop is centred vertically, in % (50 = middle). Default: 50.clockWeight· number · optionnel
Clock numeral weight, 100-900. Default: 760.clockOpacity· number · optionnel
How much of the colour fills the Liquid Glass numerals, 0-1; the wallpaper shows through the rest. Default: 0.45.clockStretch· number · optionnel
Vertical stretch of the clock numerals. Default: 1.16.notifications· array · requis
The notifications, 1 to 20, in any order (they land in order of "at", ties keep the written order, and the newest sits on top). Lock screen format (an iOS 26 lock screen with notifications): The video starts on a lock screen (wallpaper, big clock, date, padlock). Like the chat videos, the 9:16 video is the iPhone screen cut below the status bar and above the flashlight and camera buttons. Each notification is a Liquid Glass card from one app (imessage, whatsapp, instagram, chatgpt, claude, reddit, mail, phone, facetime, notes, reminders) with a bold title (usually the sender), a body of up to 4 lines, and a see-through time such as "now" or "2m ago". A card lands at its "at" second (seconds from the start of the video), growing out of the bottom of the screen (or out of the card already there) as on iOS 26; at 0 it is already there. While cards are on screen the lower half of the wallpaper darkens, as on the phone. At least one notification is required. The video ends "endHold" seconds (default 2) after the last card has settled. Wallpaper and avatars are https image URLs or data: URIs (local file paths are not available). "wallpaper" also takes one of Apple's iOS 26 wallpapers by name ("sky", "shadow", "halo", "dusk", "yellow", "pink", "azure", "purple"); without one, "sky" (the iOS 26 default) is drawn, in its light or dark version with "theme". "avatar" on a notification shows the contact's photo with the app icon as a small badge. "display": "stack" folds the cards like iOS 26 does (the newest card, the next one or two as one-line rows under it, the rest counted as "+3 from WhatsApp and Messages"); "list" shows every card.wallpaperZoom· number · optionnel
1 = cover the screen, 2 = twice as close. Default: 1.
Exemple d'appel{"name": "lockscreen_screenshot", "arguments": {"notifications": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - reddit_render_video≈ 1570 tokens
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).
Paramètres, retour & exemple (8)
Paramètrespost· object · optionnel
The post. Use this OR script, not both.speed· number · optionnel
Pacing multiplier; 2 = twice as fast, 0.5 = half speed. Default: 1. Use 1.3-1.5 for a faster reel.theme· string · optionnel · light | dark
Color theme, "light" or "dark". Default: light.script· string · optionnel
Thread 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).endHold· number · optionnel
Seconds to hold on the final frame before the video ends. Default: 2.comments· array · optionnel
Comments 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.statusBar· object · optionnel
Phone status bar shown above the Safari toolbar.subreddit· object · optionnel
The subreddit the thread is posted in.
Exemple d'appel{"name": "reddit_render_video", "arguments": {"post": {}, "speed": 1, "theme": "light", "script": "texte", "endHold": 1, "comments": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - reddit_screenshot≈ 1577 tokens
Render a single frame of a Reddit thread (script, or post+comments) to a PNG and return it as an image. Defaults to the last frame — pass "frame" to capture an earlier moment (30 fps). Returns the PNG as image content, plus a text line with the PNG's URL (expires after 24 hours). If the thread is invalid, this returns an error result with the validation messages instead of an image. 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).
Paramètres, retour & exemple (9)
Paramètrespost· object · optionnel
The post. Use this OR script, not both.frame· integer · optionnel
Frame index to capture, at 30 fps (e.g. 30 = one second in). Omit to capture the final frame of the thread.speed· number · optionnel
Pacing multiplier; 2 = twice as fast, 0.5 = half speed. Default: 1. Use 1.3-1.5 for a faster reel.theme· string · optionnel · light | dark
Color theme, "light" or "dark". Default: light.script· string · optionnel
Thread 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).endHold· number · optionnel
Seconds to hold on the final frame before the video ends. Default: 2.comments· array · optionnel
Comments 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.statusBar· object · optionnel
Phone status bar shown above the Safari toolbar.subreddit· object · optionnel
The subreddit the thread is posted in.
Exemple d'appel{"name": "reddit_screenshot", "arguments": {"post": {}, "frame": 1, "speed": 1, "theme": "light", "script": "texte", "endHold": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».