From 7f9f8e33954711426f909c3666054a8ecc426265 Mon Sep 17 00:00:00 2001 From: jenstandstad Date: Tue, 14 Jul 2026 21:17:02 +0200 Subject: [PATCH] Removing some files --- all.sh | 9 - notes.json | 0 tasks.md | 476 ----------------------------------------------------- 3 files changed, 485 deletions(-) delete mode 100755 all.sh delete mode 100644 notes.json delete mode 100644 tasks.md diff --git a/all.sh b/all.sh deleted file mode 100755 index cc88c70..0000000 --- a/all.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -./gnommo.sh -p video1 all --force --prod -./gnommo.sh -p video2 all --force --prod -./gnommo.sh -p video3 all --force --prod -./gnommo.sh -p video4 all --force --prod -./gnommo.sh -p video5 all --force --prod -#./gnommo.sh -p video6 all --force - diff --git a/notes.json b/notes.json deleted file mode 100644 index e69de29..0000000 diff --git a/tasks.md b/tasks.md deleted file mode 100644 index c79d59d..0000000 --- a/tasks.md +++ /dev/null @@ -1,476 +0,0 @@ -# Gnommo Feature Development Roadmap - -## Overview -Features to standardize the Keynote-to-YouTube workflow, so that once the presentation is complete, only a standardized recording session stands between you and a finished video. - ---- - -## 1. Video Description Generator - -**Command:** `gnommo -p description` - -Generate a complete YouTube description with citations, attributions, and chapters. - ---- - -### 1.1 Manuscript Citations (`[cite:...]`) - -Citations embedded in the manuscript represent sources, references, or links mentioned during narration. The text after `cite:` is the **literal reference** that should appear in the description. - -**Format in manuscript.txt:** -``` -[cite:Reference text exactly as it should appear] -``` - -**Examples:** -``` -[S3] -According to this study [cite:Smith et al. (2024) "Effects of AI on Productivity" - https://example.com/paper], -the effect is significant. - -[S7] -I'm using [cite:Keynote by Apple - https://apple.com/keynote] for all my presentations. - -[S12] -This technique was pioneered by [cite:Dr. Jane Doe, MIT Media Lab]. -``` - -**Output in description:** -``` -SOURCES & REFERENCES -━━━━━━━━━━━━━━━━━━━━ -1:23 - Smith et al. (2024) "Effects of AI on Productivity" - https://example.com/paper -4:56 - Keynote by Apple - https://apple.com/keynote -8:30 - Dr. Jane Doe, MIT Media Lab -``` - -**Requirements:** -- Parse `[cite:...]` markers from manuscript.txt -- Extract the literal text after `cite:` as the reference -- Align citations to timestamps (same fuzzy matching as other markers) -- Group citations in order of appearance -- Citations are NOT aligned for rendering (ignored by renderer) but ARE timestamped for description - -**Note:** `[cite:...]` markers should not affect video rendering or narration alignment - they are metadata-only markers for description generation. - ---- - -### 1.2 Pexels/Stock Footage Attribution - -Attribution for Pexels content is **not legally required** but is appreciated and professional. - -**Official Pexels attribution format:** -``` -by [Contributor Name] via Pexels -``` - -**Implementation:** -- Extend `videos.json` to include attribution metadata: - ```json - { - "beach_waves": { - "source_file": "pexels/beach.mp4", - "is_shared": true, - "attribution": { - "source": "pexels", - "creator": "John Doe", - "url": "https://pexels.com/video/12345" - } - } - } - ``` -- Auto-detect Pexels videos from `shared_assets/pexels/` folder -- Support Pexels metadata JSON files (if downloaded with video) -- Generate attribution section for video description: - ``` - STOCK FOOTAGE - ━━━━━━━━━━━━━ - Beach waves by John Doe via Pexels: https://pexels.com/video/12345 - City timelapse by Jane Smith via Pexels: https://pexels.com/video/67890 - ``` - -**Pexels License Notes** (from pexels.com/license): -- Free for personal and commercial use -- Attribution not required but appreciated -- Cannot sell unaltered copies -- Cannot redistribute on other stock platforms - -### 1.3 Complete Description Output - -**Output file:** `out/description_youtube.txt` - -Combine all elements into a ready-to-paste YouTube description. - -**Structure:** -``` -[Video description from project.json "description" field] - -CHAPTERS -━━━━━━━━ -0:00 Introduction -1:23 Topic One -3:45 Topic Two -... - -REFERENCES -━━━━━━━━━━ -1:23 - Smith et al. (2024) "AI Study" - https://example.com -4:56 - Keynote by Apple - https://apple.com/keynote -... - -STOCK FOOTAGE -━━━━━━━━━━━━━ -Beach waves by John Doe via Pexels: https://pexels.com/video/12345 -... - -[Optional footer from project.json "footer" field - social links, subscribe CTA, etc.] -``` - -**project.json additions:** -```json -{ - "description": "In this video, I walk through the complete Gnommo workflow for creating YouTube videos from Keynote presentations.", - "footer": "Subscribe for more tutorials: https://youtube.com/@channel\nTwitter: https://twitter.com/handle" -} -``` - -**Requirements:** -- Pull video description from `project.json` "description" field -- Generate chapters from slide markers (see Section 2) -- Collect all `[cite:...]` references with timestamps -- Collect all Pexels/stock attributions from `videos.json` -- Append optional footer from `project.json` "footer" field -- Output to `out/description_youtube.txt` -- Sections with no content are omitted (e.g., no STOCK FOOTAGE section if none used) - ---- - -## 2. YouTube Chapter Markers - -**Command:** `gnommo -p chapters` - -Auto-generate chapter timestamps from slide markers. - -**Requirements:** -- Extract chapter titles from: - - Keynote slide titles (via presenter notes import) - - First sentence after each `[SN]` marker - - Optional `[chapter:Title]` markers for explicit chapter names -- Calculate timestamps from aligned marker timings -- Output copy-paste ready format: - ``` - CHAPTERS - ━━━━━━━━ - 0:00 Introduction - 1:23 What is Gnommo? - 3:45 Setting Up Your Project - 7:12 Recording Tips - 10:30 Rendering Your Video - 12:45 Outro - ``` -- Option to merge small chapters (minimum duration threshold) -- Support for nested chapters (main topics + subtopics) - ---- - -## 3. Subtitle/Caption Export - -**Command:** `gnommo -p subtitles` - -Generate subtitle files from Whisper transcription. - -**Requirements:** -- Export formats: SRT, VTT, TXT -- Use existing word-level timestamps from transcription -- Smart line breaking (max characters per line, break at punctuation) -- Speaker diarization support (future: multiple speakers) -- Options: - - `--format srt|vtt|txt` - - `--max-chars 42` (characters per line) - - `--max-duration 5` (seconds per subtitle block) - -**Example output (SRT):** -``` -1 -00:00:01,500 --> 00:00:04,200 -Hello and welcome to this tutorial -on video editing with Gnommo. - -2 -00:00:04,500 --> 00:00:07,800 -Today we're going to cover -the complete workflow. -``` - ---- - -## 4. Thumbnail Generation - -**Command:** `gnommo -p thumbnail` - -Auto-generate thumbnail candidates from slides. - -**Requirements:** -- Designate thumbnail slides with `[thumbnail]` marker -- If no marker, use slide 1 or title slide -- Apply text overlays from config: - ```json - { - "thumbnail": { - "title_text": "Episode ${episode_number}", - "subtitle_text": "${title}", - "font": "Impact", - "text_color": "#FFFFFF", - "outline_color": "#000000", - "position": "bottom-left" - } - } - ``` -- Generate multiple variants: - - With/without text overlay - - Different zoom levels - - Different color treatments (saturated, high contrast) -- Output to `out/thumbnails/` folder -- Resolution: 1280x720 (YouTube standard) - ---- - -## 5. Intro/Outro Templates - -**Configuration in project.json:** -```json -{ - "intro": { - "template": "templates/intro_v2.mp4", - "duration": 3.5, - "transition": "fade", - "variables": { - "episode_number": "12", - "title": "Getting Started with Gnommo" - } - }, - "outro": { - "template": "templates/outro_subscribe.mp4", - "duration": 8.0, - "transition": "fade" - } -} -``` - -**Requirements:** -- Define intro/outro templates in `shared_assets/templates/` -- Auto-prepend intro before first slide -- Auto-append outro after last slide -- Support variable substitution in templates (episode number, title) -- Configurable transition types (fade, cut, wipe) -- End screen safe zone support (last 20 seconds) - ---- - -## 6. Multi-Platform Format Presets - -**Command:** `gnommo -p render --format ` - -**Presets:** -| Preset | Aspect | Resolution | Notes | -|--------|--------|------------|-------| -| `youtube` | 16:9 | 1920x1080 | Default, standard horizontal | -| `youtube-4k` | 16:9 | 3840x2160 | 4K export | -| `shorts` | 9:16 | 1080x1920 | Vertical, auto-reframe slides | -| `podcast` | - | Audio only | MP3/M4A export for podcast feeds | -| `square` | 1:1 | 1080x1080 | Instagram/LinkedIn | - -**Requirements:** -- Auto-adjust cutout positions per format -- Smart slide reframing for vertical (zoom to content area) -- Separate output folders per format -- Batch export to multiple formats: `--format youtube,shorts,podcast` - ---- - -## 7. Teleprompter Script Generation - -**Command:** `gnommo -p teleprompter` - -Extract clean narration text for teleprompter display. - -**Requirements:** -- Strip all markers from manuscript -- Keep only spoken text -- Output formats: - - `--format txt` - Plain text - - `--format html` - Scrollable HTML page with large font - - `--format json` - For teleprompter apps -- Optional: Include slide thumbnails as visual cues -- Configurable font size and scroll speed hints - -**Example HTML output:** -```html -
-

