Skip to content

๐ŸŽตMusicKit

Minha Lee edited this page Dec 1, 2024 · 1 revision

MusicKit ๊ฐœ์š”

  1. ํด๋ผ์ด์–ธํŠธ ํ”„๋ ˆ์ž„์›Œํฌ
  2. AppleMusic API

๋กœ ๊ตฌ์„ฑ ๋˜์–ด์žˆ์Œ

MusicKit ๊ธฐ๋Šฅ

  1. AppleMusic ์ฝ˜ํ…์ธ ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๊ณ 
  2. ๋Œ€๊ทœ๋ชจ ์Œ์•… ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์‹œ์—, ๊ฐฏ์ˆ˜ ์ œํ•œ ํ˜น์€ ํŽ˜์ด์ง€๋„ค์ด์…˜์œผ๋กœ ๊ด€๋ฆฌ
  3. ๊ฒ€์ƒ‰ ๋ฐ, ์ธ๊ธฐ ์ฐจํŠธ ๋“ฑ์„ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Œ

ํด๋ผ์ด์–ธํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ†ตํ•ด

๊ตฌ๋…์ž์ธ์ง€๋ฅผ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๊ณ  ์žฌ์ƒ์„ ์ œ์–ดํ•˜๋Š” API ์ œ๊ณต

Apple๊ธฐ๊ธฐ๋“ค (Swift) / Web(JavaScript) / Android(ํŠน์ • SDK๋กœ ํ•œ์ •) ์—์„œ MusicKit์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—” Apple๊ธฐ๊ธฐ๋“ค์˜ ๊ฒฝ์šฐ๋งŒ ์‚ดํŽด๋„ ๋ฌด๋ฐฉํ•  ๊ฒƒ ๊ฐ™์Œ.

์• ํ”Œ ๊ธฐ๊ธฐ๋“ค์—์„œ์˜ MusicKit ์‚ฌ์šฉ์— ๊ด€ํ•œ ๋‚ด์šฉ์€ โ€œMeet MusicKit for Swiftโ€ ์ฐธ๊ณ 

Apple๊ธฐ๊ธฐ์—์„œ MusicKit์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ย Certificates, Identifiers & Profiles์—์„œ ํ† ํฐ์„ ํ™œ์„ฑํ™” ํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

ํ•ด๋‹น ๋ถ€๋ถ„์— ์ฒดํฌํ•˜์—ฌ Token ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

ํ•ด๋‹น ๋ถ€๋ถ„์— ์ฒดํฌํ•˜์—ฌ Token ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

access unavailable ์ด๋ฏธ์ง€

ํ˜„์žฌ๋Š” ๊ฐœ๋ฐœ์ž ๊ณ„์ • ๋ฐ ํŒ€์ด ์—†์–ด์„œ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•œ๋“ฏ

์›๋ž˜๋Š” ์ธ์ฆ ํ—ค๋”์— ์œ ํšจ & ์„œ๋ช…๋œ ํ† ํฐ์„ ์ œ๊ณตํ•ด์•ผ Apple Music API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Apple ๊ธฐ๊ธฐ ์œ„์—์„œ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ์ด ๊ธฐ๋Šฅ์€ ์ƒ๋žต ๊ฐ€๋Šฅํ•จ. (๊ณ ๋กœ ์šฐ๋ฆฌ๊ฐ€ Web์ด๋‚˜ ์•ˆ๋“œ๋กœ์ด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ธ์ฆ ํ† ํฐ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์€ ๋ฌด์‹œ๊ฐ€๋Šฅ)

Apple Music API๋ฅผ ์ด์šฉํ•œ ๋ฆฌ์†Œ์Šค ์š”์ฒญ

์• ํ”Œ๋ฎค์ง์˜ ์ปจํ…์ธ ๋“ค์€ Resource๋กœ ๋ชจ๋ธ๋ง ๋˜์–ด์žˆ์Œ (์•„ํ‹ฐ์ŠคํŠธ, ์ œ๋ชฉ, ์•จ๋ฒ”์ด๋ฆ„ ๋“ฑ๋“ฑโ€ฆ)

๊ฐ๊ฐ์— ํ•ด๋‹น๋˜๋Š” Type๋“ค์ด ์กด์žฌํ•œ๋‹ค๊ณ  ํ•จ. Resource๋“ค์€ ์‹๋ณ„์ž(Identifier)๋ฅผ ํ†ตํ•ด fetchํ•ด์˜ค๊ฑฐ๋‚˜, ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•จ

https://api.music.apple.com/v1/catalog/us/playlists/pl.2b0e6e332fdf4

์œ„์™€ ๊ฐ™์ด RESTful API ์š”์ฒญ์„ ํ†ตํ•ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ.

v1 : API ๋ฒ„์ „์„ ๋‚˜ํƒ€๋ฉฐ ์ดํ›„ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ๊ธฐ์กด์˜ ํ˜ธ์ถœ๊ณผ์˜ ์—ญํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค๊ณ  ํ•จ.

