Skip to main content

Command Palette

Search for a command to run...

spotify api 추가 설명

Published
2 min readView as Markdown
spotify api 추가 설명

spotify 라이브러리 동작 방식 (로직 설명을 한글로)

spotify api 선택 이유 중 데이터 접근성이 좋다 부분을 조금 더 세세하게 설명


이번 프로젝트에서 플레이리스트 관련 spotify api를 가져오는 것은

라이브러리를 사용한게 아닌 http 요청을 직접 보내서 사용하는 방식이다. (동작방식은 여기)

  • request를 사용하여 spotify api에 http 요청을 직접 보냈다.

  • request를 사용하여 필요한 http 요청을 직접 작성하고, spotify의 엔드포인트에 직접 요청을 보내고 응답을 처리함

토큰 발급

  • requests.post로 spotify api에 http 요청을 직접 보낸 후 json 형식으로 응답을 받아와 처리
response = requests.post(TOKEN_URL, headers=headers, data=data)
response_data = response.json()

플레이리스트 데이터 가져오기

  • requests.get으로 spotify의 플레이리스트 api에 http 요청을 직접 보낸 후 json 형식으로 받아와 처리
spotify_api = requests.get(
    "https://api.spotify.com/v1/browse/featured-playlists?limit=40", headers=headers
)
spotify_data = spotify_api.json()

왜 spotify를 선택했는가?

  1. 방대한 음악 데이터베이스 : spotify는 전 세계적으로 가장 큰 음악 스트리밍 서비스 중 하나로, 다양한 장르와 아티스트의 음악을 제공한다.

  2. 사용하기 쉬운 문서 및 인터페이스 : spotify api는 잘 문서화되어 있어 다양한 api 엔드포인트와 사용법을 자세히 안내하고 있어 개발자들이 쉽게 사용할 수 있다.

  3. 많은 사용자 기반 : spotify는 전 세계적으로 많은 사용자를 보유하고 있어, 사용자들이 자신의 계정과 플레이리스트를 손쉽게 통합할 수 있다.

  4. 빠른 응답 시간 : 빠르고 안정적인 응답 시간을 제공하여, 애플리케이션이 신속하게 사용자 요청에 응답할 수 있다.

데이터 접근성이 좋다?

다양한 방식으로 음악 데이터에 접근할 수 있도록 광범위한 엔드포인트 제공 → 데이터를 손쉽게 활용 가능하다.

  • 다양한 엔드포인트 제공

    • spotify api는 앨범, 아티스트, 트랙, 플레이리스트 등 다양한 엔드포인트를 제공하여 필요한 특정 데이터를 쉽게 가져올 수 있다. 특정 아티스트의 인기 트랙이나 사용자가 만든 플리를 가져올 수 있음
  • 사용자 데이터 접근

    • 사용자의 플리, 최근에 들은 트랙, 팔로우 아티스트 등 다양한 사용자 데이터를 가져올 수 있다.
  • 검색 기능

    • 검색으로 사용자가 원하는 음악, 앨범 등을 쉽게 찾을 수 있으며, 필터와 파라미터 지원


실제 코드 로직에서는

1.⁠⁠search = request.query_params.get("query", None)⁠으로 query 파라미터로 검색어를 가져온다.

2.검색어와 검색 유형을 파라미터로 설정

  • headers = {"Authorization": f"Bearer {access_token}"}
  • params = {"q": search, "type": "playlist"}

3.spotify api 호출 → requests.get으로 검색 엔드포인트에 요청을 보내고, params에 검색어를 전달하여 요청

spotify_api = requests.get(     
    "https://api.spotify.com/v1/search?limit=40", headers=headers, params=params )

검색어가 제니일 경우

query=제니 로 요청을 보내면 search 변수는 제니가 된다.

params는 {"q": "제니", "type": "playlist"}가 되어 Spotify API에 전달

requests.get으로 api 요청을 보내고, 응답을 json 형식으로 받아옴

28 views

More from this blog

s3사용 및 s3:PutBucketPolicy 권한 오류

1. S3 생성 중 정책 생성 페이지에서 s3:PutBucketPolicy 권한이 없어 오류 발생 IAM 사용이 아닌 루트 사용자 버전으로 설명 AWS IAM 콘솔 → 정책 → AdministratorAccess⁠검색→ 정책이 나타나면 사용자에 연결→ 없다면 새로운 정책 추가 없으므로 AdministratorAccess 생성 정책 생성 버튼 클릭 → JSON 탭 선택 후 아래 코드 입력 → 생성 { "Version": "2012-10-1...

Mar 12, 20252 min read9
s3사용 및 s3:PutBucketPolicy 권한 오류

챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

https://youtu.be/5soSQgVHGEA OpenAI API를 이용한 챗봇을 만들면서 대화가 길어질수록 LLM 호출 시 토큰 수 증가로 응답 시간이길어지는 문제가 발생 문제분석 여기서 생각하는 문제는 db 조회의 부하 처음 챗봇에게 부여하는 역할이 너무 긴데, 이걸 매 API 호출마다 전송함 대화 흐름을 기억하기 위해 챗봇-유저 간 대화 내용을 모두 DB에 저장한 다음 그대로 API 호출 마다 LLM에 전달함 → 모든 대화 ...

Jan 16, 20253 min read122
챗봇과 사용자의 대화 내용이 길어질수록 llm 호출 시 토큰 수가 증가하여 응답 시간이 지연되는 문제가 발생

dayeon's blog

124 posts