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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

Details for the file aiohttp_spotify-0.0.4.tar.gz.

File metadata

  • Download URL: aiohttp_spotify-0.0.4.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.1.post20200323 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1

File hashes

Hashes for aiohttp_spotify-0.0.4.tar.gz
Algorithm Hash digest
SHA256 5195f7e341113318f1a3b298b32144e9cbd54328d9a82b6b6a7090ee31ec35e4
MD5 582085b756168307785810d4e68f61ca
BLAKE2b-256 445050e01c89969f45249b501888de1a736a990f96c9457b146ce21f56eb4a0e

See more details on using hashes here.

File details

Details for the file aiohttp_spotify-0.0.4-py2.py3-none-any.whl.

File metadata

  • Download URL: aiohttp_spotify-0.0.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.1.post20200323 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1

File hashes

Hashes for aiohttp_spotify-0.0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d6ad1191b4771bfa5c89a21e8c0c575d0ecf2a7366f2617db66c67536c038200
MD5 0b93af5a8c014a369bce0185e041826a
BLAKE2b-256 a2d8f9c4c8f9524736dbfe873d5fa81abe43b98a83322a78461f0a7ec41f9276

See more details on using hashes here.

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