catalog/us : ์นดํƒˆ๋กœ๊ทธ ๋‚ด์˜ ์š”์ฒญ? โ† ๋ญ”๋ง์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Œ . us๋Š” ๊ตญ๊ฐ€ ์ฝ”๋“œ๋กœ์„œ ์šฐ๋ฆฌ๋‚˜๋ผ๋Š” kr. ๊ตญ๊ฐ€๋งˆ๋‹ค ์„œ๋น„์Šค ๋˜๋Š” ๊ณก์˜ ์ข…๋ฅ˜๊ฐ€ ๋‹ค๋ฅด๊ธฐ๋„ ํ•˜๊ณ  ์š”๊ธˆ์ •์ฑ…๋„ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๊ดœํžˆ ์ด์ƒํ•œ ๊ฑฐ ์•ˆ ๊ฑด๋“œ๋ฆฌ๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™์Œ. (๊ฒฐ๊ณผ์ ์œผ๋กœ ์Œ์•…์„ ์žฌ์ƒํ•˜๊ณ  ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๊ตฌ๋…์ž ์ธ์ฆ์ด ํ•„์š”ํ•˜๊ณ , ์šฐ๋ฆฌ์˜ ๋Œ€์ƒ์€ ํ•œ๊ตญ ๊ณ„์ •์„ ์“ธ ๊ฒƒ์ด๋ฏ€๋กœ)

playlists: ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ๋ผ๋Š” ๋œป ๊ทธ ์ดํ›„๋Š” ์‹๋ณ„์ž ๋ณ€ํ™”

์ดํ›„ ?l=en-US ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์–ธ์–ด ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Œ. ์–ธ์–ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ˜„์ง€ํ™”๋„ ์ ์šฉ์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™์Œ. ์˜ˆ๋ฅผ๋“ค์–ด ์ŠคํŽ˜์ธ์–ด๋Š” ์‚ฌ์šฉ๊ตญ๊ฐ€๊ฐ€ ๋งŽ์€๋ฐ, ์ด์ค‘ ๋ฉ•์‹œ์ฝ”์—์„œ ์ŠคํŽ˜์ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด๋ผ๋ฉด, ?l=es-MX ๋ฅผ ์ ์šฉํ•ด์•ผํ•จ

ํ•œ๊ตญ์–ด๋Š” ko

๋ฐ‘์—๋Š” api ์š”์ฒญ ์ฃผ์†Œ๋Š” ์•„๋‹ˆ๊ณ , ์ œ ๊ฐœ์ธ ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ์˜ ์‹ค์ œ url ์ฃผ์†Œ์ธ๋ฐ, ๋’ท ๋ถ€๋ถ„์„ ๋ณด๋ฉด

๊ณ ์œ ์‹๋ณ„์ž, ์–ธ์–ด์„ค์ • ๋“ฑ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

https://music.apple.com/kr/library/playlist/p.AWXoollUL2oZ1oA?l=ko

https://api.music.apple.com/v1/catalog/ko/playlist/p.1YeW315FqgQlaQE

GET ์š”์ฒญ ์˜ˆ์‹œ

id๋Š” ํ•ด๋‹น ์ปจํ…์ธ ์˜ ๊ณ ์œ ์‹๋ณ„์ž (์ง€๊ธˆ์˜ ๊ฒฝ์šฐ์—” ํŠน์ • ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ์˜ ๊ณ ์œ  ์‹๋ณ„์ž๊ฐ’)

href๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” API์˜ ์œ„์น˜

์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ(์žฌ์ƒ๋ชฉ๋ก์˜ ์ด๋ฆ„, ํ๋ ˆ์ดํ„ฐ์˜ ์ด๋ฆ„, ์žฌ์ƒ๋ชฉ๋ก์˜ ์„ค๋ช…)๋Š” attributes ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Œ.

ํ•ด๋‹น ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ์˜ ํ๋ ˆ์ดํ„ฐ(์ž‘์„ฑ์ž) ๋ฐ ์ˆ˜๋ก๋œ ํŠธ๋ž™๋“ค์˜ ์ •๋ณด๋Š” relationships ์— ํฌํ•จ

์˜ˆ์‹œ๊ฐ€ ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ๋กœ ๋‚˜์™€ ์žˆ์–ด์„œ, ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ์‹ค์ œ API ์š”์ฒญ์„ ๋ณด๋‚ด๋ณด๊ณ  attributes, relationships๋“ฑ ๋‚ด๋ถ€ ์†์„ฑ๋“ค์˜ ๊ฐ’์„ ๋ด์„œ ํŒ๋‹จํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™์Œ.

ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ์˜ ์˜ˆ์‹œ์—์„œ attributes ๋‚ด๋ถ€๋ฅผ ๋” ๋“ค์—ฌ๋‹ค ๋ณด๋ฉด, ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Œ.

