Firebase functions 4 spotify api 소개

남궁현·2022년 1월 29일
1

Music shorts

목록 보기
5/8
post-thumbnail

음악 스트리밍을 위해 spotify에서 제공하는 api를 사용할 것이다. 장점은 저작권이나 보안 문제를 책임지지 않아도 된다는 점이지만 단점은 spotify에서 premium을 결제한 유저만 사용이 가능하다. 따라서 우리 서비스는 필수적으로 o-auth("sign in with spotify")를 통해 로그인을 해야한다.

Spotify developer setup

우선 스포티파이 개발자 웹사이트에 로그인하여 파이어베이스 처럼 프로젝트를 하나 만든다.

생성한 프로젝트는 기본적으로 개발모드이고 승인된 유저만 서비스에 로그인 할 수 있도록 되어있다. 따라서 개발중에 사용할 스포티파이 계정을 하나 추가해주면 된다.

만약 모든 유저에게 로그인할수있는 권한을 부여하고 싶다면 오른쪽 "REQUEST EXTENSION" 버튼을 눌러 심사를 요청 하면 된다. 심사를 통가하기 위해서는 완성된 앱을 플레이스토어에 배포한후 링크를 첨부하여 심사받을 수 있다.

그리고 clientId와 clientSecret을 저장해 두어야 한다.

Spotify web api

https://developer.spotify.com/documentation/web-api/
스포티파이는 FE만 구연하고 spotify web api와 연동하면 스포티파이와 일치하는 서비스가 되다 싶을 정도로 다량의 open api를 제공한다.

설치

기본적으로 http호출로 사용할수 있지만 오픈소스로 제공된 훌륭한 라이브러리가 있기에 이걸 사용한다. 다음명령어로 설치할 수 있다.
yarn add spotify-web-api-node

사용법

// Get Elvis' albums
spotifyApi.getArtistAlbums('43ZHCT0cAZBISjO8DG9PnE').then(
  function(data) {
    console.log('Artist albums', data.body);
  },function(err) {
    console.error(err);
  }
);

Flutter playback sdk

스포티파이 api는 프리미엄 유저들에 한해서 음악 스트리밍 기능을 제공하지만 .mp3 같은 음악파일이나 https://spotify.com/music/straming/{random_id}.mp3같은 주소를 제공해주지 않는다. 대신 sdk를 통해 플레이어 자체를 제공하고 play, pause, next, prev등의 함수를 호출하여 조작할 수 있다. spotify에서는 web, android, ios 용 sdk를 제공하고 있으며 우리 서비스는 이 3가지를 합친 flutter_spotify_sdk를 사용할 예정이다.
https://pub.dev/packages/spotify_sdk

3개의 댓글

comment-user-thumbnail
2022년 9월 12일

안녕하세요! 앱 내에서 음원 스트리밍 서비스를 만드려고 하는데 본문에 spotify에서 premium을 결제한 유저만 사용이 가능하다는 말씀이 있는데 요게 제가(앱 만드는 사람) premium 결제를 하면 모든 유저들이 쓸 수 있는게 아니고 이용하는 유저가 premium 유저일 경우에만 스트리밍이 가능하다는 말씀이신 건가요?

1개의 답글