Skip to content

feat: title-based VOD and series merge across providers#840

Closed
Serph91P wants to merge 6 commits intom3ue:experimentalfrom
Serph91P:feature/title-based-vod-series-merge
Closed

feat: title-based VOD and series merge across providers#840
Serph91P wants to merge 6 commits intom3ue:experimentalfrom
Serph91P:feature/title-based-vod-series-merge

Conversation

@Serph91P
Copy link
Copy Markdown
Contributor

  • Add TitleNormalizer service for generic title similarity matching (provider prefixes, quality tags, years, version suffixes, unicode)
  • Add MergeSeries job with episode-level failover by season+episode number
  • Add EpisodeFailover model and migration
  • Extend MergeChannels with title-based VOD merge for unmatched stream_ids
  • Add auto-merge toggles in playlist settings (VOD + series on sync)
  • Add merge/unmerge actions to VOD group context menu
  • Add merge/unmerge actions to series category context menu
  • Add merge/unmerge actions to series list header
  • Fix broadcasting config to use env() for test compatibility
  • Add BROADCAST_CONNECTION=null to phpunit.xml for test environment
  • 24 tests (19 unit + 5 feature), 72 assertions, all passing

- Add TitleNormalizer service for generic title similarity matching
  (provider prefixes, quality tags, years, version suffixes, unicode)
- Add MergeSeries job with episode-level failover by season+episode number
- Add EpisodeFailover model and migration
- Extend MergeChannels with title-based VOD merge for unmatched stream_ids
- Add auto-merge toggles in playlist settings (VOD + series on sync)
- Add merge/unmerge actions to VOD group context menu
- Add merge/unmerge actions to series category context menu
- Add merge/unmerge actions to series list header
- Fix broadcasting config to use env() for test compatibility
- Add BROADCAST_CONNECTION=null to phpunit.xml for test environment
- 24 tests (19 unit + 5 feature), 72 assertions, all passing
@Serph91P Serph91P marked this pull request as ready for review March 17, 2026 18:14
sparkison and others added 5 commits March 20, 2026 18:01
… merge

- Replace title-based fuzzy matching with exact TMDB ID grouping
- Extract tmdb_id from provider responses during import (VOD + Series)
- Extract tmdb_id during Channel::fetchMetadata() and Series::fetchMetadata()
- Add tmdb_id to Channel upsert update list
- Update MergeChannels: replace mergeVodByTitle() with mergeVodByTmdbId()
- Update MergeSeries: group by tmdb_id instead of normalized titles
- Update UI: rename toggles and fieldsets to reflect TMDB-based merge
- Update PlaylistController, SyncListener dispatch params
- Rewrite merge tests for TMDB ID-based logic
@sparkison
Copy link
Copy Markdown
Member

I'm going to close this one down, I'm feeling like this might be a good use of a plugin? Sorry for the back and forth on this one, just isn't feeling like a good fit at the moment.

@sparkison sparkison closed this Mar 31, 2026
@Serph91P Serph91P deleted the feature/title-based-vod-series-merge branch April 12, 2026 07:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants