Communitygithub.com

ever-just/agentskills

Füge animierte Untertitel und Bildunterschriften zu Remotion-Videos aus .SRT-Dateien hinzu. TikTok-ähnliche Wort-für-Wort-Hervorhebungen, Karaoke-Effekte und mehr.

Was ist agentskills?

Diese Fertigkeit ermöglicht es KI-Agenten (z. B. Claude Code, Cursor), animierte Untertitel und Bildunterschriften in Remotion-Videoprojekte zu integrieren. Sie unterstützt den Import von SRT-Untertiteldateien und bietet umfangreiche Styling-Optionen sowie Effekte wie Wort-für-Wort-Hervorhebungen im TikTok-Stil und Karaoke-Animationen. Die Fertigkeit ist als TypeScript/React-Bibliothek (`npm install remotion-subtitles`) implementiert und erfordert ein bestehendes Remotion-Projekt. Entwickler können entweder SRT-Dateien einlesen oder Untertitel manuell mit Start- und Endframes definieren. Die bereitgestellten Code-Beispiele zeigen die einfache Integration und Anpassung der Untertitel, einschließlich bewährter Praktiken für Positionierung, Schriftgröße und Animation, um eine professionelle Videogestaltung zu gewährleisten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ever-just/agentskills/tree/HEAD/skills/remotion-captions

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Remotion Captions — Animierte Untertitel für Videos

Füge animierte Untertitel und Bildunterschriften zu Remotion-Videos aus .SRT-Dateien hinzu. TikTok-ähnliche Wort-für-Wort-Hervorhebungen, Karaoke-Effekte und mehr.

Übersicht

  • Repository: github.com/ahgsql/remotion-subtitles
  • Sprache: TypeScript / React
  • Lizenz: Open Source
  • Installation: npm install remotion-subtitles
  • Erfordert: Remotion-Projekt

Einrichtung

npm install remotion-subtitles

Grundlegende Verwendung

Aus SRT-Datei

import { useSubtitles, SubtitleSequence } from "remotion-subtitles";

export const CaptionedVideo: React.FC = () => {
  const subtitles = useSubtitles("./subtitles.srt");

  return (
    <AbsoluteFill>
      <Video src={staticFile("video.mp4")} />
      <SubtitleSequence subtitles={subtitles} />
    </AbsoluteFill>
  );
};

SRT-Format

1
00:00:00,000 --> 00:00:02,500
Willkommen bei Custom Agents

2
00:00:02,500 --> 00:00:05,000
Die KI-gestützte E-Mail-Plattform

3
00:00:05,000 --> 00:00:08,000
die deinen Posteingang automatisch verwaltet

Untertitel gestalten

<SubtitleSequence
  subtitles={subtitles}
  style={{
    position: "absolute",
    bottom: 80,
    left: 0,
    right: 0,
    textAlign: "center",
    fontSize: 42,
    fontWeight: "bold",
    color: "white",
    textShadow: "2px 2px 8px rgba(0,0,0,0.8)",
    fontFamily: "Inter, sans-serif",
  }}
/>

Wort-für-Wort-Hervorhebung (TikTok-Stil)

import { useCurrentFrame, interpolate } from "remotion";

export const WordHighlightCaption: React.FC<{
  words: { text: string; startFrame: number; endFrame: number }[];
}> = ({ words }) => {
  const frame = useCurrentFrame();

  return (
    <div style={{
      position: "absolute",
      bottom: 100,
      width: "100%",
      textAlign: "center",
      display: "flex",
      justifyContent: "center",
      gap: 8,
      flexWrap: "wrap",
      padding: "0 60px",
    }}>
      {words.map((word, i) => {
        const isActive = frame >= word.startFrame && frame <= word.endFrame;
        const scale = isActive
          ? interpolate(frame, [word.startFrame, word.startFrame + 3], [1, 1.15], { extrapolateRight: "clamp" })
          : 1;

        return (
          <span
            key={i}
            style={{
              fontSize: 48,
              fontWeight: 800,
              color: isActive ? "#FFD700" : "white",
              textShadow: isActive
                ? "0 0 20px rgba(255,215,0,0.5)"
                : "2px 2px 4px rgba(0,0,0,0.8)",
              transform: `scale(${scale})`,
              transition: "color 0.1s",
              display: "inline-block",
            }}
          >
            {word.text}
          </span>
        );
      })}
    </div>
  );
};

Manuelle Untertitelzeitsteuerung

Falls keine SRT-Datei vorhanden ist, können Untertitel manuell definiert werden:

const captions = [
  { text: "Willkommen bei Custom Agents", startFrame: 0, endFrame: 75 },
  { text: "KI-gestützte E-Mail-Automatisierung", startFrame: 80, endFrame: 150 },
  { text: "Erstelle Agenten in Minuten", startFrame: 155, endFrame: 240 },
];

export const ManualCaptions: React.FC = () => {
  const frame = useCurrentFrame();

  const current = captions.find(
    (c) => frame >= c.startFrame && frame <= c.endFrame
  );

  if (!current) return null;

  const progress = interpolate(
    frame,
    [current.startFrame, current.startFrame + 10],
    [0, 1],
    { extrapolateRight: "clamp" }
  );

  return (
    <div style={{
      position: "absolute",
      bottom: 80,
      width: "100%",
      textAlign: "center",
      opacity: progress,
      transform: `translateY(${(1 - progress) * 10}px)`,
    }}>
      <span style={{
        fontSize: 44,
        fontWeight: 700,
        color: "white",
        backgroundColor: "rgba(0,0,0,0.6)",
        padding: "8px 24px",
        borderRadius: 8,
      }}>
        {current.text}
      </span>
    </div>
  );
};

Bewährte Praktiken

  1. Position unten — Standardplatzierung von Untertiteln ist unten mittig
  2. Kontrast verwenden — Weißer Text mit dunklem Schatten oder halbtransparentem Hintergrund
  3. Große Schrift — Mindestens 40-50px für Lesbarkeit im Video
  4. Kurze Phrasen — Maximal 2 Zeilen, 6-8 Wörter pro Untertitel
  5. Zeitpuffer — Untertitel 2-3 Frames vor dem Audio beginnen
  6. Animation beim Einblenden — Sanftes Ein-/Ausblenden, keine Animation beim Ausblenden
  7. Fette Schriftstärke — Schriftstärke 700+ für Lesbarkeit im Video

Quelle

  • remotion-subtitles: github.com/ahgsql/remotion-subtitles
  • Remotion Audiogram-Vorlage: github.com/remotion-dev/template-audiogram

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

ever-just/agentskills

> Declarative animations for React. Springs, gestures, layout animations, and page transitions. GPU-accelerated, production-ready.

ever-just/agentskills

> Create animated logos, icons, and micro-interactions as lightweight Lottie JSON files. No After Effects needed — build animations entirely in code.

ever-just/agentskills

> A TypeScript library using generators to program animations with a real-time editor. Ideal for explainer videos, code walkthroughs, and educational content.

ever-just/agentskills

> Create videos programmatically using React components. The most mature framework for code-driven video production.

ever-just/agentskills

> Copy-paste video components for Remotion. Intros, text effects, transitions, and full scene templates. Like shadcn/ui but for video.

ever-just/agentskills

Extract actionable intelligence from video content across YouTube, Vimeo, and company websites. Video reveals what text sources cannot: facility scale, team composition, product demonstrations, signage, event attendance, and operational reality.

ever-just/agentskills

Optimize and embed an existing video as a fast, crisp, autoplaying hero/background/loop on a website. Use when adding or replacing a video on a marketing site and it is too heavy, will not autoplay (especially on mobile/Safari), shows a codec error, or looks soft — to transcode it to web-safe H.264 with the right pixel format, faststart, retina-aware sizing, and a poster frame, then embed and verify it actually plays. This is optimization + embedding of footage you already have, not creating/animating a video (for that use remotion/moviepy/motion-canvas). Use when the user says "add this video to the site", "the hero video is too big / won't play / isn't crisp", "replace the homepage video", or "make this loop on the landing page".

ever-just/agentskills

Full conversion audit for any homepage or landing page. Use when someone asks to "review my homepage," "audit my landing page," "why isn't my page converting," "check my website," or wants feedback on their marketing page. Requires URL or screenshot before proceeding.

ever-just/agentskills

Automatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and provides metadata, key insights, and downloadable transcripts.

Verwandte Skills