{
  "project_id": "24052026-001-Ly-Thuong-Kiet",
  "series": "Việt Sử Kể Lại",
  "title": "Lý Thường Kiệt là ai? Vị danh tướng làm nên bản tuyên ngôn độc lập bằng thơ của Đại Việt",
  "working_title_plan": "Lý Thường Kiệt: Vị Tướng Khiến Nhà Tống Phải Khiếp Sợ",
  "main_character": "Lý Thường Kiệt",
  "scene_count": 199,
  "character_ref_count": 0,
  "image_count": 199,
  "audio_count": 199,
  "render_part_count": 8,
  "durations": {
    "master_audio_sec": 1043.3,
    "main_sec": 1044.383,
    "intro_sec": 16.939,
    "outro_sec": 26.734,
    "final_sec": 1088.034,
    "final_video_stream_sec": 1088.033333,
    "final_audio_stream_sec": 1087.615
  },
  "paths": {
    "project": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet",
    "source_script": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/script/source_story.txt",
    "scene_plan": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/script/scenes.json",
    "dense_plan": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/script/scenes.json",
    "scene_validation": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/script/scenes_validation.json",
    "character_bible": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/script/character_bible.json",
    "character_refs_dir": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/characters",
    "scene_images_dir": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/images/scenes",
    "audio_dir": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/audio/scenes",
    "master_audio": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/audio/master_narration.wav",
    "asr_words": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/script/asr_master_words.json",
    "subtitles": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/script/subtitles.srt",
    "subtitles_safe_gap_validation": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/script/subtitles_safe_gap_validation.json",
    "render_parts_dir": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/output/render_parts",
    "render_parts_log": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/logs/render_parts_subfix_8015_offset_progress.json",
    "main_sync_approved": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/output/main/24052026-001-Ly-Thuong-Kiet_main_parts_concat_SUBFIX.mp4",
    "intro": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/output/intro/intro_logo_thumbnail.mp4",
    "intro_tts": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/output/intro/intro_tts.wav",
    "outro": "/data/video-pipeline/Youtube-Video-Maker/data/outtro/outtro1_1080p.mp4",
    "bgm": "/data/video-pipeline/Youtube-Video-Maker/data/music/the_mountain-history-archive-145197/the_mountain-history-archive-145197.mp3",
    "final": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/output/final/24052026-001-Ly-Thuong-Kiet_final_AUDIO_SAFE_SUBFIX_20260525.mp4",
    "qa_final": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/logs/step19_subfix_final_qa.json",
    "thumbnail_16x9": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/output/thumbnails/thumb_16x9_final.png",
    "thumbnail_9x16": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/output/thumbnails/thumb_9x16_final.png",
    "final_approved_log": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/logs/step19_subfix_final_qa.json",
    "checklist_19_steps": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/checklist_19_steps.json",
    "blackdetect_log": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/logs/step16_subfix_blackdetect.json",
    "final_package_log": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/logs/final_package_worker.json"
  },
  "qa": {
    "final_package": {
      "status": "approved_after_subfix_rebuild",
      "approved_utc": "2026-05-25T03:16:46.779332Z",
      "final": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/output/final/24052026-001-Ly-Thuong-Kiet_final_AUDIO_SAFE_SUBFIX_20260525.mp4",
      "bgm_volume": 0.12,
      "sync_note": "Final rebuilt after subtitle part-local offset fix; subtitles restored after ~2:43 issue. Blackdetect passed on parts, main, and final.",
      "audio_correction": "Use audio-safe workflow: decode/resample audio to common rate before concat/mix; do not stream-copy concat mixed-rate audio.",
      "subtitle_correction": "Per-part subtitle slices must be rebased to local 00:00 timestamps for each render part; validate cue range against part duration.",
      "probe_log": "/data/video-pipeline/Youtube-Video-Maker/Project/24052026-001-Ly-Thuong-Kiet/logs/step19_subfix_final_qa.json"
    },
    "subtitle_safe_gap": {
      "status": "ok",
      "cue_count": 383,
      "asr_word_count": 3822,
      "source_word_count": 3824,
      "mapped_source_words": 3822,
      "overlap_count": 0,
      "near_touch_under_80ms": 0,
      "safe_gap_sec": 0.09,
      "max_words_per_cue": 10,
      "max_lines_per_cue": 1,
      "display_text_source": "scene.narration/source text",
      "timing_source": "ASR faster-whisper word timestamps",
      "note": "Display text uses source narration; timing mapped to ASR word timestamps and safe-gap clamped."
    },
    "blackdetect": {
      "parts_checked": 8,
      "parts_with_black_events": 0,
      "main_black_event_count": 0,
      "final_black_event_count": 0
    },
    "status": "ok"
  },
  "upload_metadata": {
    "Title Youtube 1": "Lý Thường Kiệt là ai? Vị danh tướng làm nên bản tuyên ngôn độc lập bằng thơ của Đại Việt",
    "Title Youtube 2": "Lý Thường Kiệt: Vị tướng khiến nhà Tống khiếp sợ và bài thơ Nam quốc sơn hà",
    "Title Youtube 3": "Lý Thường Kiệt là ai? Chiến công sông Như Nguyệt và bản tuyên ngôn độc lập đầu tiên",
    "Mô tả Youtube": "Câu chuyện về Lý Thường Kiệt, danh tướng kiệt xuất của Đại Việt: từ thân thế, con đường làm tướng, chiến dịch tiên phát chế nhân, đến chiến thắng sông Như Nguyệt và bài thơ Nam quốc sơn hà vang dội lịch sử.\n\n#vetmucthoigian #vietsukelai #lythuongkiet #namquocsonha #songnhunguyet #lichsuvietnam",
    "Hashtag": "#vetmucthoigian #vietsukelai #lythuongkiet #namquocsonha #songnhunguyet #lichsuvietnam",
    "Title Tiktok": "Lý Thường Kiệt và bản tuyên ngôn độc lập bằng thơ",
    "Mô tả Tiktok": "Lý Thường Kiệt, sông Như Nguyệt và bài thơ Nam quốc sơn hà. #vetmucthoigian",
    "hashtag tiktok": "#vetmucthoigian #lythuongkiet #namquocsonha #songnhunguyet #lichsuvietnam #vietsukelai",
    "Title Facebook": "Lý Thường Kiệt: Danh tướng Đại Việt và bài thơ Nam quốc sơn hà",
    "Mô tả Facebook": "Một tập Việt Sử Kể Lại về Lý Thường Kiệt: tài thao lược, chiến thắng trước nhà Tống và dấu mốc Nam quốc sơn hà trong lịch sử dân tộc.",
    "hashtag facebook": "#vetmucthoigian #vietsukelai #lythuongkiet #namquocsonha #songnhunguyet #lichsuvietnam"
  },
  "created_at_utc": "2026-05-25T00:35:25.296387+00:00",
  "updated_at_utc": "2026-05-25T03:16:46.779332Z",
  "notes": "Info normalized after review against previous approved project format. Final packaged on worker services; current approved output is the SUBFIX rebuild.",
  "social_metadata": {
    "title_youtube_1": "Lý Thường Kiệt: Vị Tướng Viết Tuyên Ngôn Độc Lập Bằng Thơ | Việt Sử Kể Lại",
    "title_youtube_2": "Lý Thường Kiệt - Danh Tướng Khiến Nhà Tống Phải Khiếp Sợ",
    "title_youtube_3": "Nam Quốc Sơn Hà Và Cuộc Đời Lý Thường Kiệt",
    "description_youtube": "Cùng Vết Mực Thời Gian kể lại cuộc đời Lý Thường Kiệt: vị danh tướng nhà Lý, người gắn với chiến công chống Tống và bài thơ Nam quốc sơn hà vang vọng như bản tuyên ngôn độc lập đầu tiên.",
    "hashtag_youtube": "#vetmucthoigian #lythuongkiet #namquocsonha #nhaly #chongtong #vietsukelai #lichsuvietnam",
    "title_facebook": "Lý Thường Kiệt - vị tướng làm nên Nam quốc sơn hà",
    "description_facebook": "Câu chuyện về Lý Thường Kiệt, danh tướng nhà Lý và khí phách Đại Việt trong cuộc kháng chiến chống Tống.",
    "hashtag_facebook": "#vetmucthoigian #lythuongkiet #namquocsonha #vietsukelai #lichsuvietnam",
    "title_tiktok": "Lý Thường Kiệt và bài thơ Nam quốc sơn hà",
    "description_tiktok": "Vị danh tướng nhà Lý gắn với chiến công chống Tống và lời thơ giữ nước.",
    "hashtag_tiktok": "#vetmucthoigian #lythuongkiet #namquocsonha #vietsukelai"
  },
  "metadata_verified_for_project": true,
  "metadata_verified_at": "2026-06-01T12:16:08"
}