The person gives a Sefaria link: a topic page (/topics/parashat-…), a text
(/Genesis.25.19) or a sheet. You deliver a ~60 s narrated, animated video that retells
it, with every claim traceable to a source on that page, in a visual style the person
picks. One 16:9 file by default; ask about 9:16.
Shape: 60 s, about 11 shots of 4–8 s, one narrator, about 150–165 words. Model spend is about $7.50: cast $0.30, stills $0.80, animation $6, voice and music $0.50.
Steps
- Read the source. Sefaria's pages are drawn in the browser, so reading the page
address as text returns only "Loading…". Sefaria publishes the same public texts
at read-only addresses that return plain text; read those with your web-reading
tool (nothing is downloaded or run):
- A topic:
sefaria.org/api/v2/topics/<slug>?with_refs=1&with_links=0lists the topic's description and its curated "notable sources" with their titles. - One text:
sefaria.org/api/v3/texts/<Ref>?version=english(spaces as_, verse as., e.g.Bereshit_Rabbah.63.6). Read every source you'll cite in full, not just its title. Write the list, with refs, tosource/sefaria-sources.md. Check the date. If the person says "this week's parsha", work out which portion is read this Shabbat; if the link is to a different one, say so and ask which they want before writing.
- A topic:
- Script. One line per shot: a hook in the first line (a conflict or a surprise), then the portion's story in order, with the commentaries woven in by name ("The midrash says…", "Rashi says…", "Rabbi Sacks notes…"), and a closing line (e.g. "Shabbat shalom"). Quote verses exactly; paraphrase commentary faithfully; add nothing the sources don't say. A table per shot: picture, narration, source. God never appears as a figure: use light, stars, sky. Gate: the script, the folder and the aspect, in chat.
- Style. Ask, never default. Offer three or four looks as outcomes, for example claymation (handmade 3D clay miniature, tilt-shift), paper-cut stop-motion, watercolour storybook, 2D hand-drawn animation, or the person's own idea. Once they name one, write ONE style line and keep it identical in every image prompt. If they're unsure, render the cast lineup (step 4) in two styles and let them choose on the picture.
- Cast. One lineup still of every recurring character, full body, side by side
on a plain backdrop, nano banana 2.1 text-to-image, 16:9 2K,
num_images: 2(nano-banana-prompt-format): age, hair, skin, clothing, one prop each, in the chosen style. Make paired characters (twins, rivals) clearly different at a glance. Gate:review_choose. If the person wants to play a character themselves, ask them for a clear, front-facing photo of themselves, and edit ONLY that figure with nano banana 2.1 edit (image 1 the lineup, image 2 their photo: "use it ONLY for the face and hair"), offering a variant or two (e.g. with or without glasses). The picked lineup is the cast reference for every shot. - Stills, all at once. One nano banana 2.1 edit per shot, the lineup as image 1:
"use it ONLY for the art style and for the faces, hair, bodies and costumes of
<names, by position>. Do not copy its backdrop or lineup pose." Then the style
line, the camera, each figure's pose and gaze, "Mouths closed", "No text, no
logos." Put all on a contact sheet and check them. Gate:
review_approvewith each still as an item and its narration line as text. - Animate one, then the rest (
h3-max-image-to-video,h3-prompt-format): 768P, seed fixed, the medium named first ("3D CG claymation", "paper-cut stop-motion animation", "2D hand-drawn animation"), big counted motion, lips closed, "stays exactly the same colours from the first frame to the last", and for stop-motion styles "Slightly stepped, handmade stop-motion movement". Duration per shot from its line at2.5 words/s plus 0.5 s (4–8 s). Render shot 1 ($0.45). Gate: a yes on its motion. Then all others in parallel. Pull frame strips and check each. - Voice (
guide-cast-a-voice): ask whether the person wants their own voice or a library voice. If they leave it to you, search the ElevenLabs library forstorytellerwithuse_cases=narrative_story, keep v4-verified voices, and pick a warm, conversational one. Voice the whole script in one with-timestamps call (eleven_v4,pcm_48000, one bracketed direction tag per line, lines separated by blank lines). From the alignment, take each line's spoken start and end (skip the[tag]characters). If the take runs over ~62 s, speed it withatempoup to 1.1 (pitch kept) and divide every time by the same factor. - Music (
elevenlabs-generate-music): two composition plans with sections laid on the story's turns (mystery, story, tender, tension, resolution), no vocals, in two different flavours (e.g. a regional folk instrument bed and a whimsical film-score bed), the length of the cut. - Cut (ffmpeg, one filter graph written into a file and passed with
-/filter_complex <file>): each shot from its line's start to the next line's start (shot 1 from 0, the last to the final word plus ~1.3 s), stretched withsetptsonly if the clip is short, scaled to 1920×1080 lanczos, clips' own sound at 0.18; then the voice, the bed at about 0.4 ducked withsidechaincompresskeyed on the voice, a 2 s fade at the end, loudness -16 LUFS / -1.5 dBTP. Make one cut per bed. Check: loudness measured, and awhisper-clitranscript of the mix has every word. Gate:review_choosebetween the two cuts (that picks the music); the brief asks whether they want a title card or on-screen source credits (guide-add-titles-and-motion-graphics). No note means it's final. - Deliver the picked cut into
rev1/withdeliver.
Choices this workflow makes
- The style is the person's. Ask in step 3 and show it on the cast before any shot is drawn.
- Sources first. Every line traces to a curated source on the page; name the commentator on screen or in the voice.
- One lineup as the reference for every still: faces and costumes hold across shots without per-character sheets.
- Shots cut on the voice's own line starts, so picture and narration never drift.
Dead ends
- Reading the Sefaria page address itself: it returns only "Loading…". Use the plain-text addresses in step 1.
- Trusting "this week" from a link: a link to Emor in November was not this week's portion. Check the calendar.
-filter_complex_scriptis gone in current ffmpeg: use-/filter_complex <file>.- A nano banana still of a bowl of "red lentil stew" read as red berries; say "thick, smooth, orange-red lentil stew, like a purée" if it matters.
- A character facing the camera in a "walks away" still: H3 turned him round within 1 s, so it can be fixed in motion rather than redrawn.
- Review cards don't always appear: if the person can't see one, ask in chat and
record the answer with
answered.