name, curatorName, description์€ ๊ฐ๊ฐ ํ”Œ๋ ˆ์ด ๋ฆฌ์ŠคํŠธ ์ด๋ฆ„, ์ž‘์„ฑ์ž, ์„ค๋ช…๋“ฑ์— ๋Œ€์น˜ ๋˜๊ณ  (์‚ฌ์ง„ ์ฐธ์กฐ)

playParams๋Š” ์žฌ์ƒ์„ ์ œ์–ดํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ํ•จ. (์—†์œผ๋ฉด ์žฌ์ƒ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ปจํ…์ธ )

artwork ( ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ ์ปค๋ฒ„ ์‚ฌ์ง„, ์•จ๋ฒ” ์ปค๋ฒ„ ๋“ฑ๋“ฑ)์€ ๋ฆฌ์†Œ์Šค์˜ ์•„ํŠธ์›Œํฌ ์†์„ฑ์„ ์ฐพ์•„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•จ.

์š”์ฒญ url์˜ ํŒŒ๋ž€์ƒ‰ ๋ถ€๋ถ„์˜ ์ˆซ์ž๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์•„ํŠธ์›Œํฌ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•จ. ๋Œ€๋ถ€๋ถ„ ์ •๋ฐฉํ˜•์ด๋ฏ€๋กœ ๊ทธ๋ƒฅ ๊ฐ™์€ ๊ฐ’ ์ž…๋ ฅํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Œ. (๊ทผ๋ฐ ์ผ๋ถ€ ์•จ๋ฒ” ์ปค๋ฒ„๋“ค์€ ์ •๋ฐฉํ˜•์ด ์•„๋‹Œ ๊ฒƒ๋“ค์ด ์žˆ๊ธฐ๋„ ํ•จ)

์š”์ฒญ์„ ํ†ตํ•ด ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ์˜ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ 100๊ฐœ ์ดํ•˜๋ฉด ๊ทธ๋ƒฅ ๋‹จ์ผ ์š”์ฒญ์œผ๋กœ ๊ฐ€์ ธ์™€์ง€์ง€๋งŒ, ๊ทธ ์ด์ƒ์˜ ์š”์ฒญ์ด ๋  ๊ฒฝ์šฐ์—๋Š” ์•ž์˜ 100๊ฐœ๋งŒ ๋จผ์ € ๊ฐ€์ ธ์™€์ง€๊ณ  ๋’ค์—๋Š” ํŽ˜์ด์ง€์˜ ๊ฐœ๋…์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค๊ณ  ํ•จ.

100๊ฐœ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” relationships ๋ถ€๋ถ„์— next๋ผ๋Š” ์†์„ฑ์ด ์ƒ๊ธฐ๊ณ , ๊ทธ๋‹ค์Œ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผํ•  ๋งํฌ๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ์Œ. ํ•ด๋‹น ๋งํฌ๋Š” offset=100์ด๋ฏ€๋กœ ํ•ด๋‹น ์žฌ์ƒ๋ชฉ๋ก์—์„œ 100๋ฒˆ ์ดํ›„์˜ ๋ชฉ๋ก๋“ค์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋งํฌ๊ฐ€ ์ œ๊ณต๋จ. ์ด๋ฅผ ํ†ตํ•ด ์š”์ฒญํ•ด์„œ ์ดํ›„์˜ ๊ฒƒ๋“ค์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ. ๋”์ด์ƒ ์—†์œผ๋ฉด next ์•ˆ๋œธ.

100๊ฐœ๋Š” ์กฐ์ ˆ ๊ฐ€๋Šฅํ•ด๋ณด์ž„

์•„๊นŒ ๋ดค๋˜ api์š”์ฒญ ์ฃผ์†Œ์˜ catalog/๊ตญ๊ฐ€/search๋ฅผ ํ•˜๋ฉด ๊ฒ€์ƒ‰์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.

/v1/catalog/us/search?term=pop&types=albums,songs&limit=10

term=[๊ฒ€์ƒ‰์–ด]

types=[๊ด€์‹ฌ์žˆ๋Š” ํƒ€์ž… โ†’ ๊ฐ€์ˆ˜์ธ์ง€, ์•จ๋ฒ”์ธ์ง€, ๋…ธ๋ž˜์ œ๋ชฉ์ธ์ง€] ๋ณต์ˆ˜์„ ํƒ ๊ฐ€๋Šฅ

limit=ํ‘œ์‹œ๋˜๋Š” ์ตœ๋Œ€ ํฌ๊ธฐ

iOS07 ํ”„๋กœ์ ํŠธ ์ผ์ง€

๐Ÿ“š ๋ฌธ์„œ

๐Ÿซถ๐Ÿป ํŒ€ ๊ธฐ๋ก

๐ŸŽค ํ”„๋กœ์ ํŠธ

๐Ÿ’ก ํ•ต์‹ฌ ๊ฒฝํ—˜

๐Ÿšจ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

๐Ÿ“” ํ•™์Šต ์ •๋ฆฌ

๐Ÿช„ QA

Clone this wiki locally