Files
hermes-config/skills/self-hosting/plex-setup/references/plex-1.43-loudness-debug.md
T
2026-07-12 10:17:17 -04:00

4.7 KiB

Plex 1.43.2 Loudness Analysis Debug — Full Investigation

Session: June 27, 2026. Server: Ubuntu 26.04, Plex 1.43.2.10687-563d026ea, Docker.

Investigation Chain

1. Initial complaint: DJ Friendgänger greyed out

User's Albanian Traditional Music library (section 4, 170 tracks) had sonic analysis enabled and completed per Plex UI, but DJ Friendgänger was greyed out.

2. Server-level diagnostic

# GET /:/prefs revealed:
MusicAnalysisBehavior: scheduled     # ✅ correct
LoudnessAnalysisBehavior: asap       # ❌ blocking loudness analysis
ButlerStartHour: 18
ButlerEndHour: 20

Fix applied: Set LoudnessAnalysisBehavior=scheduled.

3. Database check — loudness data

SELECT COUNT(*) FROM media_parts mp
JOIN media_items mi ON mi.id = mp.media_item_id
WHERE mi.library_section_id = 4
AND mp.extra_data LIKE '%"ma:loudness"%'
-- Result: 0 of 170 tracks

4. Activity history — ZERO-WORK pattern

SELECT title, subtitle, started_at, finished_at
FROM activities WHERE title LIKE '%loudness%' ORDER BY started_at DESC
-- Result: 5 entries, all 'Butler tasks: LoudnessAnalysis', ALL ZERO-WORK

5. Attempted trigger: butler hours + musicAnalysis toggle

Set butler to current hour. Toggled musicAnalysis off/on. Butler ran but only processed "Processing 1 albums" — the one album was from section 5 (Club Hits), not section 4.

6. Attempted CLI: --analyze-loudness

docker exec plex "Plex Media Scanner" --analyze-loudness --section 4 --loudness-parallelism 8
# Result: exit 0, no output, no log file created, no loudness data
docker exec plex "Plex Media Scanner" --analyze-loudness 4 --loudness-parallelism 8
# Result: exit 0, no output, no log file created, no loudness data
docker exec plex "Plex Media Scanner" --analyze-loudness --item 18017
# Result: exit 0, no output, no loudness data

7. Attempted CLI: --analyze-deeply

docker exec plex "Plex Media Scanner" --analyze-deeply --section 4
# Result: exit 0, no output, no log
docker exec plex "Plex Media Scanner" --analyze-deeply 4
# Result: exit 0, no output, no log

8. Attempted: HTTP API

PUT /library/sections/4/analyze  # 200, no effect
PUT /library/metadata/{id}/analyze  # 200 per item, no effect

9. Persistence check — found indexes ARE present

ls "Databases/Music Analysis 4/"
# Album.tree (121K), Artist.tree (82K), Mapping.db (44K), Track.tree (130K)

This proved sonic fingerprinting had completed successfully. The "persistence bug" in earlier docs was wrong — indexes ARE persisted, just in binary tree files, not as sa: keys.

10. Found gate: pv:deepAnalysisDate

All 170 tracks in section 4 had pv:deepAnalysisDate: 1781974855 (June 20, 2026) in media_parts.extra_data. This timestamp tells Plex "already analyzed."

11. Cleared pv:deepAnalysisDate from all 170 tracks

# Removed pv:deepAnalysisDate from extra_data via regex replacement
# 170 tracks updated

12. Restart + butler trigger

docker compose restart plex
# Set butler hours to current
# Toggled musicAnalysis off → on for section 4

13. Butler picked up items

/activities showed: "Sonic Analysis: Processing 5 albums" at 0% ps aux showed: Plex Media Scanner --analyze-deeply --item 25040

14. Scanner confirmed running on section 4 item

Item 25040: "Po e mirë oj nane / Nisja tash me def / Hajde me shuplakë - Live" (section 4) Deep Analysis log showed: "Read 10000 packets at 261.198367", "Read 20000 packets at 522.422857"

15. But NO loudness data produced

After scanner completed:

  • pv:deepAnalysisDate updated to new timestamp (1782165677)
  • ma:loudness, ma:gain, ma:peak, ma:lra still MISSING
  • Loudness count: 0/170

Root Cause Confirmed

On Plex 1.43.2:

  • --analyze-deeply runs, reads files, updates deepAnalysisDate — but does NOT compute EBU R128 loudness
  • --analyze-loudness is completely non-functional (exit 0, zero effect)
  • The butler only triggers --analyze-deeply, never --analyze-loudness
  • There is no mechanism to trigger loudness analysis on 1.43.2

Key Database State Signals

Condition SQL Check Meaning
Loudness missing extra_data NOT LIKE '%ma:loudness%' Phase 1 never ran
deepAnalysisDate present extra_data LIKE '%pv:deepAnalysisDate%' Butler skips this item
Sonic indexes exist Check Music Analysis {sid}/ dir Phase 2 completed
ZERO-WORK activities started_at = finished_at Butler tried but found nothing to do

Summary

DJ Friendgänger can never work on Plex 1.43.2 because loudness analysis (EBU R128) cannot be triggered through any mechanism. The only fix is downgrading Plex.