경험의 기록

음악 정보를 활용한 앱을 제작하려고

여러 음악 검색 API를 찾아보던 중, 우리나라의 대표적인 음원 사이트인 멜론에서는

언젠가부터 API를 지원해주지 않는다는 것을 알게 되었다.

 

그래서 주로 해외 API를 많이 찾아보았는데, 그중

Spotify, iTunes, ManiaDB(국내) 3가지만 정리해보려고 한다.

 


1️⃣ Spotify

https://developer.spotify.com/

 

Home | Spotify for Developers

Music, meet code. Powerful APIs, SDKs and widgets for simple and advanced applications.

developer.spotify.com

스포티파이는 외국(스웨덴)에서 시작한 음원 서비스인 만큼 과거엔 거의 팝송 위주로 등록되어 있었다.

하지만 2021년, 한국에서도 스포티파이 서비스가 시작되어 점점 우리나라 곡도 많이 찾아볼 수 있게 되었다.

 

스포티파이 API를 사용하면 전 세계적인 방대한 음원 정보를 사용할 수 있다!

 

스포티파이 개발자 사이트에서

로그인 후 앱을 등록하기만 하면,

Client Id와 Client Secret 키를 활용해 음원 정보를 받아올 수 있다.

 

그런데 스포티파이 API에는 몇 가지 단점이 있는데

일단 호출 절차가 꽤나 복잡하다. (OAuth와 유사)

 

위 이미지처럼 앱에서 Client Id, Client Secret 를 통해 토큰을 요청하면,

서버에서 유효기간이 있는 토큰을 보내준다.

그 토큰을 받아서 다시 그 토큰으로 음원 정보를 요청하게 되면

이제 결괏값을 받을 수 있는 구조이다.

 

https://github.com/svkaka/SpotifyAlbumSearch

 

GitHub - svkaka/SpotifyAlbumSearch: Simple app that can search for albums on Spotify

Simple app that can search for albums on Spotify. Contribute to svkaka/SpotifyAlbumSearch development by creating an account on GitHub.

github.com

이 과정이 잘 정리되어 있는 프로젝트가 있다. 설명보다 직접 보는 것이 이해가 빠르다.

스포티파이 API를 사용하려는 분들은 위 프로젝트 또는

깃허브에 SpotifyApi 키워드로 검색하면 많이 나오니 참고하면 좋을 듯하다.

 

 

https://developer.spotify.com/terms/

 

Spotify Developer Terms | Spotify for Developers

Music, meet code. Powerful APIs, SDKs and widgets for simple and advanced applications.

developer.spotify.com

 

또한 기본적으로 스포티파이 API는 스포티파이와 연동하여 사용하도록 권장되어 있다.

약관이 다 영어라서 해석하기 힘들지만 간단히 요약하면

데이터를 따로 저장하거나 처리하면 안 되고, 스포티파이 로그인 기능을 구현하여 마치 스포티파이를 쓰는 것처럼 사용해야 한다..

 

 

또 한 가지 문제점으로는 비교적 최신곡들은 괜찮지만

옛날 한국 곡들은 대부분 제목이 영어로 등록되어있다.

원작자가 영어로 등록 신청해놓아서 그렇다는데 아마 해외 위주 서비스라 그런 듯하다.

 

결론적으로

 

  1. 호출 절차가 복잡하다.
  2. 많은 제약사항이 따른다.
  3. 국내보다 국외 위주의 서비스이다.
  4. 방대한 음원을 보유하고 있어 다양한 음악 정보가 필요할 때는 유리하다.

 

정도로 요약할 수 있다.

 

 

2️⃣ itunes

https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/Searching.html#//apple_ref/doc/uid/TP40017632-CH5-SW1

 

iTunes Search API: Constructing Searches

 

developer.apple.com

ios 사용자들에게는 익숙할, iTunes에서도 음원 정보 API를 제공한다.

 

위 개발자 문서의 일부인데, 특이하게도 iTunes는 오픈 API를 지원한다.

