Feature #444

Scans should include TV episodes

Added by Hammel over 2 years ago. Updated over 1 year ago.

Status:ClosedStart date:06 Jun 2015
Priority:UrgentDue date:
Assignee:Hammel% Done:

100%

Category:TMDB API
Target version:PiBox - 0.11.0
Severity:02 - High

Description

The MovieDB supports TV episodes.

  1. TV API
  2. TV API announcement
  3. Search TV

Looks like you do a search/tv for the show, then use the return ID to get episode details.

This will require a directory and file naming scheme of
  1. TV (top level dir, separate from movies)
  2. Show Title (2nd level dir)
  3. <season>.<episode>-Title.mp4 with both season and episode fields zero-padded.

Associated revisions

Revision fcefc511
Added by Hammel about 2 years ago

RM #444: Add support for scanning for TV episodes separately from videos.

Revision fcefc511
Added by Hammel about 2 years ago

RM #444: Add support for scanning for TV episodes separately from videos.

Revision 6f4c1117
Added by Hammel about 2 years ago

RM #444: Add tool for copying a directory listing for the purposes of testing the app without touching an existing tree.

Revision 6f4c1117
Added by Hammel about 2 years ago

RM #444: Add tool for copying a directory listing for the purposes of testing the app without touching an existing tree.

Revision b81e6652
Added by Hammel about 2 years ago

RM #444: Fix use of Alternates dialog with TV series. Cleaned up MovieDB structure and fixed findEpisode to strip special characters to better match local filenames to upstream episode names.

Revision b81e6652
Added by Hammel about 2 years ago

RM #444: Fix use of Alternates dialog with TV series. Cleaned up MovieDB structure and fixed findEpisode to strip special characters to better match local filenames to upstream episode names.

Revision 67270d91
Added by Hammel about 2 years ago

RM #444: When pulling a TV episode from JSON, save it's ID to the object ID.

Revision 67270d91
Added by Hammel about 2 years ago

RM #444: When pulling a TV episode from JSON, save it's ID to the object ID.

History

#1 Updated by Hammel about 2 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 20
To implement this:
  1. Add Movies, TV radio buttons to UI
  2. Add separate directory scan processing based on
    1. Top level: series title
    2. Second level: season
    3. Third level: episodes
  3. Add series and season to Video object (and db output); the episode title uses the movie title field

The key is the directory scan, which needs to save series and season data before adding a Video entry for an episode. I need to keep level-state during the scan.

Use of this feature requires that directories kept by the user are separate for movies and TV files.

#2 Updated by Hammel about 2 years ago

  • % Done changed from 20 to 40

I've moved some TV episodes (/movies/Cinema-3/tv/...) around to fit the proper structure (series/season/episode). Then I updated the UI code to handle scanning this and displaying them in sorted order in the video list if the TV radio button is selected. That all works and is in my sandbox.

Next up is to have the BuildDB button use the new information to search the TheMovieDB's TV API for episode info. The way to do this is to cache series and season data so it only has to request that data once for any associated set of episodes.

#3 Updated by Hammel about 2 years ago

  • % Done changed from 40 to 50

I now have the ability to retrieve the episode entry. The query for that still needs to be written, however. But the pieces needed to make the request are now available (series, season and episode IDs).

After that I will have the JSON data for the episdoe. The scanVideo() method will need to be update to pull the description and images for that episode out of the returned JSON. It's not clear yet if this will be different from the old movie queries, but that's where I'm at.

The code is still in my tree and not checked in yet.

#4 Updated by Hammel about 2 years ago

  • % Done changed from 50 to 70

This is nearly fully working now. You have to scan for either movies or tv shows, but not both. Scans work well. As do the checks for alternates (which will list all show information retrieved for a given series and season).

What's still missing:
  1. Fix rescan to scan for the series and season and then look for the named episode. The scan for series and season should update the static arrays in MovieDB.
  2. It's not clear if all season info is there. Online I can see South Park Season 3 "Tweek vs. Craig", but my scan it doesn't find it. Also, showing the alternates doesn't show the full season episode list, which it should.

I need to create a directory of filenames that matches the South Park and Game of Thrones lists so I can use them for testing instead of using the real directory structures. That way I can move everything out of the way except the one file that needs testing, like "Tweek vs. Craig".

#5 Updated by Hammel about 2 years ago

  • % Done changed from 70 to 80

Alternates dialog now works and all South Park and Game of Thrones episodes scanned correctly. The Alternates selection needs to retrieve the poster for the selected episode, however.

After fixing that, I need to regression test movies.

#6 Updated by Hammel over 1 year ago

  • Status changed from In Progress to Closed
  • % Done changed from 80 to 100

TV episodes are now fully supported in VideoLib and movies also work correctly. All changes tested, committed and pushed.

Closing issue.

Also available in: Atom PDF