streamrip
streamrip copied to clipboard
Playlist management and Deezer alternative tracks
Playlist management:
- Related to #603
- Can give path separators in the folder_format and track_format.
- Added "albumtitle" keyword in track_format
- Added "playlist" and "owner" keywords in folder_format, usable when dealing with a playlist
- Added playlist_format, with "playlist" and "owner" keywords. Previous config was equivalent to 'playlist_format="{playlist}"'.
- Added m3u8_format parameter, to generate m3u8 file when ripping a playlist, with "playlist" and "owner" keywords.
Deezer alternative tracks:
- Related to #638
- When a track data is marked "Readable=false" by the API.
- Look for a track specified in "Alternative" field, or else do a strict search based on Artist name, Album title and Track title
- Replace original track id and metadata and continue process, or else log an error and skip track
Unreadable track is often due to track id changing or track not available anymore in a specific area. The latter may not be recoverable by alternative field or search. No idea why deezer is doing the former, and the Web UI or mobile app are automagically dealing with these obsolete IDs without updating the playlist content, which is a shame.
Deezer errors
- Related to #638
- Defaulting to mp3 320kbps if unable to get the maximum quality
- Track skiped instead of process failure, when errors getting metadata or stream
Warning, there is a breaking change : the "downloaded.db" table contains a new column. So users need to delete their old table
This needs to be split into multiple PRs so that I can review.
- Deezer changes
- Subfolder changes
- DB changes
Hi @nathom ,
I can cancel and create another PR for the first part (it's the end state of my first branch), with all that is required to deal with playlist for all sources :
- playlist m3u8 file generation
- new field in db (path to extracted track) to allow re-creation of entries in m3u8 when using cache
- new keywords to deal with playlist, new "albumtitle" keyword in track_format
- subfolders in xxxx_format templates (and according changes in path normalization)
It also contains the supression of some fatal exceptions when dealing with Deezer :
- unable to determine the max bitrate, fallback to mp3 320kpbs)
- unable to tag / embed covers : FLAC detection seems picky, a file that fails to be detected as FLAC is playable with foobar, for instance -> file is kept as-is with a warning
The changes related to tracks are scattered accross 12 files. I can add a db DDL update to avoid breaking change, except when activating m3u8 file generation who would force the track to be fully re-downloaded.
Then I will create another one for the handling of alternative deezer track in playlist, when the original one is not readable.
Is it ok for you ?
Or I can move the fix for Deezer errors (FLAC not recognized, max bitrate undefined) to the second part with alternative Deezer tracks, by juggling a bit with my two branches.
Yes any way is fine. But each one should be one feature or in one category. The breaking DB change needs to be separate for sure.
PR closed, reworking to split features