Add library song/video APIs and params

This commit is contained in:
Rafael Moraes
2026-05-23 14:42:55 -03:00
parent f8ec2367af
commit 03fb4a255e
2 changed files with 53 additions and 1 deletions
+49 -1
View File
@@ -17,11 +17,13 @@ from .constants import (
APPLE_MUSIC_LIBRARY_PLAYLIST_API_URI, APPLE_MUSIC_LIBRARY_PLAYLIST_API_URI,
APPLE_MUSIC_LIBRARY_PLAYLISTS_API_URI, APPLE_MUSIC_LIBRARY_PLAYLISTS_API_URI,
APPLE_MUSIC_LICENSE_API_URL, APPLE_MUSIC_LICENSE_API_URL,
APPLE_MUSIC_LIBRARY_MUSIC_VIDEO_API_URI,
APPLE_MUSIC_MUSIC_VIDEO_API_URI, APPLE_MUSIC_MUSIC_VIDEO_API_URI,
APPLE_MUSIC_LIBRARY_ALBUMS_API_URI, APPLE_MUSIC_LIBRARY_ALBUMS_API_URI,
APPLE_MUSIC_PLAYLIST_API_URI, APPLE_MUSIC_PLAYLIST_API_URI,
APPLE_MUSIC_SEARCH_API_URI, APPLE_MUSIC_SEARCH_API_URI,
APPLE_MUSIC_LIBRARY_MUSIC_VIDEOS_API_URI, APPLE_MUSIC_LIBRARY_MUSIC_VIDEOS_API_URI,
APPLE_MUSIC_LIBRARY_SONG_API_URI,
APPLE_MUSIC_LIBRARY_SONGS_API_URI, APPLE_MUSIC_LIBRARY_SONGS_API_URI,
APPLE_MUSIC_SONG_API_URI, APPLE_MUSIC_SONG_API_URI,
APPLE_MUSIC_UPLOADED_VIDEO_API_URL, APPLE_MUSIC_UPLOADED_VIDEO_API_URL,
@@ -430,9 +432,54 @@ class AppleMusicApi:
return artist return artist
async def get_library_song(
self,
song_id: str,
include: str = "catalog",
extend: str = "extendedAssetUrls",
) -> dict:
log = logger.bind(action="get_library_song", song_id=song_id)
song = await self._amp_request(
APPLE_MUSIC_LIBRARY_SONG_API_URI.format(
song_id=song_id,
),
{
"include": include,
"extend": extend,
},
)
log.debug("success", song=song)
return song
async def get_library_music_video(
self,
music_video_id: str,
include: str = "catalog",
) -> dict:
log = logger.bind(
action="get_library_music_video", music_video_id=music_video_id
)
music_video = await self._amp_request(
APPLE_MUSIC_LIBRARY_MUSIC_VIDEO_API_URI.format(
music_video_id=music_video_id,
),
{
"include": include,
},
)
log.debug("success", music_video=music_video)
return music_video
async def get_library_album( async def get_library_album(
self, self,
album_id: str, album_id: str,
include: str = "catalog",
extend: str = "extendedAssetUrls", extend: str = "extendedAssetUrls",
) -> dict: ) -> dict:
log = logger.bind(action="get_library_album", album_id=album_id) log = logger.bind(action="get_library_album", album_id=album_id)
@@ -442,6 +489,7 @@ class AppleMusicApi:
album_id=album_id, album_id=album_id,
), ),
{ {
"include": include,
"extend": extend, "extend": extend,
}, },
) )
@@ -453,7 +501,7 @@ class AppleMusicApi:
async def get_library_playlist( async def get_library_playlist(
self, self,
playlist_id: str, playlist_id: str,
include: str = "tracks", include: str = "catalog,tracks",
limit: int = 100, limit: int = 100,
extend: str = "extendedAssetUrls", extend: str = "extendedAssetUrls",
) -> dict: ) -> dict:
+4
View File
@@ -14,6 +14,10 @@ APPLE_MUSIC_UPLOADED_VIDEO_API_URL = (
APPLE_MUSIC_ALBUM_API_URI = "/v1/catalog/{storefront}/albums/{album_id}" APPLE_MUSIC_ALBUM_API_URI = "/v1/catalog/{storefront}/albums/{album_id}"
APPLE_MUSIC_PLAYLIST_API_URI = "/v1/catalog/{storefront}/playlists/{playlist_id}" APPLE_MUSIC_PLAYLIST_API_URI = "/v1/catalog/{storefront}/playlists/{playlist_id}"
APPLE_MUSIC_ARTIST_API_URI = "/v1/catalog/{storefront}/artists/{artist_id}" APPLE_MUSIC_ARTIST_API_URI = "/v1/catalog/{storefront}/artists/{artist_id}"
APPLE_MUSIC_LIBRARY_SONG_API_URI = "/v1/me/library/songs/{song_id}"
APPLE_MUSIC_LIBRARY_MUSIC_VIDEO_API_URI = (
"/v1/me/library/music-videos/{music_video_id}"
)
APPLE_MUSIC_LIBRARY_ALBUM_API_URI = "/v1/me/library/albums/{album_id}" APPLE_MUSIC_LIBRARY_ALBUM_API_URI = "/v1/me/library/albums/{album_id}"
APPLE_MUSIC_LIBRARY_PLAYLIST_API_URI = "/v1/me/library/playlists/{playlist_id}" APPLE_MUSIC_LIBRARY_PLAYLIST_API_URI = "/v1/me/library/playlists/{playlist_id}"
APPLE_MUSIC_SEARCH_API_URI = "/v1/catalog/{storefront}/search" APPLE_MUSIC_SEARCH_API_URI = "/v1/catalog/{storefront}/search"