문서에서 요구하는 대로 자신이 원하는 파라미터만 잘 입력하여 요청해주면,

 

별도의 Api Key가 없어도 음원 정보를 제공받을 수 있다!

 

심지어 음악뿐만 아니라 위와 같은 다양한 타입의 정보를 받을 수 있다.

 

하지만 안타깝게도 API 호출을 분당 20회 정도로 제한하고 있다.

그래서 테스트를 진행할 때는 사용할 수 있겠으나, 실제로 이 서비스를 사용해야 한다면 적절하지 않다.

 

 

https://affiliate.itunes.apple.com/resources/documentation/itunes-enterprise-partner-feed/

 

iTunes Enterprise Partner Feed

The Enterprise Partner Feed is a data feed of the complete set of metadata from Apple Music, Music downloads, and TV & Movies downloads,. It is available for performance partners to fully incorporate aspects of this content catalogs into a website or app.

affiliate.itunes.apple.com

제대로 사용하고 싶다면 EPF를 사용하면 된다는데, 언어의 장벽 때문에 쉽지 않다.

대략 보니 유료 서비스이다. 관심 있는 분은 참고해도 좋을듯하다.

 

결론적으로

 

  1. 사용하기 매우 쉽다. API Key도 필요 없다!
  2. 음악뿐만 아니라 영화, 오디오북등 다양한 정보를 제공한다.
  3. 사용량의 제한이 있어 테스트용으로 사용하는 것이 적합하다.
  4. 유료 서비스(EPF)가 존재한다.

 

정도로 요약할 수 있다.

 

 

3️⃣ ManiaDB

http://www.maniadb.com/main/

 

maniadb.com - all that music

maniadb.com - all that music : artist profile, discography, and release album information

www.maniadb.com

 

위 사이트는 국내 서비스로 다양한 음악 정보들을 얻을 수 있다. 

 

http://www.maniadb.com/api/

 

maniadb.com api

maniadb.com api

www.maniadb.com

별도의 개발자용 페이지도 존재한다.

잘 읽어보면 사용법, 약관 등을 쉽게 확인할 수 있다.

 

일단 최대 장점으로는 국내 서비스기 때문에 한글로 작성되어 있어 알아보기가 쉽다.

 

그리고 작성일(2022년 5월 4일) 기준으로 별도의 api key를 요구하지 않으며

본인의 이메일 형식으로 key를 사용하면 된다고 한다. 상업적 사용이 아니면 비교적 제약도 적은 편이다.

 

또한 작성일 기준 약 500만 개에 달하는 음원 정보를 제공한다.

결코 적은 양이 아니다.

 

다른 api와 다른 점으로는 결과 값이 XML 값으로 반환된다는 것이다.

안드로이드에서는 기본적으로 JSON 파일을 사용하기 때문에 별도의 파싱 작업이 필요하다.

 

 

https://github.com/HanYeop/ManiaDB-ApiTest

 

GitHub - HanYeop/ManiaDB-ApiTest

Contribute to HanYeop/ManiaDB-ApiTest development by creating an account on GitHub.

github.com

안드로이드에서 레트로핏을 활용하여 통신 결과를 받아오고, 파싱한 결과를 보여주는 과정은

위 프로젝트에서 확인할 수 있다.

 

 

 

결론적으로

 

  1. 국내 서비스여서 사용하기 편하다.
  2. 별도의 api key가 필요하지 않다.
  3. 결과 값이 JSON이 아닌 XML 이므로 JSON 값이 필요할 경우 파싱 작업이 필요하다.

 

정도로 요약할 수 있다.

 

 


 

간단히 3가지 종류만 살펴보았는데, 사용 용도에 따라 

 

스포티파이 앱과 연동한 서비스를 개발하거나, 방대한 음원 정보(해외 위주)가 필요한 경우 스포티파이

음원뿐만 아니라 다양한 정보가 필요하거나, 테스트 코드를 작성할 때에는 iTunes

국내 음원 정보 위주 서비스 개발 시에는 ManiaDB

 

를 사용하는 것이 좋아 보인다.

 

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading