Add file path and bitrate support for Jellyfin tracks
This commit is contained in:
parent
3f4770a735
commit
7de84c535c
1 changed files with 13 additions and 6 deletions
|
|
@ -114,6 +114,12 @@ class JellyfinTrack:
|
||||||
self._album_id = jellyfin_data.get('AlbumId', '')
|
self._album_id = jellyfin_data.get('AlbumId', '')
|
||||||
self._artist_ids = [artist.get('Id', '') for artist in jellyfin_data.get('ArtistItems', [])]
|
self._artist_ids = [artist.get('Id', '') for artist in jellyfin_data.get('ArtistItems', [])]
|
||||||
|
|
||||||
|
# File path and media info (used by quality scanner and DB update)
|
||||||
|
self.path = jellyfin_data.get('Path')
|
||||||
|
# Extract bitrate from MediaSources if available
|
||||||
|
media_sources = jellyfin_data.get('MediaSources', [])
|
||||||
|
self.bitRate = (media_sources[0].get('Bitrate') or 0) // 1000 if media_sources else None # Convert bps to kbps
|
||||||
|
|
||||||
def _parse_date(self, date_str: Optional[str]) -> Optional[datetime]:
|
def _parse_date(self, date_str: Optional[str]) -> Optional[datetime]:
|
||||||
if not date_str:
|
if not date_str:
|
||||||
return None
|
return None
|
||||||
|
|
@ -508,7 +514,7 @@ class JellyfinClient:
|
||||||
'ParentId': self.music_library_id,
|
'ParentId': self.music_library_id,
|
||||||
'IncludeItemTypes': 'Audio',
|
'IncludeItemTypes': 'Audio',
|
||||||
'Recursive': True,
|
'Recursive': True,
|
||||||
'Fields': 'AlbumId,ArtistItems',
|
'Fields': 'AlbumId,ArtistItems,Path,MediaSources',
|
||||||
'SortBy': 'AlbumId,IndexNumber',
|
'SortBy': 'AlbumId,IndexNumber',
|
||||||
'SortOrder': 'Ascending',
|
'SortOrder': 'Ascending',
|
||||||
'StartIndex': start_index,
|
'StartIndex': start_index,
|
||||||
|
|
@ -658,7 +664,7 @@ class JellyfinClient:
|
||||||
'ParentId': album_id,
|
'ParentId': album_id,
|
||||||
'IncludeItemTypes': 'Audio',
|
'IncludeItemTypes': 'Audio',
|
||||||
'Recursive': True,
|
'Recursive': True,
|
||||||
'Fields': 'AlbumId,ArtistItems',
|
'Fields': 'AlbumId,ArtistItems,Path,MediaSources',
|
||||||
'SortBy': 'IndexNumber',
|
'SortBy': 'IndexNumber',
|
||||||
'SortOrder': 'Ascending',
|
'SortOrder': 'Ascending',
|
||||||
'Limit': 200 # Most albums won't have more than 200 tracks
|
'Limit': 200 # Most albums won't have more than 200 tracks
|
||||||
|
|
@ -850,6 +856,7 @@ class JellyfinClient:
|
||||||
params = {
|
params = {
|
||||||
'ParentId': album_id,
|
'ParentId': album_id,
|
||||||
'IncludeItemTypes': 'Audio',
|
'IncludeItemTypes': 'Audio',
|
||||||
|
'Fields': 'Path,MediaSources',
|
||||||
'SortBy': 'IndexNumber',
|
'SortBy': 'IndexNumber',
|
||||||
'SortOrder': 'Ascending',
|
'SortOrder': 'Ascending',
|
||||||
'Limit': 100 # Most albums won't hit this limit
|
'Limit': 100 # Most albums won't hit this limit
|
||||||
|
|
@ -987,7 +994,7 @@ class JellyfinClient:
|
||||||
'Recursive': True,
|
'Recursive': True,
|
||||||
'SortBy': 'DateCreated',
|
'SortBy': 'DateCreated',
|
||||||
'SortOrder': 'Descending',
|
'SortOrder': 'Descending',
|
||||||
'Fields': 'AlbumId,ArtistItems',
|
'Fields': 'AlbumId,ArtistItems,Path,MediaSources',
|
||||||
'Limit': max_results
|
'Limit': max_results
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1018,7 +1025,7 @@ class JellyfinClient:
|
||||||
'Recursive': True,
|
'Recursive': True,
|
||||||
'SortBy': 'DateLastSaved', # When track metadata was last saved
|
'SortBy': 'DateLastSaved', # When track metadata was last saved
|
||||||
'SortOrder': 'Descending',
|
'SortOrder': 'Descending',
|
||||||
'Fields': 'AlbumId,ArtistItems',
|
'Fields': 'AlbumId,ArtistItems,Path,MediaSources',
|
||||||
'Limit': max_results
|
'Limit': max_results
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1385,7 +1392,7 @@ class JellyfinClient:
|
||||||
'ParentId': playlist_id,
|
'ParentId': playlist_id,
|
||||||
'IncludeItemTypes': 'Audio',
|
'IncludeItemTypes': 'Audio',
|
||||||
'Recursive': True,
|
'Recursive': True,
|
||||||
'Fields': 'AlbumId,ArtistItems',
|
'Fields': 'AlbumId,ArtistItems,Path,MediaSources',
|
||||||
'SortBy': 'SortName',
|
'SortBy': 'SortName',
|
||||||
'SortOrder': 'Ascending'
|
'SortOrder': 'Ascending'
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue