במקום לערוך וידאו ביד — מתארים אותו ל-Claude, והוא בונה אותו ב-Remotion. וידאו שכתוב ב-React: מתרנדר לבד, ומתעדכן עם הנתונים שלך.
- לבעלי עסקים — סרטונים בסדרה, בלי עורך
- למפתחים — פרומפטים + קוד להעתקה
הבעיה: וידאו לוקח נצח
צריך סרטון קצר לעסק — אינטרו, פרסומת, הסבר. אז או שאתה יושב שעות בתוכנת עריכה, או משלם המון לעורך. וברגע שצריך חמישים גרסאות — אחת לכל מוצר, לכל לקוח, לכל שפה — הכול נופל. אי אפשר לערוך חמישים סרטונים ביד.
והקטע המתסכל: רוב הסרטונים האלה זהים. אותו מבנה, אותה תנועה — רק הטקסט והנתונים משתנים. זה בדיוק מה שמחשב יודע לעשות.
הרעיון: וידאו זה React
Remotion הופך וידאו לקוד: כל סרטון הוא רכיב React. במקום לגרור קליפים על ציר זמן, כותבים רכיב — והוא מצויר מחדש בכל פריים. וכאן הקסם: את הקוד הזה אתה לא צריך לכתוב בעצמך — מתארים את הסרטון ל-Claude במילים, והוא כותב אותו.
מה בונים ככה? המון:
- סרטונים לרשתות בסדרה
- וידאו אישי לכל לקוח
- אנימציות של נתונים וגרפים
- סיכומי שנה בסגנון Wrapped
- גרסאות לקמפיינים
- אינטרו ליוטיוב
- סרטוני הסבר למוצר
- כתוביות לרילסים
בונים תבנית אחת — ומפיקים ממנה אינסוף סרטונים.
עריכה ידנית טובה לסרטון אחד. אבל ברגע שצריך סדרה שמשתנה — וידאו בקוד מנצח בגדול.
- כל סרטון מתחילים מאפס, ידני
- 50 גרסאות = 50 פעמים של עריכה
- כל שינוי קטן — פותחים הכול מחדש
- תלוי שיהיה עורך פנוי
- תבנית אחת — אינסוף גרסאות
- נתונים נכנסים, וידאו יוצא
- משנים במקום אחד — מתעדכן בכולם
- מתרנדר לבד — גם בענן
- כל סרטון מתחילים מאפס, ידני
- 50 גרסאות = 50 פעמים של עריכה
- כל שינוי קטן — פותחים הכול מחדש
- תלוי שיהיה עורך פנוי
- תבנית אחת — אינסוף גרסאות
- נתונים נכנסים, וידאו יוצא
- משנים במקום אחד — מתעדכן בכולם
- מתרנדר לבד — גם בענן
Remotion היא ספרייה ליצירת וידאו ב-React — קהילה גדולה, תיעוד מצוין. חינמית ליחידים ולעסקים עד 3 עובדים; מעבר לזה צריך רישיון חברה בתשלום. והכי חשוב למדריך הזה: Remotion תומכים רשמית ב-Claude Code, עם Skills מוכנים שמלמדים את ה-AI את כל ה-API.
לתיעוד הרשמי של Remotion ל-AI (באנגלית)מה לזכור
- וידאו הוא רכיב React
- מתארים במילים, Claude כותב
- תבנית אחת — אינסוף סרטונים
ככה זה עובד
שש מילים, וכל השיטה מתבהרת. אלה הרכיבים ש-Claude עובד איתם כשהוא כותב לך סרטון — שווה להכיר, כדי לדעת לבקש בדיוק.
קומפוזיציה · Composition
סרטון אחד שאפשר לרנדר. מגדירים לו אורך (בפריימים), קצב (fps) וגודל. כל קומפוזיציה מופיעה כקליפ נפרד ב-Studio.
הפריים הנוכחי · useCurrentFrame
הפעימה של הסרטון. הפונקציה מחזירה באיזה פריים אנחנו עכשיו, וכל התנועה נגזרת ממנה — ככה הרינדור תמיד יוצא זהה.
מיפוי ערכים · interpolate
ממפה טווח של פריימים לטווח של ערך — למשל שקיפות מ-0 ל-1 לאורך 30 הפריימים הראשונים. ככה בונים עמעום, הזזה, הגדלה.
תנועה פיזיקלית · spring
תנועה עם קפיץ טבעי — קפיצה קטנה במקום מעבר חד. זה מה שנותן לאנימציה להרגיש חיה, לא מכנית.
הסטודיו · Remotion Studio
תצוגה חיה בדפדפן: רואים את הסרטון מתעדכן תוך כדי שהקוד נכתב, עם ציר זמן ונגן — בלי לרנדר כלום.
רינדור · render
בלחיצה אחת הקוד הופך לקובץ MP4 אמיתי — מקומית, על שרת משלך, או בענן בקנה מידה גדול.
בלי קסמים: זה לא מחליף בימוי וטעם. מה ש-Remotion נותן זה שליטה מלאה וייצור בסדרה — אתה עדיין מחליט איך הסרטון נראה וזז. וזה בדיוק החלק שהופך אותו לשלך.
בונים את זה — כל הקוד
זה החלק למי שבונה בעצמו (בעלי עסקים — אפשר לדלג ישר לבקשת סרטון). לכל שלב יש פרומפט מוכן להדבקה ב-Claude Code או Codex — וגם קוד אמיתי להעתקה. הפרומפטים באנגלית — ככה התוצאה הכי מדויקת. כפתור ההעתקה מעתיק את הטאב הפתוח.
פתח את 7 השלבים — פרומפט + קוד
1התקנה
מקימים פרויקט Remotion חדש, ומוסיפים את ה-Skills שמלמדים את Claude את ה-API.
Set up a new Remotion video project wired for AI editing:
1. Run: npx create-video@latest — pick the "Blank" template, and
enable TailwindCSS and Skills when prompted.
2. Run: npx skills add remotion-dev/skills — this installs Remotion's
Agent Skills so the coding agent knows Remotion's APIs and conventions.
3. Start Remotion Studio with: npm run dev
Do not build any composition yet — that is the next step.2הקומפוזיציה הראשונה
רושמים Composition ב-Root.tsx — האורך, ה-fps והגודל. ה-defaultProps הם מה שיאפשר בהמשך לרנדר את אותו סרטון עם נתונים שונים.
Create a Remotion composition registered in src/Root.tsx:
- A <Composition> with id "HelloWorld", the HelloWorld component,
durationInFrames 120 (4 seconds), fps 30, width 1920, height 1080.
- Pass defaultProps = { titleText: "שלום עולם" } so the same component
can later be rendered with different data per video.3מנפישים בקוד
כל התנועה נגזרת מ-useCurrentFrame: interpolate ממפה פריימים לערכים, ו-spring נותן קפיצה טבעית. שים לב ל-clamp — ככה הערכים לא בורחים מהטווח.
Create src/HelloWorld.tsx — a centered title that animates in:
- Read the current frame with useCurrentFrame() and fps with useVideoConfig().
- scale: spring({ fps, frame, config: { damping: 200 } }) for a natural pop.
- opacity: interpolate(frame, [0, 30], [0, 1], { extrapolateRight: "clamp" }).
- Render an <h1> with transform: scale(...) and the opacity.
Animate everything off useCurrentFrame so the render stays deterministic.4סצנות על ציר הזמן
Sequence מזיז כל סצנה למקום שלה על ציר הזמן — לפי פריימים. ככה מרכיבים סרטון שלם מכמה חלקים.
Create src/MyVideo.tsx that lays out two scenes on the timeline using
<Sequence>:
- Scene 1: frames 0-60, <HelloWorld titleText="שלום" />.
- Scene 2: starts at frame 60 (from={60}), durationInFrames 60,
<HelloWorld titleText="עולם" />.
Wrap both in an <AbsoluteFill> with a dark background. Update the
composition's durationInFrames to 120 to fit both scenes.5נתונים → וידאו
כאן נכנס הכוח האמיתי: אותה קומפוזיציה, נתונים שונים. מעבירים props שונים לכל רינדור — ומקבלים סרטון אישי לכל לקוח, בלולאה.
Make the video data-driven so I can mass-produce personalized variants:
- The composition already takes titleText via props (defaultProps).
- Show me the CLI command to render the same composition with different
props per output file, using --props with a JSON string.
- Then show a tiny Node script using renderMedia from @remotion/renderer
that loops over an array of names and renders one MP4 per name.6מבקשים מ-Claude לבנות סרטון
זה הלב: Studio רץ ברקע, ובטרמינל נפרד מתארים סרטון שלם ל-Claude — הוא כותב את הקוד, ורואים את התוצאה חיה תוך שניות.
Create a new Remotion composition called "Promo" (1080x1920, 30fps,
5 seconds) for a brand promo:
- Scene 1 (frames 0-45): the logo springs in from scale 0 and fades in.
- Scene 2 (frames 45-150): the headline types in word by word, then a
lime CTA bar slides up from the bottom.
- Animate everything off useCurrentFrame() with interpolate + spring, and
clamp every interpolate range.
- This is Hebrew/RTL: set direction "rtl" and textAlign "right", and load
a Hebrew font (e.g. via @remotion/google-fonts).
- Register the composition in Root.tsx and show it in Studio.
- Keep a CLAUDE.md documenting the aspect ratio, scenes, timing and brand
colors so future edits stay consistent.7רינדור (Render)
בלחיצה אחת הקוד הופך לקובץ MP4. בקנה מידה גדול מרנדרים בענן עם @remotion/lambda — מהיר ותשלום לפי רינדור.
Render the finished video to an MP4:
1. Show the CLI command: npx remotion render <composition-id> to an
out/ file.
2. Explain the two paths beyond the CLI: @remotion/renderer (renderMedia)
for rendering on my own server, and @remotion/lambda
(renderMediaOnLambda) for fast, scalable, pay-per-render cloud renders.מה שלמדתי: וידאו בקוד
חמישה דברים שכדאי לדעת לפני שמתחילים — הם ההבדל בין סרטון שעובד לבין וידאו שמהבהב:
הכול נמדד בפריימים
הזמן ב-Remotion הוא פריימים, לא שניות. שתי שניות זה 2 × fps פריימים. חושבים בפריימים, וממירים דרך ה-fps.
כל רינדור חייב לצאת זהה
כל אנימציה נגזרת מ-useCurrentFrame בלבד. בלי Date.now() ובלי Math.random() — אחרת כל פריים יוצא אחר, והכול מתחיל להבהב.
תמיד clamp על interpolate
בלי extrapolateLeft/Right: clamp הערכים ממשיכים מעבר לטווח — שקיפות שוברת את ה-1, אובייקטים בורחים מהמסך. clamp עוצר אותם.
עברית צריכה כיוון ופונט
ברירת המחדל של Remotion היא LTR ויישור לשמאל. לסרטון עברי קובעים direction: rtl ויישור לימין, וטוענים פונט עברי במפורש — אחרת גם הכתוביות מתהפכות.
לשים לב לרישיון
Remotion חינמית ליחידים ולעסקים עד 3 עובדים. עסק עם 4 עובדים ומעלה צריך רישיון חברה בתשלום — שווה לבדוק לפני שבונים על זה בעסק.
אופציונלי: עובדים עם Claude Code או Codex? הדביקו את זה פעם אחת — והכללים האלה ייכנסו לזיכרון הקבוע של הפרויקט. מעכשיו ה-AI יישם אותם לבד, בכל סרטון שהוא בונה.
Add a "Remotion rules" section to my project memory file (CLAUDE.md -- or
AGENTS.md if this project uses Codex). Create the file if it does not exist.
The rules:
1. Always animate off useCurrentFrame(). Never use Date.now() or
Math.random() in a composition -- renders must be deterministic so every
frame is reproducible.
2. Timing is in FRAMES, not seconds. Convert with fps from useVideoConfig()
(e.g. 2 seconds = 2 * fps frames).
3. Wrap every interpolate() with extrapolateLeft/Right: "clamp" so values
never overshoot past their range.
4. Hebrew/RTL videos: set direction "rtl" and textAlign "right", and load a
Hebrew font explicitly -- Remotion defaults to LTR, left-aligned, and
auto-captions can render reversed.
5. Lay scenes out on the timeline with <Sequence from=... durationInFrames=...>.
6. Keep this file updated with the aspect ratio, scene breakdown, timing and
brand colors so edits stay consistent.