스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
Apple Music API 및 MusicKit 소개
Apple Music API 및 MusicKit 클라이언트 프레임워크에 대해 알아보세요. Apple Music 기능을 내 웹 서비스나 안드로이드 앱에 통합하고, Apple Music API에 콘텐츠를 검색하거나 가져오도록 요청하며, 구독자 경험을 개인화하는 방법을 배울 수 있습니다.
리소스
관련 비디오
WWDC22
WWDC21
-
다운로드
안녕하세요, WWDC에 오신 것을 환영합니다 제 이름은 Justin이고 Apple Music 개발 팀의 엔지니어입니다 오늘은 Apple Music API 사용에 관련된 기본 사항을 중심으로 MusicKit에 대해 소개해 드리겠습니다 이 세션에서는 MusicKit 클라이언트 프레임워크에 대한 개요 및 Apple Music API 웹 서비스와 통합하는 방법을 안내합니다 개발자로서 액세스 권한을 얻는 방법과 Apple Music API 사용에 관한 구체적인 정보를 안내해 드리겠습니다 콘텐츠 및 리소스 요청, 대규모 리소스 컬렉션 작업 시 제한 및 페이지네이션 사용하기, 검색 엔드포인트를 활용하여 카탈로그에서 콘텐츠 찾는 방법 마지막으로, Apple Music 구독자가 사용할 수 있는 몇 가지 개인화된 기능과 앱에서 이러한 기능에 대한 액세스를 제공하는 방법을 살펴보겠습니다
MusicKit 및 Apple Music API에 대한 간략한 소개부터 시작하죠 MusicKit은 2017년 WWDC에서 처음 발표되었습니다 그 이후로 Apple Music과 더 쉽게 통합할 수 있도록 개선되었으며 추가 기능에 대한 지원이 계속 추가되고 있습니다 MusicKit은 클라이언트 프레임워크와 Apple Music API의 조합입니다 함께 사용하면 Apple Music 기능을 앱에 추가할 수 있습니다 카탈로그를 검색하고 인기 차트를 탐색하는 기능을 사용하여 아티스트, 앨범, 재생 목록 등을 포함한 Apple Music에서 콘텐츠를 검색하고 가져올 수 있습니다 사용자의 동의 하에 MusicKit 및 Apple Music API를 사용하여 구독자를 인증하여 사용 가능한 콘텐츠를 재생하고 음악 라이브러리, 추천, 최근 재생 기록을 비롯한 개인화된 기능에 대한 액세스를 제공할 수 있습니다 MusicKit 클라이언트 프레임워크는 구독자를 인증하고 장치에서 재생을 시작 및 제어하는 데 필요한 API를 제공합니다 클라이언트 프레임워크는 Apple 플랫폼의 앱 Javascript를 사용하는 웹 응용 프로그램 및 사용 가능한 SDK를 사용하는 Android 응용 프로그램에 사용할 수 있습니다
Apple 플랫폼의 MusicKit에는 Apple Music을 앱에 통합하는 데 필요한 모든 것이 있습니다 구독자는 앱 내에서 인증하거나 가입하여 재생을 시작 및 제어하고 기타 개인화된 기능에 액세스할 수 있습니다 사용 가능한 API는 리소스 및 페이지네이션에 필요한 기본 지원을 통해 Apple Music에서 콘텐츠를 검색하고 접근을 위한 호출을 가속화합니다 나중에 다루게 될 많은 주제는 Apple 플랫폼으로 자동으로 Apple Music API에 직접 액세스하고 요청하는 방법입니다 Apple 플랫폼용 앱을 작성하는 개발자는 해당 API에 대한 소개 세션 "Meet MusicKit for Swift"를 시청하고 더 많은 기능을 확인하려면 "MusicKit으로 더 많은 콘텐츠 탐색" 세션을 시청하는 것이 좋습니다
MusicKit on the Web을 사용하면 Javascript를 사용하여 Apple Music을 응용 프로그램에 쉽게 가져올 수 있습니다 Apple Music 콘텐츠를 검색하고 구독자가 로그인하여 개인화된 기능에 액세스하고 웹 사이트에서 직접 콘텐츠를 재생하도록 할 수 있습니다 Apple Music API에 대한 전체 액세스 권한을 제공하여 독특한 음악 경험을 창조합니다 MusicKit은 모든 기능을 갖춘 미디어 플레이어를 포함한 빌트인 웹 구성 요소 컬렉션을 제공합니다 이러한 구성요소는 시작이 간편하며 사용자 환경에 맞게 유연하게 맞춤설정이 가능합니다
Android용 MusicKit을 사용하면 Apple Music을 Android 애플리케이션에 통합할 수 있습니다 Apple Music 구독자 인증, 콘텐츠 재생 제어 Apple Music API에 대한 전체 액세스 지원을 통해 풍부한 음악 경험을 구축할 수 있습니다
Apple Music API는 검색 기능 및 Apple Music 카탈로그 콘텐츠에 필요한 액세스를 제공하는 일반적인 JSON 웹 서비스입니다 인증된 가입자는 음악 라이브러리, 추천 및 최근 재생 기록을 포함한 개인화된 기능에 액세스할 수 있습니다 다음은 액세스 방법에 대해 설명하겠습니다 Apple Music API에 요청하려면 개발자 토큰이 필요합니다 Apple 플랫폼의 애플리케이션의 경우 앱에 MusicKit 서비스를 활성화하여 자동 토큰 관리를 활용할 수 있습니다 이 서비스는 여기에 표시된 Apple 개발자 포털의 앱 ID 섹션에서 찾을 수 있습니다
다른 플랫폼의 애플리케이션의 경우 Apple 개발자 포털에서 MusicKit 개발자로 등록하여 개발자 토큰을 얻을 수 있습니다 거기에서 개인 키를 요청하고 다운로드할 수 있습니다 JSON 웹 토큰을 생성한 후 다운로드한 개인 키로 서명해야 합니다 JSON 웹 토큰은 두 부분으로 나뉩니다 첫 번째 부분은 필수 헤더로 ES256이어야 하는 서명 알고리즘 "alg"와 개인 키 다운로드의 일부로 포함된 키 식별자 "kid"를 포함합니다 토큰의 두 번째 부분은 클레임입니다 Apple Music API에는 세 가지 필수 클레임이 있습니다 발급자 ID "iss"는 Apple 개발자 포털의 멤버십 섹션에서 찾을 수 있는 팀 ID입니다 발급 시간을 표시하는 "iat,"는 이는 Epoch 이후 경과 시간을 초단위로 표시합니다 그리고 만료 시간을 나타내는 "exp."이 있습니다 이는 발행된 시간과 동일한 시간 형식입니다 토큰은 발행일로부터 최대 6개월까지 만료되도록 생성할 수 있습니다 웹 애플리케이션의 경우 웹사이트에만 유효한 토큰을 발급하는 출처 클레임을 제공하는 것이 좋습니다
Apple Music API에 대한 모든 요청은 인증 헤더에 유효하고 서명된 토큰을 제공해야 합니다 Apple 플랫폼의 응용 프로그램에 대해 MusicKit 서비스를 활성화하면 이 작업이 자동으로 수행됩니다 웹용 MusicKit은 Apple Music API에 요청하기 위해 생성한 토큰으로 구성해야 합니다 JSON 웹 토큰 생성에 대한 자세한 내용은 Apple Music API 설명서에서 찾을 수 있습니다 이제 Apple Music API를 사용하여 리소스를 요청하는 방법을 보여 드리겠습니다 리소스는 아티스트, 앨범, 노래, 재생 목록 등과 같은 Apple Music 콘텐츠를 모델링합니다 각각에 해당되는 유형이 있습니다 리소스는 검색과 같은 검색 기능이나 식별자를 사용하여 Apple Music API 엔드 포인트에서 가져올 수 있습니다 다음은 식별자를 사용하여 API에서 재생 목록 리소스를 가져오기 위한 요청 URL의 예입니다 Apple Music API는 api.music.apple.com에서 호스팅됩니다 URL의 경로는 RESTful 패턴을 사용하며 리소스 또는 기능의 위치를 나타냅니다 위치의 첫 번째 요소는 현재 버전 1인 API 버전입니다 중요한 변경 사항이 도입되면 새 버전을 사용할 수 있습니다 버전은 리소스 및 새로운 기능에 대한 개선 사항이 제공되는 경우에도 기존 호출과의 역호환성을 유지합니다 Apple Music 카탈로그 내 요청의 경우 위치의 다음 섹션은 가져올 특정 카탈로그를 나타냅니다 Apple Music은 전 세계 스트리밍 서비스이므로 콘텐츠는 지역에 따라 다를 수 있으며 이를 스토어프론트라고 합니다
스토어프론트 및 콘텐츠 가용성에 대한 정보는 "Apple Music API를 사용한 상호 참조 콘텐츠"라는 제목의 세션을 시청하세요 이 예에서는 두 글자로 된 국가 코드 "us"로 표시된 미국 매장의 카탈로그에서 재생 목록을 가져옵니다 이 위치의 마지막 부분은 "재생 목록" 유형 다음에 해당 식별자로 표시되는 리소스의 ID입니다
Apple Music은 많은 지역에서 사용할 수 있으므로 선택적 언어 태그 쿼리 매개변수 "L"을 사용하여 현지화 지원이 가능합니다 여기서는 영어에 "en-US"라는 언어 태그를 지정합니다 스페인어로 현지화된 콘텐츠를 가져오려면 "es-MX" 태그를 지정할 수 있습니다 간단하게 하기 위해 이 예제에서는 언어 태그를 지정하지 않을 것이며 그 결과 스토어프론트의 기본 현지화가 됩니다 Apple Music을 사용할 수 있는 매장 및 지원되는 현지화는 스토어프론트 참조 엔드 포인트에 액세스하여 찾을 수 있습니다 자세한 내용은 Apple Music API 설명서에서 찾을 수 있습니다
다음은 재생 목록에 대한 GET 요청을 만드는 방법입니다 이는 리소스 컬렉션 응답을 반환하며 재생 목록 리소스와 함께 "데이터" 어레이가 여기 포함됩니다 리소스 개체는 ID 값 및 유형으로 콘텐츠의 ID를 나타냅니다 ID와 유형의 조합은 리소스의 고유한 ID를 나타냅니다 href 값은 리소스를 가져올 수 있는 API의 위치를 나타냅니다 이 경우 위치는 우리가 요청한 경로와 동일합니다 콘텐츠에 대한 메타데이터 값은 리소스의 속성 맵에서 찾을 수 있습니다 이 재생 목록 큐레이터 및 트랙과 같은 다른 리소스와의 직접 연결은 관계 맵에서 찾을 수 있습니다
다음으로 재생 목록에 대한 메타데이터 값이 포함된 속성 맵을 자세히 살펴보겠습니다 재생 목록의 이름, 큐레이터 이름 및 설명 속성을 사용하는 오른쪽 위젯에서 이러한 속성 중 일부를 사용하는 예를 살펴보겠습니다 playParams는 구독자가 콘텐츠를 스트리밍할 수 있는 시기를 나타내는 많은 리소스 유형의 공통 속성입니다 playParams가 없는 콘텐츠는 재생할 수 없으므로 재생 제어의 활성화 여부를 결정하는 데 사용할 수 있습니다 아트워크는 이미지를 로드할 수 있는 URL과 함께 이미지의 최대 너비 및 높이 값을 포함하는 많은 리소스 유형에 대한 또 다른 공통 속성입니다
Apple에서 개발자 피드백은 매우 중요하며 모든 사람을 위한 API와 서비스를 개선하는 데 도움이 됩니다 올해 가장 많이 요청된 기능 중 하나가 추가되었다는 것을 알려드리게 되어 기쁩니다 이제 Apple Music API에서 아티스트 아트워크를 사용할 수 있으므로 평범한 실루엣은 과거의 일이 되었습니다 모든 신규 및 기존 앱은 아티스트 리소스에 추가된 아트워크 속성을 찾아 이러한 이미지에 대한 지원을 추가할 수 있습니다 아티스트 아트워크는 다른 콘텐츠 유형의 아트워크와 동일한 방식으로 로드할 수 있습니다 다음은 조금 전에 봤던 재생 목록에 대한 아트워크 URL의 축약된 예입니다 아트워크 URL에는 파란색으로 강조 표시된 "w" 너비 및 "h" 높이 토큰이 포함됩니다 이 URL을 사용하여 아트워크를 로드하려면 이 토큰을 원하는 디스플레이 해상도로 바꿔야 합니다 재생 목록 아트워크는 정사각형이므로 너비와 높이 모두에 동일한 해상도를 사용합니다 다음은 400 x 400, 300 x 300, 200 x 200의 해상도를 요청하는 예입니다 이미지는 각 해상도에서 표시할 수 있는 크기이며 더 작은 이미지의 경우 파일 크기가 줄어듭니다
모든 리소스 유형에는 해당 리소스에 대한 공통 또는 기본 메타데이터를 나타내는 기본 속성 집합이 있습니다 일부 리소스에는 "확장된 속성"이라고 하는 가져올 수 있는 추가 속성이 있습니다 이러한 확장 속성은 확장 쿼리 매개변수를 사용하여 요청할 수 있습니다 예를 들어 Apple Music 재생 목록의 트랙은 노래이거나 뮤직 비디오입니다 재생 목록에 포함된 트랙 유형을 알고 싶다면 trackTypes 확장 속성을 요청할 수 있습니다 확장 속성은 기본 속성과 함께 리소스의 속성 맵에 나타납니다 재생 목록의 트랙이 노래가 아닌 뮤직 비디오인 경우 재생 버튼을 사용자 지정하여 시청자에게 알릴 수 있습니다
이제 관계 맵을 살펴보면 이 재생 목록에서 다른 리소스와의 몇 가지 직접 연결이 표시됩니다 많은 리소스에는 일부 콘텐츠를 직접 요청할 때 반환되는 자동 관계가 있습니다 재생 목록의 자동 관계는 큐레이터와 트랙입니다 관계 이름은 이 재생 목록의 큐레이터와 같이 연결이 무엇인지 나타내기 위해 지정됩니다 관계를 직접 가져올 수 있는 href 위치와 관련 리소스 컬렉션에 대한 데이터 어레이가 있습니다 재생 목록의 경우 큐레이터 관계가 자동으로 관련되어 관련 리소스의 ID만 표시됩니다 이를 통해 해당 ID 또는 href를 사용하여 이 리소스에 쉽게 연결할 수 있습니다 재생 목록에는 이미 큐레이터의 이름이 속성으로 포함되어 있으므로 관련 큐레이터 리소스에 대한 다른 메타데이터를 포함할 필요가 없습니다 리소스의 ID를 사용하여 큐레이터 이름을 링크로 만들어 사람들이 원하는 경우 큐레이터를 탐색하여 추가 콘텐츠를 찾을 수 있습니다 아트워크에 재생 목록과 큐레이터에 대한 추가 정보를 표시하려면 큐레이터의 메타데이터를 가져와야 합니다 include 매개변수를 사용하여 관련 리소스 메타데이터의 원하는 관계를 지정합니다 일부 자원 유형에는 기본적으로 추가관계가 포함되어 있고 이 매개변수로도 요청할 수 있습니다 관계를 포함하면 응답 크기가 증가하고 앱 속도에 부정적인 영향을 줄 수 있습니다 관련 리소스가 원하는 많은 수의 유용한 값은 원래 리소스의 속성으로 직접 찾을 수 있습니다 최상의 성능을 위해 응답에 필요한 관계와 메타데이터만 포함하는 것이 좋습니다 자세한 정보는 Apple Music API 설명서에서 확인할 수 있으며 관계는 Apple Music API 문서에서 확인할 수 있습니다 확장된 속성, 관계 및 보기라고 하는 특별한 관계에 대해 알아보려면 "Apple Music API로 카탈로그 탐색" 세션을 시청하세요 예제 재생 목록에 대한 관계를 다시 살펴보면 재생 목록에 대한 트랙이 자동으로 포함됩니다 이는 관련 트랙 리소스에 대한 속성 메타데이터가 웅답에 표시된다는 것을 뜻합니다 관련 트랙의 속성은 오른쪽 위젯에 표시된 아트워크 및 기타 메타데이터를 사용하여 재생 목록의 트랙 목록을 표시하는 데 사용할 수 있습니다 이전 섹션에서 트랙과 함께 카탈로그에서 재생 목록 리소스를 가져오는 예를 보여 드렸습니다 이 섹션에서는 많은 리소스와의 관계를 처리하는 방법을 설명합니다 관계에 대한 관련 리소스는 데이터 배열에 나타납니다 관련 리소스의 수가 적으면 모든 리소스가 단일 응답으로 나타납니다 단일 응답에 나타나는 것보다 더 많은 관련 리소스가 있는 관계는 페이지라고 하는 여러 부분에서 가져와야 합니다
큰 재생 목록의 트랙 관계를 예로 들어 보겠습니다 재생 목록의 처음 100개 트랙만 기본적으로 포함됩니다 재생 목록에 100개 이상의 트랙이 있는 경우 후속 페이지에서 추가 트랙을 가져와야 합니다 다음은 100개 이상의 트랙이 있는 재생 목록에 대한 응답의 예입니다 트랙 관계에 대한 href 및 리소스 컬렉션 데이터는 앞에서 본 것처럼 응답에 나타납니다 이 재생 목록에는 응답에 포함된 것보다 더 많은 트랙이 있으므로 다음 위치는 데이터의 형제로 나타납니다 다음 위치는 컬렉션의 나머지 리소스를 가져올 수 있는 위치를 나타냅니다 다음 위치를 가져오면 직접 관계를 가져오고 제공된 오프셋에서 시작하여 관계의 리소스 컬렉션 데이터를 반환합니다 관계에 대한 기본 제한은 각 페이지에 적용됩니다 제한 매개변수를 제공하여 고유한 페이지 크기를 선택할 수 있습니다 페이지 크기 제한은 1과 특정 관계가 지정한 최대 페이지 크기 사이일 수 있으며 관계에 대한 리소스 컬렉션에 페이지에서 반환된 리소스 외에 추가 리소스가 포함된 경우 다음 위치는 계속해서 데이터의 형제로 나타납니다 리소스 컬렉션이 소진되면 다음 위치가 표시되지 않습니다 다음 위치는 요청에 대해 선택한 페이지 크기를 반영하지 않습니다 기본값과 다른 페이지 크기를 사용하려는 경우 각 요청에 제한 매개변수를 제공해야 합니다 리소스 컬렉션을 통해 페이지에 대한 응답에서 항상 다음 위치를 사용합니다 자체 오프셋을 계산하려고 하면 잘못된 위치 또는 중복 결과 문제가 발생할 수 있습니다 다음 섹션에서는 Apple Music API를 사용하여 Apple Music 카탈로그에서 콘텐츠를 검색하는 방법을 보여 드리겠습니다 Apple Music API는 검색어를 사용하여 카탈로그에서 콘텐츠를 찾는 기능을 제공합니다 검색 요청은 위치로 /search를 사용하고 매개변수로 검색어를 사용하는 카탈로그 리소스 요청과 유사합니다 유형 매개변수를 사용하여 관심 있는 콘텐츠 유형과 제한을 사용하면 각 유형에 포함할 최대 결과 수를 지정할 수 있습니다 요청한 제한을 초과하여 더 많은 결과가 발견되면 페이지네이션을 사용하여 검색을 계속할 수 있습니다 다음은 "팝"이라는 용어가 포함된 앨범 및 노래 검색에 대한 응답입니다 검색 엔드포인트는 일치하는 콘텐츠가 있는 요청된 각 유형에 대한 그룹을 포함하는 결과 개체와 함께 응답을 반환합니다 이 요청의 경우 앨범 및 노래에 대한 일치 항목이 발견되었습니다
응답에는 관련성을 기반으로 하는 결과 그룹에 대한 권장 순서가 포함된 메타 개체도 포함됩니다 이는 한 번에 여러 콘텐츠 유형을 처리하는 검색 환경을 구축하는 경우에 유용할 수 있습니다 각 결과 그룹에는 결과를 가져온 href와 검색어에 대한 관련 유형과 일치하는 리소스를 포함하는 리소스 컬렉션 데이터 배열이 있습니다 결과 그룹에 대해 더 많은 일치 항목을 사용할 수 있는 경우 그룹에는 추가 일치 항목을 가져올 수 있는 다음 위치가 포함됩니다 다음 위치를 요청하면 오프셋에서 시작하여 선택한 유형에 대해 더 많은 결과가 반환됩니다 마지막 섹션에서는 Apple Music API의 개인화된 기능에 액세스하는 방법에 대해 설명합니다
Apple Music API 및 MusicKit은 특정 사용자에게 개인화된 기능에 대한 액세스를 제공합니다 이러한 기능을 통해 가입자가 즐기는 콘텐츠를 추가하고 새로운 재생 목록을 생성하는 기능을 포함하여 Apple Music 보관함에서 콘텐츠를 보고 검색할 수 있도록 지원을 추가할 수 있습니다 개인의 음악 취향에 따라 맞춤 추천이 표시될 수 있습니다 또한 사람들이 최근에 들었던 음악을 다시 찾아 중단한 부분부터 다시 시작하거나 완전히 새로운 경험을 제공할 수 있습니다
Apple Music을 구독 중인 사용자는 개인화된 기능을 사용할 수 있습니다 이러한 기능을 지원하려면 먼저 MusicKit을 사용하여 앱으로 사용자를 인증하고 음악 데이터에 액세스할 수 있는 권한을 요청해야 합니다 권한이 부여되면 음악 사용자 토큰을 사용할 수 있습니다 이 토큰은 music-user-token 헤더의 Apple Music API 요청에 추가되며 개인화된 데이터에 대한 액세스를 인증하는 데 사용됩니다
음악 사용자 토큰은 앱과 사용자가 인증한 기기에 따라 다릅니다 이 토큰은 한 번에 단일 장치에 권한이 부여되므로 장치 간에 공유해서는 안 됩니다 토큰은 개인의 구독이나 비밀번호 변경에 따라 또는 앱에 대한 액세스 권한을 취소하는 경우 무효화될 수 있습니다 시간이 지나면 만료될 수도 있습니다 다시 로그인하고 앱에 대한 권한을 부여하라는 메시지를 표시하여 인증을 새로 고칠 수 있습니다 이 토큰은 Apple 플랫폼의 MusicKit 및 웹의 MusicKit에서 자동으로 관리됩니다 자세한 내용은 사용 중인 프레임워크에 대한 설명서를 참조하세요 오늘 세션에서는 MusicKit 및 Apple Music API를 사용하여 Apple Music을 앱에 통합하는 방법과 MusicKit 클라이언트 프레임워크를 지원하는 플랫폼에 대해 간략히 살펴보고, Apple Music API를 사용하여 카탈로그 콘텐츠에 액세스하고 찾는 방법과 구독자가 사용할 수 있는 일부 개인화된 기능에 대해 살펴보았습니다 Apple 플랫폼의 MusicKit에 대한 올해 업데이트에 대한 자세한 내용은 "MusicKit으로 더 많은 콘텐츠 탐색" 세션을 확인하세요 시청해 주셔서 감사합니다 남은 WWDC도 즐겁고 유익하게 보내시길 바랍니다
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.