Unofficial python API for brain.fm
Project description
Very few commands are currently implemented. Please open an issue if there’s a specific command you need. If you’re up for debugging their interesting wire format, additional details make it easier to implement your request.
This client requires Python 3.5+.
Quickstart
pip install brainfm
>>> import brainfm
>>> client = brainfm.Connection("your@email.here", "hunter2")
>>> client.get_stations()
[{'name': 'Cinematic Music Focus', 'station_id': 300,
'canonical_name': 'explore.focus.cinematic'},
{'name': 'Beach Focus', 'station_id': 53,
'canonical_name': 'explore.focus.beach'},
...]
>>> client.get_station(station_id=53)
{'name': 'Beach Focus', 'station_id': 53, 'canonical_name': 'explore.focus.beach'}
>>> client.get_token(station_id=53)
{'session_token': '63f4b59b-93f4-45e6-b0c2-eb6b1582fb96',
'group': 'FOCUS', 'name': 'Beach Focus', 'session_id': 121,
'station_id': 53}
Now, open the stream using that token:
https://stream.brain.fm/?tkn=63f4b59b-93f4-45e6-b0c2-eb6b1582fb96
CLI
Needs a credentials file in ~/.brainfm/config with the format:
{ "email": "your@email.here", "password": "hunter2" }
Usage:
$ brain ls +Available Stations------------+---------------------------+ | id | name | canonical | +-----+------------------------+---------------------------+ | 34 | Relaxed Focus | explore.relaxed | | 53 | Beach Focus | explore.focus.beach | | 54 | Chimes & Bowls Focus | explore.focus.bells | | 55 | Electronic Music Focus | explore.focus.electronic | | ... | ... | ... | | 262 | Wind Relax | explore.relax.wind | | 300 | Cinematic Music Focus | explore.focus.cinematic | +-----+------------------------+---------------------------+ $ brain gs 60 { "canonical_name": "explore.focus.wind", "name": "Wind Focus", "station_id": 60 } $ brain gt 60 { "group": "FOCUS", "name": "Wind Focus", "session_id": 143, "session_token": "3ff0eab0-a5f6-11e6-a5c2-f11c700a6178", "station_id": 60 } $ brain play 60 # opens a browser at: # https://stream.brain.fm/?tkn=3ff0eab0-a5f6-11e6-a5c2-f11c700a6178
User-Agent
By default the user agent is github.com/numberoverzero/brainfm followed by the project __version__. There is also a packaged browser-like user-agent:
>>> client = brainfm.Connection(...)
>>> client.user_agent = brainfm.BROWSER
Instead of filtering, maybe this will be a good metric for customer interest in an official API :heart:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file brainfm-0.2.0.tar.gz
.
File metadata
- Download URL: brainfm-0.2.0.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51bdccd4474a234466826ad5067b92719c2de0f49afdbca44812ee8eff1e77f0 |
|
MD5 | 739646c32042cfb5461166c59ffecdfe |
|
BLAKE2b-256 | 1b82e29de6bf9e32b4c756974e06b3606b0c2028b1126bbca3e2dc364f2fa496 |
File details
Details for the file brainfm-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: brainfm-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 067228583e69958f6ae650c9597e6d1aca19b9d57d9155fa3303edd628708387 |
|
MD5 | 29c90c661957b0d0a8f8f0e221c80beb |
|
BLAKE2b-256 | 434ad9a25bb88f2e16068618d665c121145efb6a592612224d77a78f96cfe039 |