[SLIDE: Introduction]

-

Hello and welcome to this tutorial on video editing with Gnommo.

-

[SLIDE: What is Gnommo?]

-

Gnommo is a code-first video editing pipeline...

-
-``` - ---- - -## 8. Recording Checklist Generator - -**Command:** `gnommo -p checklist` - -Generate a pre-recording checklist based on project configuration. - -**Output includes:** -- [ ] Camera settings (resolution, fps from project.json) -- [ ] Lighting setup (if green screen detected in videos.json) -- [ ] Audio check (microphone levels) -- [ ] Props/demos needed (parsed from `[video:...]` markers) -- [ ] Slide count and estimated duration -- [ ] Teleprompter ready -- [ ] Recording space clear - -**Customizable via `checklist_template.md` in project folder.** - ---- - -## 9. Audio Normalization - -**Automatic during render or standalone command:** -`gnommo -p normalize` - -**Requirements:** -- Target: -14 LUFS (YouTube standard) -- Apply loudness normalization to narration track -- Preserve dynamic range (avoid over-compression) -- Normalize intro/outro audio to match -- Option: `--target-lufs -14` - -**Implementation:** -- Use FFmpeg `loudnorm` filter -- Two-pass normalization for accurate results -- Report before/after levels - ---- - -## 10. Project Templates - -**Command:** `gnommo init --template