Skip to content

feat: video intro and watermark for source attribution#13

Merged
Mapleeeeeeeeeee merged 1 commit into
mainfrom
feat/openrouter-and-translation-strategy
May 13, 2026
Merged

feat: video intro and watermark for source attribution#13
Mapleeeeeeeeeee merged 1 commit into
mainfrom
feat/openrouter-and-translation-strategy

Conversation

@Mapleeeeeeeeeee
Copy link
Copy Markdown
Owner

Summary

  • Add a 5-second cinematic intro to burned videos attributing the original creator (channel name, video title, URLs, bilingual copyright notice with fade-in animation)
  • Add persistent top-right watermark (Source: {channel}) throughout the main video
  • Graceful degradation: intro/concat failures silently fall back to subtitle-only output
  • Skipped automatically for local file uploads; non-YouTube sources omit channel URL

Changes

  • VideoMetadata / Job: new channel, channel_url, video_fps fields
  • ffmpeg.py: generate_intro(), concat_videos(), watermark_text param on burn_subtitles, extracted _run_ffmpeg_with_progress() helper
  • pipeline.py: intro + concat orchestration in run_burn() with two-stage degradation
  • 190 unit tests passing, 2 rounds of code review + test review completed

Test plan

  • Unit tests for FFmpeg command construction (watermark, intro, concat)
  • Unit tests for pipeline orchestration (channel present/absent, degradation)
  • E2E test with real YouTube video (3Blue1Brown, 30s clip → 35s final with intro)
  • Visual verification of intro layout and watermark visibility

🤖 Generated with Claude Code

Add a cinematic intro (5s) and persistent top-right watermark to burned
videos, attributing the original creator. The intro displays channel name,
video title, URLs, and a bilingual copyright notice with staged fade-in
animation. Skipped automatically for local file uploads.

- Extend VideoMetadata/Job with channel, channel_url, video_fps fields
- Add generate_intro() using FFmpeg lavfi color + multi-layer drawtext
- Add concat_videos() using FFmpeg concat demuxer (stream copy)
- Add watermark drawtext to burn_subtitles via watermark_text param
- Graceful degradation: intro/concat failures fall back to subtitle-only
- Extract _run_ffmpeg_with_progress() to eliminate subprocess duplication
- 190 unit tests, 0 regressions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Mapleeeeeeeeeee Mapleeeeeeeeeee merged commit 6892e47 into main May 13, 2026
2 of 3 checks passed
@Mapleeeeeeeeeee Mapleeeeeeeeeee deleted the feat/openrouter-and-translation-strategy branch May 13, 2026 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant