Skip to main content

python sdk for plyr.fm - music streaming on AT Protocol

Project description

plyrfm

python sdk for plyr.fm - music streaming on AT Protocol

installation

uv add plyrfm
# or
pip install plyrfm

authentication

some operations (listing public tracks, getting a track by ID) work without auth.

for authenticated operations (upload, download, delete, my-tracks):

  1. go to plyr.fm/portal -> "your data" -> "developer tokens"
  2. create a token (you'll authorize via your PDS)
  3. set it in your environment:
export PLYR_TOKEN="your_token_here"

quick start

CLI

# install
uvx plyrfm --help
# or: uv tool install plyrfm

# public (no auth required)
plyrfm list                        # list all tracks

# authenticated (requires PLYR_TOKEN)
plyrfm my-tracks                   # list your tracks
plyrfm upload track.mp3 "My Song"  # upload
plyrfm download 42 -o song.mp3     # download
plyrfm delete 42 -y                # delete
plyrfm me                          # check auth

sync client

from plyrfm import PlyrClient

# public operations (no auth)
client = PlyrClient()
tracks = client.list_tracks()
track = client.get_track(42)

# authenticated operations
client = PlyrClient(token="your_token")  # or set PLYR_TOKEN
my_tracks = client.my_tracks()
result = client.upload("song.mp3", "My Song")
client.delete(result.track_id)

async client

import asyncio
from plyrfm import AsyncPlyrClient

async def main():
    # public (no auth)
    async with AsyncPlyrClient() as client:
        tracks = await client.list_tracks()

    # authenticated
    async with AsyncPlyrClient(token="your_token") as client:
        await client.upload("song.mp3", "My Song")

asyncio.run(main())

explicit configuration

from plyrfm import PlyrClient

# pass token directly
client = PlyrClient(token="your_token")

# use staging API
client = PlyrClient(api_url="https://api-stg.plyr.fm")

# both
client = PlyrClient(
    token="your_token",
    api_url="https://api-stg.plyr.fm",
)

API reference

method auth description
list_tracks(limit=50) no list all public tracks
get_track(track_id) no get track by ID
my_tracks(limit=50) yes list your tracks
upload(file, title, album=None) yes upload a track
update_track(track_id, title=None, album=None, image=None) yes update track metadata
download(track_id, output=None) yes download track audio
delete(track_id) yes delete a track
me() yes get current user info

environment variables

variable default description
PLYR_TOKEN - developer token (for authenticated operations)
PLYR_API_URL https://api.plyr.fm API base URL

requirements

  • python 3.10+
  • developer token from plyr.fm

license

MIT

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

plyrfm-0.0.1a4.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

plyrfm-0.0.1a4-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file plyrfm-0.0.1a4.tar.gz.

File metadata

  • Download URL: plyrfm-0.0.1a4.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for plyrfm-0.0.1a4.tar.gz
Algorithm Hash digest
SHA256 93ce63a50d743b3cf99772e5660fdccec84dbebb2e331bc75e5e178a8b59d271
MD5 224f293f7bb8517e5694b56f906ce5dd
BLAKE2b-256 3e7e4786e614eebe2300135dab5fb2af53995f43f2f409bb89e478c1c7faf6e6

See more details on using hashes here.

File details

Details for the file plyrfm-0.0.1a4-py3-none-any.whl.

File metadata

  • Download URL: plyrfm-0.0.1a4-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for plyrfm-0.0.1a4-py3-none-any.whl
Algorithm Hash digest
SHA256 7f0d80e988814612865aa50927928cb533f853359762625b9cc12c978c597dfa
MD5 aa411d156ddc00d9481bbe3592948e10
BLAKE2b-256 196fd6ab2ed2479b0b95292a94f93f3ca01c231bd9841534e2dad7824976fc7c

See more details on using hashes here.

Supported by

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