Skip to main content

Bindings for the API

Project description API access from Python

Build Status Coverage Status

This provides a Python API for the website.


from mixcloud import Mixcloud
m = Mixcloud()
u = m.user('michelplatiniste')
for c in u.cloudcasts():


You must have an application registered with Mixcloud and a corresponding client ID and secret.

Authorization is a multi-step process:

  1. Generate the authorization URL
  2. Redirect the user to the URL to authorize your application
  3. Collect the code query string parameter from the redirect
  4. Exchange the code for an access token
o = mixcloud.MixcloudOauth(
    client_id=client_id, client_secret=client_secret,

url = o.authorize_url()

# Next redirect the user to `url`. They will be redirected to your
# redirect uri with a `code` query string parameter. This must be
# exchanged with Mixcloud for an access token.

access_token = o.exchange_token(code)

# This can then be used for calls that required authorization.

m = mixcloud.Mixcloud(access_token=access_token)

Optionally you can store an access token in your .netrc file and it will be used automatically. The machine name must be mixcloud-api.


machine mixcloud-api
password my_access_token


It is possible to use this module to upload cloudcasts. In order to do that you need to be authenticated. To do that, provide an API token to the constructor.

m = mixcloud.Mixcloud(access_token=access_token)
cc = Cloudcast(...)
with open(mp3_path) as mp3:
    r = m.upload(cc, mp3)

YML file support

It is possible to represent cloudcasts as YAML files. See example.yml.

The relevant keys are:

Key Type
title String
desc String
tags List of strings
tracks List of tracks

Each track is a dict with the following keys:

Key Type
start Integer
artist String
track String

You can leverage YAML syntax for the “start” field: 2:54 will be parsed directly as 174 (then number of seconds).

It is possible to parse such a file with:

with open(yml_path) as yml:
    cc = mixcloud.Cloudcast.from_yml(yml, None)


A mock server is provided for testing purposes in mixcloud.mock.



release date: 2015-10-27

  • Switch to semantic versioning.
  • Include access token when calling /me (#10)
  • Add a helper class for OAuth (#11)
  • Support access token stored in netrc (#9, #12)


release date: 2015-03-15

  • Pictures can be uploaded and retrieved (#6)
  • Include LICENSE in tarball (#8)


release date: 2015-01-28

  • Switch from requirements.txt to install_requires (#7)
  • Add HISTORY.rst to


release date: 2015-01-28

  • Initial release

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

mixcloud-0.4.0.tar.gz (7.7 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page