Spotify API (Get an Artist's Albums) (pagination) - helloMinji/chatbot_spotify GitHub Wiki

  • artist id๊ฐ’ ํ•„์š”!
    : Search ARI request ๊ฐ’์—์„œ id ๊ฐ€์ ธ์˜ค๊ธฐ

  • paging object

    • href: requestํ•œ url
    • item: request data list โญ
    • limit
    • next: ๋‹ค์Œ ์ •๋ณด๋ฅผ ์œ„ํ•œ url โญ
    • offset: ์‹œ์ž‘์ 
    • total: ์ „์ฒด ์•จ๋ฒ” ์ˆ˜

blank

Spotify Albums API

    r = requests.get("https://api.spotify.com/v1/artists/3Nrfpe0tUJi4K4DXYWgMUX/albums", headers=headers)
    # 3Nrfpe0tUJi4K4DXYWgMUX : id๊ฐ’

    raw = json.loads(r.text)

    total = raw['total']
    offset = raw['offset']
    limit = raw['limit']
    next = raw['next']

    albums = []
    albums.extend(raw['items'])    # ํ˜„์žฌ๊นŒ์ง€ ๊ฐ€์ ธ์˜จ item์„ albums ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€

limit default๊ฐ€ 20์ด๋ฏ€๋กœ, ๊ทธ๋ณด๋‹ค ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์˜ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.

## 100๊ฐœ ์ถ”์ถœํ•˜๋Š” ๊ฒฝ์šฐ

    count = 0
    while count < 100 or not next:

        r = requests.get(raw['next'], headers=headers)   # ์œ„์™€ ๋‹ค๋ฅธ r. ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— offset๋ถ€ํ„ฐ ์ƒˆ๋กœ ์ถ”์ถœ!
        raw = json.loads(r.text)
        next = raw['next']
        print(next)

        albums.extend(raw['items'])
        count = len(albums)

    print(len(albums))