conductor(cs229): Phase 4 Synthesis - report.md (1,157 lines, 100KB) + summary.md (364 words) + transcript_clean.txt
Deep-dive report covers all 8 sections per umbrella spec FR6: - TL;DR: 6-pillar LLM training framework - Key Concepts: 31 numbered concepts - Frame Analysis: 115 frames organized by topic - Transcript Highlights: 18 verbatim passages with timestamps - Mathematical Content: 14 formal derivations - Connections: forward refs to all 11 other videos - Open Questions: 14 questions for Pass 2 - References: people, courses, papers, resources Plus 11 appendices (A-O): full transcript sections, frame inventory, OCR reference, Q&A log, glossary, cross-references, future work. Lossless preservation per umbrella spec §0: report preserves all 5397 transcript timestamps, 28KB OCR text, 115 frames, math derivations, cross-references. R5 mitigation verified (yt-dlp works despite oEmbed 401). Report is 1,157 lines / 102KB - within 1000-10000 LOC target per user directive 2026-06-21.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
"""Phase 2 Keyframes driver for video_analysis_cs229_building_llms_20260621.
|
||||
|
||||
Invokes extract_keyframes + manual review note for child #1.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[4]
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from scripts.video_analysis.extract_keyframes import extract_keyframes
|
||||
|
||||
ARTIFACTS = ROOT / "conductor" / "tracks" / "video_analysis_cs229_building_llms_20260621" / "artifacts"
|
||||
VIDEO = ARTIFACTS / "video.mp4"
|
||||
FRAMES = ARTIFACTS / "frames"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
print(f"Phase 2 Keyframes for {VIDEO}")
|
||||
FRAMES.mkdir(parents=True, exist_ok=True)
|
||||
result = extract_keyframes(VIDEO, FRAMES, threshold=0.4)
|
||||
if result.is_err():
|
||||
print(f" ERR: {result.err.class_name}: {result.err.detail[:300]}")
|
||||
return 1
|
||||
print(f" OK: kept {result.value['kept']} frames (from {result.value['meta']['total_extracted']} extracted)")
|
||||
print(f" meta: {FRAMES / 'extraction_meta.json'}")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -0,0 +1,35 @@
|
||||
"""Phase 3 OCR driver for video_analysis_cs229_building_llms_20260621.
|
||||
|
||||
Invokes ocr_frames with winsdk backend on the extracted keyframes.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[4]
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
from scripts.video_analysis.ocr_frames import ocr_frames
|
||||
|
||||
ARTIFACTS = ROOT / "conductor" / "tracks" / "video_analysis_cs229_building_llms_20260621" / "artifacts"
|
||||
FRAMES = ARTIFACTS / "frames"
|
||||
OUTPUT = ARTIFACTS / "ocr.md"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
print(f"Phase 3 OCR for {FRAMES} (winsdk backend)")
|
||||
t0 = time.time()
|
||||
result = ocr_frames(FRAMES, OUTPUT, backend="winsdk")
|
||||
elapsed = time.time() - t0
|
||||
if result.is_err():
|
||||
print(f" ERR: {result.err.class_name}: {result.err.detail[:300]}")
|
||||
return 1
|
||||
print(f" OK: OCR'd {result.value['frames_ocrd']} frames in {elapsed:.1f}s ({elapsed/max(1,result.value['frames_ocrd']):.2f}s/frame)")
|
||||
print(f" output: {OUTPUT} ({OUTPUT.stat().st_size} bytes)")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user