@@ -255,18 +255,18 @@ pipe.deezer.com/api → schema.json → schema.graphql → deezer_py
255255
256256` queries/fragments.graphql ` defines reusable field sets shared across multiple queries:
257257
258- | Fragment | Used by | Key fields |
259- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
260- | ` TrackFields ` | search, get_track, get_album, get_artist, get_playlist, flow, flow_batch, flow_config_tracks, smart_tracklist, charts, user_charts, fav_tracks, similar_tracks, artist_mix, track_mix, music_together | id, title, ISRC, diskInfo, duration, isExplicit, isFavorite, popularity, album, contributors |
261- | ` ArtistFields ` | search, get_artist, charts, user_charts, recommendations, fav_artists, recently_played | id, name, picture, fansCount, isFavorite, bio (summary + full) |
262- | ` AlbumFields ` | search, get_album, get_artist, charts, user_charts, recommendations, fav_albums, recently_played | id, displayTitle, type, cover, contributors, releaseDate, isExplicit, isFavorite, fansCount, label, copyright |
263- | ` PlaylistFields ` | search, get_playlist, charts, recommendations, fav_playlists, recently_played | id, title, picture, estimatedTracksCount, fansCount, isFavorite, description, owner |
264- | ` LivestreamFields ` | search, get_livestream | id, name, language, description, isOnStream, country, cover, media (url + codec) |
265- | ` PodcastFields ` | search, get_podcast, fav_podcasts | id, displayTitle, cover, description, isExplicit, isFavorite, type |
266- | ` PodcastEpisodeFields ` | search, get_podcast, get_podcast_episode, podcast_episode_bookmarks | id, title, description, duration, cover, publicationDate, media (url + codec) |
267- | ` AudiobookFields ` | get_audiobook | id, displayTitle, cover, description, duration, releaseDate, fansCount, isExplicit, isFavorite, chaptersCount, discsCount, producerLine, publisher, contributors |
268- | ` AudiobookChapterFields ` | get_audiobook, get_audiobook_chapter | id, isrc, displayTitle, diskInfo, duration, isExplicit, isFavorite |
269- | ` PageInfoFields ` | All paginated queries | hasNextPage, endCursor |
258+ | Fragment | Used by | Key fields |
259+ | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- ------------------------------------------------------------------------------------------------------------- |
260+ | ` TrackFields ` | search, get_track, get_album, get_artist, get_playlist, flow, flow_batch, flow_config_tracks, smart_tracklist, charts, user_charts, fav_tracks, similar_tracks, artist_mix, track_mix, music_together | id, title, ISRC, diskInfo, duration, isExplicit, isFavorite, popularity, album, contributors |
261+ | ` ArtistFields ` | search, get_artist, charts, user_charts, recommendations, fav_artists, recently_played | id, name, picture, fansCount, isFavorite, bio (summary + full) |
262+ | ` AlbumFields ` | search, get_album, get_artist, charts, user_charts, recommendations, fav_albums, recently_played | id, displayTitle, type, cover, contributors, releaseDate, isExplicit, isFavorite, fansCount, label, copyright |
263+ | ` PlaylistFields ` | search, get_playlist, charts, recommendations, fav_playlists, recently_played | id, title, picture, estimatedTracksCount, fansCount, isFavorite, description, owner |
264+ | ` LivestreamFields ` | search, get_livestream | id, name, language, description, isOnStream, country, cover, media (url + codec) |
265+ | ` PodcastFields ` | search, get_podcast, fav_podcasts | id, displayTitle, cover, description, isExplicit, isFavorite, type |
266+ | ` PodcastEpisodeFields ` | search, get_podcast, get_podcast_episode, podcast_episode_bookmarks | id, title, description, duration, cover, publicationDate, media (url + codec) |
267+ | ` AudiobookFields ` | get_audiobook | id, displayTitle, cover, description, duration, releaseDate, fansCount, isExplicit, isFavorite, chaptersCount, discsCount, producerLine, publisher, contributors |
268+ | ` AudiobookChapterFields ` | get_audiobook, get_audiobook_chapter | id, isrc, displayTitle, diskInfo, duration, isExplicit, isFavorite |
269+ | ` PageInfoFields ` | All paginated queries | hasNextPage, endCursor |
270270
271271** All entity queries use shared fragments.** Every query that returns tracks, albums, artists, or playlists uses the corresponding fragment via ` ...TrackFields ` etc. Some queries (e.g., ` get_track.graphql ` , ` get_album.graphql ` ) extend the fragment with additional fields like ` media ` , ` lyrics ` , ` url ` , or ` tracksCount ` .
272272
@@ -415,7 +415,7 @@ Tests are organized into four layers:
415415| ** Client setup** | 3 | Import, instantiation with ARL, presence of all generated methods |
416416| ** Auth flow** (mocked) | 5 | JWT acquisition, token reuse, refresh on expiry, cookie domain, text/plain parsing |
417417| ** Error handling** | 5 | HTTP errors, invalid JSON, missing data key, GraphQL errors, success path |
418- | ** Model smoke tests** | 61 | One per query/mutation — fixture parses correctly with key fields accessible |
418+ | ** Model smoke tests** | 61 | One per query/mutation — fixture parses correctly with key fields accessible |
419419
420420### Auth Flow Tests
421421
@@ -505,24 +505,24 @@ git-cliff uses these prefixes to categorize changelog entries automatically (con
505505
506506### Commonly Used Types
507507
508- | Type | Key Fields |
509- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
510- | ` Track ` | ` id ` , ` title ` , ` ISRC ` , ` diskInfo ` , ` duration ` , ` album ` , ` contributors ` , ` lyrics ` , ` media ` (token + sizes), ` isFavorite ` , ` recommendedTracks ` , ` isAtmos ` , ` isExplicit ` |
511- | ` Album ` | ` id ` , ` displayTitle ` , ` type ` , ` cover ` , ` label ` , ` contributors ` , ` releaseDate ` , ` tracks ` , ` isFavorite ` , ` fallback ` |
512- | ` Artist ` | ` id ` , ` name ` , ` bio ` , ` picture ` , ` albums(types, roles) ` , ` topTracks ` , ` relatedArtist ` , ` isFavorite ` |
513- | ` Playlist ` | ` id ` , ` title ` , ` description ` , ` picture ` , ` tracks(first, after, order) ` , ` rawTracks ` , ` owner ` , ` isFavorite ` |
514- | ` Livestream ` | ` id ` , ` name ` , ` language ` , ` description ` , ` cover ` , ` country ` , ` media: [ExternalMedia!]! ` |
515- | ` Podcast ` | ` id ` , ` displayTitle ` , ` description ` , ` cover ` , ` type ` , ` isExplicit ` , ` isFavorite ` , ` episodes(first, after) ` , ` hasRights ` |
516- | ` PodcastEpisode ` | ` id ` , ` title ` , ` description ` , ` duration ` , ` cover ` , ` publicationDate ` , ` media ` (url + codec), ` url ` , ` podcast ` |
517- | ` Audiobook ` | ` id ` , ` displayTitle ` , ` cover ` , ` description ` , ` duration ` , ` releaseDate ` , ` chaptersCount ` , ` discsCount ` , ` publisher ` , ` contributors ` , ` chapters(first, after) ` |
518- | ` AudiobookChapter ` | ` id ` , ` isrc ` , ` displayTitle ` , ` diskInfo ` , ` duration ` , ` gain ` , ` media ` (token + sizes + rights), ` audiobook ` |
519- | ` Lyrics ` | ` synchronizedLines ` , ` synchronizedWordByWordLines ` , ` text ` , ` copyright ` , ` writers ` |
520- | ` Flow ` | ` id ` , ` title ` , ` cover ` , ` tracks: [FlowTrack!]! ` (each call returns fresh batch) |
521- | ` FlowConfig ` | ` id ` , ` title ` , ` visuals ` , ` tracks: [FlowConfigTrack!]! ` |
522- | ` TrackMedia ` | ` id ` , ` version ` , ` token ` , ` estimatedSizes ` , ` rights: MediaRights! ` |
523- | ` Search ` | ` results.{tracks, artists, albums, playlists, podcasts, podcastEpisodes, livestreams} ` , ` topResult ` , ` mixedResults ` |
524- | ` PrivateUser ` | ` id ` , ` playlists ` , ` userFavorites ` , ` favorites ` (deprecated, used for audiobooks), ` flow ` , ` flowConfigs ` , ` recommendations ` , ` madeForMe ` , ` recentlyPlayed ` , ` charts ` , ` musicTogetherGroups ` , ` podcastEpisodeBookmarks ` |
525- | ` MusicTogetherGroup ` | ` id ` , ` name ` , ` isReady ` , ` isFamily ` , ` members ` , ` suggestedTracklist(mood) ` , ` curatedTracklist ` , ` estimatedMembersCount ` |
508+ | Type | Key Fields |
509+ | -------------------- | ------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
510+ | ` Track ` | ` id ` , ` title ` , ` ISRC ` , ` diskInfo ` , ` duration ` , ` album ` , ` contributors ` , ` lyrics ` , ` media ` (token + sizes), ` isFavorite ` , ` recommendedTracks ` , ` isAtmos ` , ` isExplicit ` |
511+ | ` Album ` | ` id ` , ` displayTitle ` , ` type ` , ` cover ` , ` label ` , ` contributors ` , ` releaseDate ` , ` tracks ` , ` isFavorite ` , ` fallback ` |
512+ | ` Artist ` | ` id ` , ` name ` , ` bio ` , ` picture ` , ` albums(types, roles) ` , ` topTracks ` , ` relatedArtist ` , ` isFavorite ` |
513+ | ` Playlist ` | ` id ` , ` title ` , ` description ` , ` picture ` , ` tracks(first, after, order) ` , ` rawTracks ` , ` owner ` , ` isFavorite ` |
514+ | ` Livestream ` | ` id ` , ` name ` , ` language ` , ` description ` , ` cover ` , ` country ` , ` media: [ExternalMedia!]! ` |
515+ | ` Podcast ` | ` id ` , ` displayTitle ` , ` description ` , ` cover ` , ` type ` , ` isExplicit ` , ` isFavorite ` , ` episodes(first, after) ` , ` hasRights ` |
516+ | ` PodcastEpisode ` | ` id ` , ` title ` , ` description ` , ` duration ` , ` cover ` , ` publicationDate ` , ` media ` (url + codec), ` url ` , ` podcast ` |
517+ | ` Audiobook ` | ` id ` , ` displayTitle ` , ` cover ` , ` description ` , ` duration ` , ` releaseDate ` , ` chaptersCount ` , ` discsCount ` , ` publisher ` , ` contributors ` , ` chapters(first, after) ` |
518+ | ` AudiobookChapter ` | ` id ` , ` isrc ` , ` displayTitle ` , ` diskInfo ` , ` duration ` , ` gain ` , ` media ` (token + sizes + rights), ` audiobook ` |
519+ | ` Lyrics ` | ` synchronizedLines ` , ` synchronizedWordByWordLines ` , ` text ` , ` copyright ` , ` writers ` |
520+ | ` Flow ` | ` id ` , ` title ` , ` cover ` , ` tracks: [FlowTrack!]! ` (each call returns fresh batch) |
521+ | ` FlowConfig ` | ` id ` , ` title ` , ` visuals ` , ` tracks: [FlowConfigTrack!]! ` |
522+ | ` TrackMedia ` | ` id ` , ` version ` , ` token ` , ` estimatedSizes ` , ` rights: MediaRights! ` |
523+ | ` Search ` | ` results.{tracks, artists, albums, playlists, podcasts, podcastEpisodes, livestreams} ` , ` topResult ` , ` mixedResults ` |
524+ | ` PrivateUser ` | ` id ` , ` playlists ` , ` userFavorites ` , ` favorites ` (deprecated, used for audiobooks), ` flow ` , ` flowConfigs ` , ` recommendations ` , ` madeForMe ` , ` recentlyPlayed ` , ` charts ` , ` musicTogetherGroups ` , ` podcastEpisodeBookmarks ` |
525+ | ` MusicTogetherGroup ` | ` id ` , ` name ` , ` isReady ` , ` isFamily ` , ` members ` , ` suggestedTracklist(mood) ` , ` curatedTracklist ` , ` estimatedMembersCount ` |
526526
527527### Key Mutations
528528
0 commit comments