Skip to main content

An async Python interface to the Spotify API using aiohttp

Project description

An async Python interface to the Spotify API using aiohttp.

Note: This is alpha software. Use at your own risk.

Installation

To install, use pip:

python -m pip install aiohttp_spotify

It's best if you also install and use aiohttp-session.

Usage

To add the OAuth flow to your app:

from aiohttp import web
import aiohttp_spotify

async def handle_auth(request: web.Request, auth: aiohttp_spotify.SpotifyAuth):
    # Store the `auth` object for use later

app = web.Application()
app["spotify_app"] = aiohttp_spotify.spotify_app(
    client_id=CLIENT_ID,
    client_secret=CLIENT_SECRET,
    redirect_uri=REDIRECT_URI,
    handle_auth=handle_auth,
)
app.add_subapp("/spotify", app["spotify_app"])

Then you can make calls to the API as follows:

from aiohttp import ClientSession

async def call_api(request: web.Request) -> web.Response:
    async with ClientSession() as session:
        response = app["spotify_app"]["spotify_client"].request(
            session, auth, "/me"
        )

    # The auth object will be updated as tokens expire so you should
    # update this however you have it stored:
    if response.auth_changed:
        await handle_auth(request, response.auth)

    return web.json_request(response.json())

where auth is the SpotifyAuth object from above.

Take a look at the demo directory for a more complete example.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohttp_spotify-0.0.4.tar.gz (11.2 kB view hashes)

Uploaded Source

Built Distribution

aiohttp_spotify-0.0.4-py2.py3-none-any.whl (8.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page