Unofficial python API for brain.fm
Project description
(very few commands implemented)
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 -i 60 { "canonical_name": "explore.focus.wind", "name": "Wind Focus", "station_id": 60 } $ brain gt -i 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/brain.fm 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
brainfm-0.1.2.tar.gz
(5.8 kB
view details)
Built Distribution
File details
Details for the file brainfm-0.1.2.tar.gz
.
File metadata
- Download URL: brainfm-0.1.2.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 737da8c81b8fd13467413241e7e1cd7d25d002cf511f7fae4679a75600e0463a |
|
MD5 | 650e29cbc8d905b8f47ae91757645cf8 |
|
BLAKE2b-256 | 74a30f794e8cf699fc1002c7ac9f0f6371936d6422ad7992fca745d13270f563 |
File details
Details for the file brainfm-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: brainfm-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c4311fef1851819060af4170464302e107dd9c7c0aadb7f4994180342efab4d |
|
MD5 | ef7aa32fa60b8b3122ed28124f40f602 |
|
BLAKE2b-256 | 7774ba98dd58da5f41ba62f8739608b7842ca36a0202d22d4f6928b216f127ea |