You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add library picker to Export step: choose which Plex libraries to scan
Previously export.py always auto-detected the first movie and first TV
library it found in Plex. Users with multiple libraries (4K Movies, Kids
TV, 3D Movies, etc.) had no way to control which content went into the
CSV — everything or nothing.
Changes:
- export.py: new --movie-sections and --tv-sections flags accept
comma-separated Plex section keys. When provided, only those sections
are fetched; titles are deduplicated across sections so a title in
both 'Movies' and '4K Movies' appears once. Omitting a flag still
auto-detects (first matching section), preserving CLI behaviour.
Empty string for a flag explicitly skips that content type.
- pipeline_router.py: new GET /api/pipeline/libraries endpoint probes
Plex and returns all movie/show sections as {key, title, type}.
ExportOptions gains optional movie_sections and tv_sections fields
(None = auto-detect, [] = skip that type, ["1","2"] = use those keys).
Uses Optional[list[str]] so Pydantic can distinguish absent from empty.
- Run.tsx ExportStep: fetches libraries on mount, renders a compact
'Libraries to scan' card with checkboxes grouped by Movies / TV Shows.
All checked by default. Gracefully degrades if Plex is unreachable
(shows warning, export falls back to auto-detect). Run Export button
disabled only when libraries loaded successfully but none are checked.
Fixed React synthetic event bug: captures e.currentTarget.checked into
a local variable before the setState updater runs, preventing crashes
when currentTarget is nullified after the event handler returns.
- client.ts: added PlexLibrary type and api.getLibraries().
- CLAUDE.md and README.md updated to reflect new flags, endpoint, and
UI behaviour.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Cross-references against Tunarr to flag unsynced content
161
+
- Supports multiple sections per type: `--movie-sections KEY1,KEY2` and `--tv-sections KEY1,KEY2` (comma-separated Plex section keys). Deduplicates titles across sections. Omit flags to auto-detect (first movie + first TV section).
161
162
- Output: `plex_library.csv` + `export_summary.json` (movies/tv_shows/skipped counts for the UI stats card)
162
163
163
164
**`generate_no_ai.py`** (Option B — no AI required)
@@ -265,7 +266,8 @@ A title can appear on multiple channels — this is intentional and expected.
265
266
266
267
| Method | Path | Description |
267
268
|--------|------|-------------|
268
-
| POST |`/api/pipeline/export`| SSE-stream `export.py`; optional JSON body `{"no_crossref": true}` passes `--no-crossref` to skip Tunarr title matching |
269
+
| GET |`/api/pipeline/libraries`| List Plex library sections filtered to `movie` and `show` types (`{key, title, type}`) |
270
+
| POST |`/api/pipeline/export`| SSE-stream `export.py`; JSON body `{"no_crossref": bool, "movie_sections": ["1","2"], "tv_sections": ["3"]}` — sections are Plex section keys; `null` = auto-detect, `[]` = skip that type |
269
271
| GET |`/api/pipeline/csv`| Download `plex_library.csv`|
1.**Export** — fetches Plex library list on mount; shows "Libraries to scan" card with checkboxes grouped by Movies / TV Shows (all checked by default, supports multi-select across libraries of the same type); runs `export.py` with selected section keys; shows compact stats card on success; manual Continue
Copy file name to clipboardExpand all lines: README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -147,6 +147,7 @@ All three paths end with a probe (dry run) → deploy to Tunarr. The app streams
147
147
148
148
### Also included
149
149
150
+
- **Library picker** — choose which Plex libraries to scan (Movies, 4K Movies, Kids TV, etc.) before each export; supports mixing multiple libraries of the same type
150
151
- **Channel logo fetching** — pulls TMDB clearlogos for single-show/movie channels
151
152
- **Plex DVR sync** — maps new channels into the Plex Live TV guide automatically
152
153
- **Channel editor** — edit names, numbers, shuffle mode, and content lists in the browser
0 commit comments