sydlexius 297 Posted February 10 Posted February 10 (edited) If you use intro detection or EmbyCredits, you've probably wondered: how many of my episodes actually have markers? Which seasons are missing credits? Did detection run on that library I just added? Emby doesn't give you an easy way to answer those questions. Segment Reporting is a plugin that fills that gap. It gives you a dashboard view of your segment coverage, lets you browse and edit markers, and provides bulk operations so you're not fixing things one episode at a time. Dashboard - see your coverage at a glance The dashboard shows segment coverage across all your libraries with summary stats and a per-library breakdown chart. You can see exactly how many items have intros, credits, both, or neither. Browse and drill down Click into any library to see per-series coverage stats, then drill into a series to see every episode laid out by season. Charts show intro and credits coverage per season so gaps jump out immediately. Edit timestamps inline Click any timestamp to edit it directly in the table. No need to navigate away or open a separate editor. Changes are saved to Emby immediately. Bulk operations Select episodes and apply operations in bulk: Copy segments from one episode to others (useful when a show has a consistent intro across a season) Set credits to end for selected episodes (for shows where credits run to the end of the file) Bulk delete intros or credits Detect credits for selected items (requires EmbyCredits) Custom query builder For anything the built-in views don't cover, there's a visual query builder with autocomplete, multi-value filters, drag-to-reorder columns, and sortable/exportable results. You can save queries for reuse. The builder generates SQL under the hood, so power users can see exactly what's running. Fields autocomplete from your actual library data: Query results support inline editing, row selection, bulk actions, playback links, and CSV export: Settings Choose from several chart color palettes (or define your own), toggle table styling, hide libraries from the dashboard, and manage the sync cache. The theme defaults to matching your Emby accent color. How it works The plugin maintains a lightweight SQLite cache of your segment data. A scheduled task syncs it daily (configurable via Emby's Scheduled Tasks). All reads come from the cache for speed; all edits write through to Emby first, then update the cache. Your Emby data is always the source of truth. Installation Download the DLL from GitHub Releases Drop it in your Emby plugins folder Restart Emby Run the initial sync from Scheduled Tasks Full documentation: User Guide | Release Notes | GitHub Built on patterns from @TeamB's Playback Reporting and ChapterAPI plugins, and integrates with @yocker's EmbyCredits for credits detection. Feedback, bug reports, and feature requests welcome here or on GitHub Issues. Edited Wednesday at 10:34 PM by sydlexius Updated pitch and provided two addl. screenshots. 2
sydlexius 297 Posted February 10 Author Posted February 10 (edited) Download the latest release here: https://github.com/sydlexius/Segment_Reporting/releases/tag/v1.3.0.0 Release Notes: https://github.com/sydlexius/Segment_Reporting/blob/main/RELEASE_NOTES.md Edited Saturday at 06:23 AM by sydlexius Updated for new release
Neminem 1518 Posted February 10 Posted February 10 (edited) Just trying this beast I did run the scheduled task to sync. When clicking the plugin I get this error. And it looks like its running behind the plugin page. Using Edge, also tried in Firefox. Logs rotated with Debugging. embyserver (4).txt Guess there is something missing. *** Error Report *** Version: 4.9.3.0 Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3 Operating system: Linux version 6.12.54-Unraid (root@Develop) (gcc (GCC) 15.2.0, GNU ld version 2.45-slack151) #1 SMP PREEMPT_DYNAMIC Tue Oct 21 15:58:46 PDT 2025 OS/Process: x64/x64 Framework: .NET 8.0.22 Runtime: system/System.Private.CoreLib.dll Processor count: 6 Data path: /config Application path: /system System.IO.FileNotFoundException: System.IO.FileNotFoundException: File not found: segment_dashboard.v1_0_1_2.v1_0_1_2.js File name: 'segment_dashboard.v1_0_1_2.v1_0_1_2.js' at Emby.Web.Api.WebAppService.Get(GetDashboardConfigurationPage request) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IServerApplicationHost appHost, IRequest httpReq, IResponse httpRes, IStreamHelper streamHelper, RestPath restPath, String responseContentType, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, RestPath restPath, String urlString, String localPath, String contentTypeInPath, CancellationToken cancellationToken) Source: Emby.Web TargetSite: System.Threading.Tasks.Task`1[System.Object] Get(Emby.Web.Api.GetDashboardConfigurationPage) Edited February 10 by Neminem 1
sydlexius 297 Posted February 10 Author Posted February 10 15 hours ago, Neminem said: Just trying this beast I did run the scheduled task to sync. When clicking the plugin I get this error. And it looks like its running behind the plugin page. Using Edge, also tried in Firefox. Logs rotated with Debugging. embyserver (4).txt 37.48 kB · 0 downloads Okay, I fed the log to Claude and it seems to have identified and "fixed" the root cause. Please download this release and let me know if that fixes it for you.
Neminem 1518 Posted February 11 Posted February 11 10 hours ago, sydlexius said: Please download this release and let me know if that fixes it for you. That fixed Thank you 1
sydlexius 297 Posted February 11 Author Posted February 11 I've added a couple of Quality-of-Life improvements since the last post: https://github.com/sydlexius/Segment_Reporting/releases/tag/v1.0.3.0 v1.0.3.0 - Per-Library Visibility Controls Added Exclude individual libraries from the dashboard (#52) — The Library Visibility section on the Settings page now shows a checkbox for every library in your server. Uncheck any library to hide it from the dashboard charts and tables. This works alongside the existing "Hide Movie libraries" and "Hide Mixed libraries" options, giving full control over which libraries appear in your reports. v1.0.2.1 - Fix Missing Intros/Credits Filter for Series Fixed "Missing Intros" and "Missing Credits" filters now show the full series — Previously, filtering by missing intros or credits on the Library page only counted episodes that lacked the marker, producing incorrect totals and coverage percentages. Now any series with at least one episode missing intros (or credits) is included in the results with accurate stats for the entire series.
sydlexius 297 Posted February 12 Author Posted February 12 And even more new features/fixes, chiefly autocomplete for certain fields in the query builder: https://github.com/sydlexius/Segment_Reporting/releases/tag/v1.1.0.0
sydlexius 297 Posted February 12 Author Posted February 12 The User Guide is now live. If it makes sense to clean up the initial post, then I'll oblige. 1
sydlexius 297 Posted February 13 Author Posted February 13 New release is out (minor changes to the Actions menu UX): https://github.com/sydlexius/Segment_Reporting/releases/tag/v1.2.0.4 Improved Unified Actions dropdown menu (#58) — Each episode and query result row now has a single "Actions ▼" button that opens a clean dropdown menu with Edit, Copy, Delete, and Set Credits to End options, replacing the previous row of individual buttons. Type-selective Copy and Delete (#58) — The Copy and Delete menu items now expand into submenus letting you choose Intros, Credits, or Both, so you can copy or delete just the segment type you need. Shared dropdown menu infrastructure (#58) — The menu system is built on reusable helpers in the shared library (theme-aware colors, submenu positioning, click-outside dismissal), keeping the code consistent across the Series and Custom Query pages. 1
eltioares 9 Posted February 13 Posted February 13 (edited) 84 ¡Genial! Thx ^^ Edited February 13 by eltioares
sydlexius 297 Posted Saturday at 06:22 AM Author Posted Saturday at 06:22 AM New release is up with some housekeeping, re-theming, and some normalization around the "actions" button/submenu. https://github.com/sydlexius/Segment_Reporting/releases/tag/v1.3.0.0 Release notes: Improved Theme-aware chart palettes (#77) - All five built-in color palettes now adapt to your Emby theme automatically. Light themes get darker, high-contrast colors while dark themes get vibrant ones. The old palettes (Ocean Breeze, Sunshine Blue Dream, etc.) are replaced by five new palettes named after their accent color: Green (Default), Blue, Red, Pink, and Purple. Each palette was designed to pass WCAG AA contrast requirements on both light and dark backgrounds. Actions dropdown menus everywhere (#63, #69, #78) - Series rows, movie rows, and season headers throughout the Library and Series pages now use a single "Actions" dropdown that consolidates Edit, Delete (Intros/Credits/Both), Set Credits to End, Apply Source, and EmbyCredits detection into one tidy menu. Menu items are greyed out when the item has no markers of that type. The previous standalone bulk buttons on the season header have been replaced by the dropdown. Separate Intro % and Credits % on the Dashboard (#61) - The library table now shows independent percentage columns for intro and credits coverage instead of a single combined value, making it clear at a glance which segment type needs attention. Shared inline editor (#67) - All three editing pages (Series, Library, Custom Query) now use a single inline editing component from the shared helpers, removing about 360 lines of duplicated code while ensuring consistent save/cancel behavior everywhere. Shared bulk operation helpers (#68) - Bulk delete, set-credits-to-end, and detect-credits logic extracted into reusable server-side helpers with shared ID parsing, count validation, and error handling. Auto-reload on plugin update (#64) - The web UI now detects when the plugin DLL has been updated and prompts to reload, preventing stale cached JavaScript from running against a newer backend. Fixed Action buttons no longer fire twice (#70) - All action buttons across every page are now guarded against double-submission during async operations. Database deadlock prevention (#66) - Reorganized internal lock ordering in SegmentRepository so Dispose(), RemoveOrphanedRows(), and DeleteAllData() can no longer deadlock under concurrent access. Hardened custom query endpoint (#64) - Added defense-in-depth keyword rejection (semicolons, ATTACH, load_extension) and a PRAGMA whitelist limiting queries to safe read-only pragmas. Marker type whitelist validation (#65) - Column name lookups now reject unexpected marker type strings, preventing arbitrary values from reaching SQL queries. Movie delete menu now theme-aware (#69) - Replaced hardcoded dark-theme colors with the shared menu helper infrastructure so the dropdown adapts to light Emby themes. HTML escaping for season labels (#71) - Season names are now escaped before innerHTML insertion. Memory leak in CSV export (#75) - Blob URLs are now revoked after CSV download completes. Database filename centralized (#72) - Removed duplicate filename constants across API and task files. First-run guard for cleanup task (#73) - The weekly cleanup task no longer errors if the database file hasn't been created yet. Dead code removal (#74) - Removed unused navigation function and fixed copyright year. 1
yocker 1247 Posted Saturday at 10:25 AM Posted Saturday at 10:25 AM 4 hours ago, sydlexius said: New release is up with some housekeeping, re-theming, and some normalization around the "actions" button/submenu. https://github.com/sydlexius/Segment_Reporting/releases/tag/v1.3.0.0 Release notes: Improved Theme-aware chart palettes (#77) - All five built-in color palettes now adapt to your Emby theme automatically. Light themes get darker, high-contrast colors while dark themes get vibrant ones. The old palettes (Ocean Breeze, Sunshine Blue Dream, etc.) are replaced by five new palettes named after their accent color: Green (Default), Blue, Red, Pink, and Purple. Each palette was designed to pass WCAG AA contrast requirements on both light and dark backgrounds. Actions dropdown menus everywhere (#63, #69, #78) - Series rows, movie rows, and season headers throughout the Library and Series pages now use a single "Actions" dropdown that consolidates Edit, Delete (Intros/Credits/Both), Set Credits to End, Apply Source, and EmbyCredits detection into one tidy menu. Menu items are greyed out when the item has no markers of that type. The previous standalone bulk buttons on the season header have been replaced by the dropdown. Separate Intro % and Credits % on the Dashboard (#61) - The library table now shows independent percentage columns for intro and credits coverage instead of a single combined value, making it clear at a glance which segment type needs attention. Shared inline editor (#67) - All three editing pages (Series, Library, Custom Query) now use a single inline editing component from the shared helpers, removing about 360 lines of duplicated code while ensuring consistent save/cancel behavior everywhere. Shared bulk operation helpers (#68) - Bulk delete, set-credits-to-end, and detect-credits logic extracted into reusable server-side helpers with shared ID parsing, count validation, and error handling. Auto-reload on plugin update (#64) - The web UI now detects when the plugin DLL has been updated and prompts to reload, preventing stale cached JavaScript from running against a newer backend. Fixed Action buttons no longer fire twice (#70) - All action buttons across every page are now guarded against double-submission during async operations. Database deadlock prevention (#66) - Reorganized internal lock ordering in SegmentRepository so Dispose(), RemoveOrphanedRows(), and DeleteAllData() can no longer deadlock under concurrent access. Hardened custom query endpoint (#64) - Added defense-in-depth keyword rejection (semicolons, ATTACH, load_extension) and a PRAGMA whitelist limiting queries to safe read-only pragmas. Marker type whitelist validation (#65) - Column name lookups now reject unexpected marker type strings, preventing arbitrary values from reaching SQL queries. Movie delete menu now theme-aware (#69) - Replaced hardcoded dark-theme colors with the shared menu helper infrastructure so the dropdown adapts to light Emby themes. HTML escaping for season labels (#71) - Season names are now escaped before innerHTML insertion. Memory leak in CSV export (#75) - Blob URLs are now revoked after CSV download completes. Database filename centralized (#72) - Removed duplicate filename constants across API and task files. First-run guard for cleanup task (#73) - The weekly cleanup task no longer errors if the database file hasn't been created yet. Dead code removal (#74) - Removed unused navigation function and fixed copyright year. I'm planning to release the new version of Embycredits tonight if you want to include the API 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now