{
  "target": "usa_phone",
  "label": "ארצות הברית 2027 — פלאפון / מחשב",
  "generated_at": "2026-07-18 21:01:00",
  "presentation": {
    "path": "C:\\TripServer\\USA\\usa2027-presentation.html",
    "exists": true,
    "size": 1042478,
    "mtime": "2026-07-18 18:12:39"
  },
  "parts": [
    {
      "label": "שיר ראשון",
      "song_seconds": 239.059955,
      "slide_count": 23,
      "video_count": 16,
      "video_seconds": 175.207163,
      "image_count": 7,
      "image_seconds": 63.852792000000015,
      "per_image_seconds": 9.12182742857143,
      "reserve_to_5_seconds": 28.852792000000015,
      "status": "green"
    },
    {
      "label": "שיר שני",
      "song_seconds": 198.925351,
      "slide_count": 21,
      "video_count": 10,
      "video_seconds": 137.65966600000002,
      "image_count": 11,
      "image_seconds": 61.26568500000001,
      "per_image_seconds": 5.569607727272729,
      "reserve_to_5_seconds": 6.265685000000012,
      "status": "yellow"
    }
  ],
  "checks": [
    {
      "name": "מבנה המצגת",
      "ok": true,
      "detail": "נמצאו 44 שקפים; חלק 1 מסתיים בשקף 23.",
      "level": "ok",
      "category": "structure"
    },
    {
      "name": "משך השירים בקוד תואם לקבצים בפועל",
      "ok": true,
      "detail": "חלק 1: בקוד 239.060 שנ׳ · בקובץ 239.060 שנ׳ · פער 0.000 | חלק 2: בקוד 198.925 שנ׳ · בקובץ 198.925 שנ׳ · פער 0.000",
      "level": "ok",
      "category": "structure"
    },
    {
      "name": "קובצי מדיה לכל השקפים",
      "ok": true,
      "detail": "הכול קיים",
      "level": "ok",
      "category": "media"
    },
    {
      "name": "אין תמונה וסרטון כפולים לאותו שקף",
      "ok": true,
      "detail": "",
      "level": "ok",
      "category": "structure"
    },
    {
      "name": "חישוב ציר הזמן",
      "ok": true,
      "detail": "סה״כ 437.985 שניות; סרטונים נשמרים במלוא אורכם.",
      "level": "ok",
      "category": "timeline"
    },
    {
      "name": "שני קובצי המוזיקה",
      "ok": true,
      "detail": "usa-roadtrip-theme.mp3 ✓ 239.060 שנ׳; usa-part2-theme.mp3 ✓ 198.925 שנ׳",
      "level": "ok",
      "category": "media"
    },
    {
      "name": "אין מזהי HTML כפולים",
      "ok": true,
      "detail": "",
      "level": "ok",
      "category": "structure"
    },
    {
      "name": "אין עוגנים פנימיים שבורים",
      "ok": true,
      "detail": "",
      "level": "ok",
      "category": "structure"
    },
    {
      "name": "Registry אופליין אינו סופר מדיה כפולה",
      "ok": true,
      "detail": "",
      "level": "ok",
      "category": "media"
    },
    {
      "name": "אין תלות במנגנוני אופליין שנכשלו בעבר",
      "ok": true,
      "detail": "",
      "level": "ok",
      "category": "offline"
    },
    {
      "name": "רשימת אופליין מוטמעת",
      "ok": true,
      "detail": "46 פריטי מדיה; token=f1452cf207785448",
      "level": "ok",
      "category": "offline"
    },
    {
      "name": "כל קובצי רשימת האופליין קיימים בשרת",
      "ok": true,
      "detail": "",
      "level": "ok",
      "category": "offline"
    },
    {
      "name": "מעבר רציף בין כל השקפים",
      "ok": true,
      "detail": "נבדקו 43 מעברים",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "מעבר 21→22",
      "ok": true,
      "detail": "220.816→220.816 שנ׳",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "מעבר 22→23",
      "ok": true,
      "detail": "229.938→229.938 שנ׳",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "מעבר 23→24",
      "ok": true,
      "detail": "239.060→239.060 שנ׳",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "מעבר 24→25",
      "ok": true,
      "detail": "244.630→244.630 שנ׳",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "מעבר 42→43",
      "ok": true,
      "detail": "426.846→426.846 שנ׳",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "מעבר 43→44",
      "ok": true,
      "detail": "432.416→432.416 שנ׳",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "ניווט ידני קדימה בזמן נגינה",
      "ok": true,
      "detail": "לכל שקף אחרי הראשון קיימת נקודת seek חיובית",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "אין מקטעים שליליים או אפסיים",
      "ok": true,
      "detail": "כל המקטעים מתקדמים קדימה",
      "level": "ok",
      "category": "regression"
    },
    {
      "name": "שיר ראשון: לפחות 5 שניות לתמונה",
      "ok": true,
      "detail": "9.12 שנ׳",
      "level": "ok",
      "category": "timeline"
    },
    {
      "name": "שיר שני: לפחות 5 שניות לתמונה",
      "ok": true,
      "detail": "5.57 שנ׳",
      "level": "ok",
      "category": "timeline"
    },
    {
      "name": "משקל כולל בתחום סביר לדפדפן",
      "ok": true,
      "detail": "258.9 MB",
      "level": "ok",
      "category": "performance"
    },
    {
      "name": "שיר 1: לפחות 5 שניות לתמונה",
      "ok": true,
      "detail": "שקפים 1–23 · 9.12 שנ׳",
      "level": "ok",
      "category": "timeline"
    },
    {
      "name": "שיר 2: לפחות 5 שניות לתמונה",
      "ok": true,
      "detail": "שקפים 24–44 · 5.57 שנ׳",
      "level": "ok",
      "category": "timeline"
    }
  ],
  "videos": [
    {
      "base": "intro",
      "file": "intro.mp4",
      "duration": 14.047733,
      "size": 58983117
    },
    {
      "base": "day-01",
      "file": "day-01.mp4",
      "duration": 8.0,
      "size": 1869380
    },
    {
      "base": "day-02",
      "file": "day-02.mp4",
      "duration": 5.966667,
      "size": 3146966
    },
    {
      "base": "day-03",
      "file": "day-03.mp4",
      "duration": 9.999889,
      "size": 14875583
    },
    {
      "base": "day-04",
      "file": "day-04.mp4",
      "duration": 6.2,
      "size": 3305544
    },
    {
      "base": "extra-big-sur",
      "file": "extra-big-sur.mp4",
      "duration": 18.226542,
      "size": 18365588
    },
    {
      "base": "day-06",
      "file": "day-06.mp4",
      "duration": 9.833333,
      "size": 5947993
    },
    {
      "base": "day-07",
      "file": "day-07.mp4",
      "duration": 12.0,
      "size": 9357108
    },
    {
      "base": "day-08",
      "file": "day-08.mp4",
      "duration": 9.999889,
      "size": 9333099
    },
    {
      "base": "day-09",
      "file": "day-09.mp4",
      "duration": 16.9,
      "size": 18153434
    },
    {
      "base": "day-10",
      "file": "day-10.mp4",
      "duration": 10.0,
      "size": 3003456
    },
    {
      "base": "day-12",
      "file": "day-12.mp4",
      "duration": 12.0,
      "size": 3535673
    },
    {
      "base": "day-13",
      "file": "day-13.mp4",
      "duration": 10.033333,
      "size": 3750586
    },
    {
      "base": "extra-death-valley",
      "file": "extra-death-valley.mp4",
      "duration": 9.999889,
      "size": 11881487
    },
    {
      "base": "day-14",
      "file": "day-14.mp4",
      "duration": 9.999888,
      "size": 8274669
    },
    {
      "base": "extra-mono-lake",
      "file": "extra-mono-lake.mp4",
      "duration": 12.0,
      "size": 15665055
    },
    {
      "base": "day-19",
      "file": "day-19.mp4",
      "duration": 15.015,
      "size": 5515997
    },
    {
      "base": "day-20",
      "file": "day-20.mp4",
      "duration": 15.015,
      "size": 7228628
    },
    {
      "base": "day-22",
      "file": "day-22.mp4",
      "duration": 18.018,
      "size": 7825154
    },
    {
      "base": "day-24",
      "file": "day-24.mp4",
      "duration": 10.033333,
      "size": 3260005
    },
    {
      "base": "day-25",
      "file": "day-25.mp4",
      "duration": 15.015,
      "size": 4279164
    },
    {
      "base": "day-26",
      "file": "day-26.mp4",
      "duration": 11.4,
      "size": 7075121
    },
    {
      "base": "day-28",
      "file": "day-28.mp4",
      "duration": 15.015,
      "size": 10946198
    },
    {
      "base": "day-31",
      "file": "day-31.mp4",
      "duration": 14.8,
      "size": 6346224
    },
    {
      "base": "day-32",
      "file": "day-32.mp4",
      "duration": 8.333333,
      "size": 4198811
    },
    {
      "base": "day-34",
      "file": "day-34.mp4",
      "duration": 15.015,
      "size": 8208662
    }
  ],
  "missing": [],
  "warnings": [],
  "offline": {
    "inline_count": 46,
    "missing": [],
    "expected_with_html": 47
  },
  "totals": {
    "slide_count": 44,
    "video_count": 26,
    "image_count": 18,
    "media_bytes": 270389561,
    "presentation_bytes": 1042478
  },
  "ok": true,
  "timeline_total": 437.98530600000004,
  "music": [
    {
      "path": "C:\\TripServer\\USA\\media\\usa-presentation\\music\\usa-roadtrip-theme.mp3",
      "exists": true,
      "size": 5739161,
      "mtime": "2026-07-16 17:25:30",
      "duration": 239.059955,
      "probe_ok": true,
      "error": "239.059955",
      "ffprobe": "C:\\ffmpeg\\bin\\ffprobe.exe"
    },
    {
      "path": "C:\\TripServer\\USA\\media\\usa-presentation\\music\\usa-part2-theme.mp3",
      "exists": true,
      "size": 4776155,
      "mtime": "2026-07-15 23:38:55",
      "duration": 198.925351,
      "probe_ok": true,
      "error": "198.925351",
      "ffprobe": "C:\\ffmpeg\\bin\\ffprobe.exe"
    }
  ],
  "audio_timeline_source": "ffprobe",
  "declared_song_seconds": [
    239.059955,
    198.925351
  ],
  "actual_song_seconds": [
    239.059955,
    198.925351
  ],
  "timeline": [
    {
      "slide": 1,
      "base": "intro",
      "kind": "video",
      "seconds": 14.047733,
      "media_seconds": 14.047733,
      "start": 0.0,
      "end": 14.047733,
      "part": 1
    },
    {
      "slide": 2,
      "base": "roadtrip-map",
      "kind": "image",
      "seconds": 9.121827428571427,
      "media_seconds": 0.0,
      "start": 14.047733,
      "end": 23.169560428571426,
      "part": 1
    },
    {
      "slide": 3,
      "base": "day-01",
      "kind": "video",
      "seconds": 8.0,
      "media_seconds": 8.0,
      "start": 23.169560428571426,
      "end": 31.169560428571426,
      "part": 1
    },
    {
      "slide": 4,
      "base": "day-02",
      "kind": "video",
      "seconds": 5.966667,
      "media_seconds": 5.966667,
      "start": 31.169560428571426,
      "end": 37.136227428571424,
      "part": 1
    },
    {
      "slide": 5,
      "base": "day-03",
      "kind": "video",
      "seconds": 9.999889,
      "media_seconds": 9.999889,
      "start": 37.136227428571424,
      "end": 47.13611642857143,
      "part": 1
    },
    {
      "slide": 6,
      "base": "day-04",
      "kind": "video",
      "seconds": 6.2,
      "media_seconds": 6.2,
      "start": 47.13611642857143,
      "end": 53.33611642857143,
      "part": 1
    },
    {
      "slide": 7,
      "base": "extra-big-sur",
      "kind": "video",
      "seconds": 18.226542,
      "media_seconds": 18.226542,
      "start": 53.33611642857143,
      "end": 71.56265842857142,
      "part": 1
    },
    {
      "slide": 8,
      "base": "day-05",
      "kind": "image",
      "seconds": 9.121827428571427,
      "media_seconds": 0.0,
      "start": 71.56265842857142,
      "end": 80.68448585714285,
      "part": 1
    },
    {
      "slide": 9,
      "base": "day-06",
      "kind": "video",
      "seconds": 9.833333,
      "media_seconds": 9.833333,
      "start": 80.68448585714285,
      "end": 90.51781885714284,
      "part": 1
    },
    {
      "slide": 10,
      "base": "day-07",
      "kind": "video",
      "seconds": 12.0,
      "media_seconds": 12.0,
      "start": 90.51781885714284,
      "end": 102.51781885714284,
      "part": 1
    },
    {
      "slide": 11,
      "base": "extra-diner",
      "kind": "image",
      "seconds": 9.121827428571427,
      "media_seconds": 0.0,
      "start": 102.51781885714284,
      "end": 111.63964628571426,
      "part": 1
    },
    {
      "slide": 12,
      "base": "day-08",
      "kind": "video",
      "seconds": 9.999889,
      "media_seconds": 9.999889,
      "start": 111.63964628571426,
      "end": 121.63953528571426,
      "part": 1
    },
    {
      "slide": 13,
      "base": "day-09",
      "kind": "video",
      "seconds": 16.9,
      "media_seconds": 16.9,
      "start": 121.63953528571426,
      "end": 138.53953528571427,
      "part": 1
    },
    {
      "slide": 14,
      "base": "day-10",
      "kind": "video",
      "seconds": 10.0,
      "media_seconds": 10.0,
      "start": 138.53953528571427,
      "end": 148.53953528571427,
      "part": 1
    },
    {
      "slide": 15,
      "base": "day-11",
      "kind": "image",
      "seconds": 9.121827428571427,
      "media_seconds": 0.0,
      "start": 148.53953528571427,
      "end": 157.6613627142857,
      "part": 1
    },
    {
      "slide": 16,
      "base": "day-12",
      "kind": "video",
      "seconds": 12.0,
      "media_seconds": 12.0,
      "start": 157.6613627142857,
      "end": 169.6613627142857,
      "part": 1
    },
    {
      "slide": 17,
      "base": "day-13",
      "kind": "video",
      "seconds": 10.033333,
      "media_seconds": 10.033333,
      "start": 169.6613627142857,
      "end": 179.6946957142857,
      "part": 1
    },
    {
      "slide": 18,
      "base": "extra-death-valley",
      "kind": "video",
      "seconds": 9.999889,
      "media_seconds": 9.999889,
      "start": 179.6946957142857,
      "end": 189.6945847142857,
      "part": 1
    },
    {
      "slide": 19,
      "base": "day-14",
      "kind": "video",
      "seconds": 9.999888,
      "media_seconds": 9.999888,
      "start": 189.6945847142857,
      "end": 199.6944727142857,
      "part": 1
    },
    {
      "slide": 20,
      "base": "extra-mono-lake",
      "kind": "video",
      "seconds": 12.0,
      "media_seconds": 12.0,
      "start": 199.6944727142857,
      "end": 211.6944727142857,
      "part": 1
    },
    {
      "slide": 21,
      "base": "day-15",
      "kind": "image",
      "seconds": 9.121827428571427,
      "media_seconds": 0.0,
      "start": 211.6944727142857,
      "end": 220.81630014285713,
      "part": 1
    },
    {
      "slide": 22,
      "base": "day-16",
      "kind": "image",
      "seconds": 9.121827428571427,
      "media_seconds": 0.0,
      "start": 220.81630014285713,
      "end": 229.93812757142857,
      "part": 1
    },
    {
      "slide": 23,
      "base": "day-17",
      "kind": "image",
      "seconds": 9.121827428571455,
      "media_seconds": 0.0,
      "start": 229.93812757142857,
      "end": 239.05995500000003,
      "part": 1
    },
    {
      "slide": 24,
      "base": "day-18",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 239.05995500000003,
      "end": 244.62956272727277,
      "part": 2
    },
    {
      "slide": 25,
      "base": "day-19",
      "kind": "video",
      "seconds": 15.015,
      "media_seconds": 15.015,
      "start": 244.62956272727277,
      "end": 259.6445627272728,
      "part": 2
    },
    {
      "slide": 26,
      "base": "day-20",
      "kind": "video",
      "seconds": 15.015,
      "media_seconds": 15.015,
      "start": 259.6445627272728,
      "end": 274.65956272727277,
      "part": 2
    },
    {
      "slide": 27,
      "base": "day-21",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 274.65956272727277,
      "end": 280.2291704545455,
      "part": 2
    },
    {
      "slide": 28,
      "base": "day-22",
      "kind": "video",
      "seconds": 18.018,
      "media_seconds": 18.018,
      "start": 280.2291704545455,
      "end": 298.24717045454554,
      "part": 2
    },
    {
      "slide": 29,
      "base": "day-23",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 298.24717045454554,
      "end": 303.8167781818183,
      "part": 2
    },
    {
      "slide": 30,
      "base": "day-24",
      "kind": "video",
      "seconds": 10.033333,
      "media_seconds": 10.033333,
      "start": 303.8167781818183,
      "end": 313.8501111818183,
      "part": 2
    },
    {
      "slide": 31,
      "base": "day-25",
      "kind": "video",
      "seconds": 15.015,
      "media_seconds": 15.015,
      "start": 313.8501111818183,
      "end": 328.8651111818183,
      "part": 2
    },
    {
      "slide": 32,
      "base": "day-26",
      "kind": "video",
      "seconds": 11.4,
      "media_seconds": 11.4,
      "start": 328.8651111818183,
      "end": 340.26511118181827,
      "part": 2
    },
    {
      "slide": 33,
      "base": "day-27",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 340.26511118181827,
      "end": 345.834718909091,
      "part": 2
    },
    {
      "slide": 34,
      "base": "day-28",
      "kind": "video",
      "seconds": 15.015,
      "media_seconds": 15.015,
      "start": 345.834718909091,
      "end": 360.849718909091,
      "part": 2
    },
    {
      "slide": 35,
      "base": "day-29",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 360.849718909091,
      "end": 366.41932663636373,
      "part": 2
    },
    {
      "slide": 36,
      "base": "day-30",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 366.41932663636373,
      "end": 371.9889343636365,
      "part": 2
    },
    {
      "slide": 37,
      "base": "day-31",
      "kind": "video",
      "seconds": 14.8,
      "media_seconds": 14.8,
      "start": 371.9889343636365,
      "end": 386.7889343636365,
      "part": 2
    },
    {
      "slide": 38,
      "base": "day-32",
      "kind": "video",
      "seconds": 8.333333,
      "media_seconds": 8.333333,
      "start": 386.7889343636365,
      "end": 395.12226736363647,
      "part": 2
    },
    {
      "slide": 39,
      "base": "day-33",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 395.12226736363647,
      "end": 400.6918750909092,
      "part": 2
    },
    {
      "slide": 40,
      "base": "day-34",
      "kind": "video",
      "seconds": 15.015,
      "media_seconds": 15.015,
      "start": 400.6918750909092,
      "end": 415.7068750909092,
      "part": 2
    },
    {
      "slide": 41,
      "base": "day-35",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 415.7068750909092,
      "end": 421.27648281818193,
      "part": 2
    },
    {
      "slide": 42,
      "base": "day-36",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 421.27648281818193,
      "end": 426.8460905454547,
      "part": 2
    },
    {
      "slide": 43,
      "base": "budget",
      "kind": "image",
      "seconds": 5.569607727272726,
      "media_seconds": 0.0,
      "start": 426.8460905454547,
      "end": 432.4156982727274,
      "part": 2
    },
    {
      "slide": 44,
      "base": "summary",
      "kind": "image",
      "seconds": 5.569607727272754,
      "media_seconds": 0.0,
      "start": 432.4156982727274,
      "end": 437.98530600000015,
      "part": 2
    }
  ],
  "performance": {
    "total_bytes": 271432039,
    "video_bytes": 254332702,
    "estimated_seconds": {
      "wifi_100mbps": 21.7,
      "wifi_30mbps": 72.4,
      "cellular_10mbps": 217.1
    }
  },
  "score": 100,
  "category_scores": {
    "media": 100,
    "timeline": 100,
    "regression": 100,
    "offline": 100,
    "code": 100,
    "structure": 100,
    "performance": 100
  },
  "trip_ready": true,
  "qa_version": "60.0-clean",
  "song_segments": [
    {
      "id": "song-1",
      "label": "שיר 1",
      "startSlide": 1,
      "endSlide": 23,
      "source": "media\\usa-presentation\\music\\segments\\part1-main-upload.mp3",
      "duration": 239.059955,
      "offset": 0.0,
      "group": 1,
      "videoCount": 16,
      "videoSeconds": 175.20716299999998,
      "imageCount": 7,
      "perImageSeconds": 9.121827428571432,
      "status": "green"
    },
    {
      "id": "song-2",
      "label": "שיר 2",
      "startSlide": 24,
      "endSlide": 44,
      "source": "media\\usa-presentation\\music\\segments\\part2-main-upload.mp3",
      "duration": 198.925351,
      "offset": 0.0,
      "group": 2,
      "videoCount": 10,
      "videoSeconds": 137.65966600000002,
      "imageCount": 11,
      "perImageSeconds": 5.569607727272726,
      "status": "yellow"
    }
  ]
}