{ "info": { "author": "Joe Cross", "author_email": "joe.mcross@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries" ], "description": "Unofficial Brain.fm Python Client (3.5+)\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe ``Connection`` class exposes three operations: ``login``, ``list_stations``, and ``get_token``.\nPlease open an issue if there's another operation you need.\n\nThis client requires Python 3.5+.\n\n================\n CLI Quickstart\n================\n\n::\n\n $ pip install brainfm\n $ brain init\n Email: user@gdomain.com\n Password: \n Repeat for confirmation: \n\n Add the following to your .profile, .bashrc, or equivalent:\n\n export BRAINFM_SID=\"s%3...s0xo\"\n $ # \n $ brain play 300\n\n====================\n Library Quickstart\n====================\n\n::\n\n pip install brainfm\n\n.. code-block:: pycon\n\n >>> import brainfm\n >>> client = brainfm.Connection()\n >>> client.login(\"your@email.here\", \"hunter2\")\n >>> client.list_stations()\n [{'name': 'Cinematic Music Focus', 'id': 300,\n 'string_id': 'explore.focus.cinematic'},\n {'name': 'Beach Focus', 'id': 53,\n 'string_id': 'explore.focus.beach'},\n ...]\n >>> token = client.get_token(53)\n >>> token\n '63f4b59b-93f4-45e6-b0c2-eb6b1582fb96'\n >>> brainfm.build_stream_url(token)\n 'https://stream.brain.fm/?tkn=63f4b59b-93f4-45e6-b0c2-eb6b1582fb96'\n\nNow, open the stream using that token::\n\n https://stream.brain.fm/?tkn=63f4b59b-93f4-45e6-b0c2-eb6b1582fb96\n\n=====\n CLI\n=====\n\nExpects an environment variable named `BRAINFM_SID` to exist.\nYou can use `brain init` to generate one:\n\n::\n\n $ brain init\n Email: user@gdomain.com\n Password: \n Repeat for confirmation: \n\n Add the following to your .profile, .bashrc, or equivalent:\n\n export BRAINFM_SID=\"s%3...s0xo\"\n\nUsage::\n\n $ brain ls\n +Available Stations------------+---------------------------+\n | id | name | string_id |\n +-----+------------------------+---------------------------+\n | 34 | Relaxed Focus | explore.relaxed |\n | 53 | Beach Focus | explore.focus.beach |\n | 54 | Chimes & Bowls Focus | explore.focus.bells |\n | 55 | Electronic Music Focus | explore.focus.electronic |\n | ... | ... | ... |\n | 262 | Wind Relax | explore.relax.wind |\n | 300 | Cinematic Music Focus | explore.focus.cinematic |\n +-----+------------------------+---------------------------+\n\n $ brain gt 60\n 3ff0eab0-a5f6-11e6-a5c2-f11c700a6178\n\n $ brain play 60\n # opens a browser at:\n # https://stream.brain.fm/?tkn=3ff0eab0-a5f6-11e6-a5c2-f11c700a6178\n\n============\n User-Agent\n============\n\nBy default the user agent is ``github.com/numberoverzero/brainfm``\nfollowed by the project ``__version__``.\nThere is also a packaged browser-like user-agent:\n\n.. code-block:: pycon\n\n >>> client = brainfm.Connection(...)\n >>> client.user_agent = brainfm.BROWSER\n\nInstead of filtering, maybe this will be a good metric\nfor customer interest in an official API :heart:\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/numberoverzero/brainfm", "keywords": "brainfm api", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "brainfm", "package_url": "https://pypi.org/project/brainfm/", "platform": "any", "project_url": "https://pypi.org/project/brainfm/", "project_urls": { "Homepage": "https://github.com/numberoverzero/brainfm" }, "release_url": "https://pypi.org/project/brainfm/0.3.0/", "requires_dist": [ "click (>=6)", "jmespath (>=0.9)", "requests (>=2.11)", "terminaltables (>=3.1)" ], "requires_python": "", "summary": "Unofficial python API for brain.fm", "version": "0.3.0" }, "last_serial": 4008470, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "7da52906809ad02c9a1764b90f544d4a", "sha256": "5d46ca0d363ef86d42f53e376bbf3ac2ec2f0290a80fd220669e64547c8f7eb2" }, "downloads": -1, "filename": "brainfm-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7da52906809ad02c9a1764b90f544d4a", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5816, "upload_time": "2016-11-08T20:10:52", "url": "https://files.pythonhosted.org/packages/f3/3d/992648aafd3e47cc8037015538a7e67a8764a50531e6a8fd6e216409682e/brainfm-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9cce7ba430c913f7e28f853fa30de20", "sha256": "409ad7b9df3c9c5c2ed9355508f2dda399bd35e8e3f677e2eebd7cf784d6622d" }, "downloads": -1, "filename": "brainfm-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c9cce7ba430c913f7e28f853fa30de20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4222, "upload_time": "2016-11-08T20:10:48", "url": "https://files.pythonhosted.org/packages/95/79/9a81a239cc811c0b2bfcda3593f70227042e7c85255aa34b8bd68b7e79c1/brainfm-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "ef7aa32fa60b8b3122ed28124f40f602", "sha256": "9c4311fef1851819060af4170464302e107dd9c7c0aadb7f4994180342efab4d" }, "downloads": -1, "filename": "brainfm-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ef7aa32fa60b8b3122ed28124f40f602", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 8283, "upload_time": "2016-11-08T21:41:28", "url": "https://files.pythonhosted.org/packages/77/74/ba98dd58da5f41ba62f8739608b7842ca36a0202d22d4f6928b216f127ea/brainfm-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "650e29cbc8d905b8f47ae91757645cf8", "sha256": "737da8c81b8fd13467413241e7e1cd7d25d002cf511f7fae4679a75600e0463a" }, "downloads": -1, "filename": "brainfm-0.1.2.tar.gz", "has_sig": false, "md5_digest": "650e29cbc8d905b8f47ae91757645cf8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5760, "upload_time": "2016-11-08T21:40:36", "url": "https://files.pythonhosted.org/packages/74/a3/0f794e8cf699fc1002c7ac9f0f6371936d6422ad7992fca745d13270f563/brainfm-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "29c90c661957b0d0a8f8f0e221c80beb", "sha256": "067228583e69958f6ae650c9597e6d1aca19b9d57d9155fa3303edd628708387" }, "downloads": -1, "filename": "brainfm-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "29c90c661957b0d0a8f8f0e221c80beb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9022, "upload_time": "2017-01-06T08:42:00", "url": "https://files.pythonhosted.org/packages/43/4a/d9a25bb88f2e16068618d665c121145efb6a592612224d77a78f96cfe039/brainfm-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "739646c32042cfb5461166c59ffecdfe", "sha256": "51bdccd4474a234466826ad5067b92719c2de0f49afdbca44812ee8eff1e77f0" }, "downloads": -1, "filename": "brainfm-0.2.0.tar.gz", "has_sig": false, "md5_digest": "739646c32042cfb5461166c59ffecdfe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6449, "upload_time": "2017-01-06T08:42:01", "url": "https://files.pythonhosted.org/packages/1b/82/e29de6bf9e32b4c756974e06b3606b0c2028b1126bbca3e2dc364f2fa496/brainfm-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c5aabe1d51667e1cffc0344e8a71a69f", "sha256": "061f31d9169fd827eb1c77c63b27ed7e08d5ad4232e1e42189723a47d6f937c6" }, "downloads": -1, "filename": "brainfm-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c5aabe1d51667e1cffc0344e8a71a69f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9057, "upload_time": "2017-01-08T04:19:28", "url": "https://files.pythonhosted.org/packages/e6/d6/d1d28cf99bb400a85e181277764c0cdbbfd10b6e2e47273c57c8a4580f8f/brainfm-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ed3a35235cdbf9b806e362cbace7620", "sha256": "32899bffe6fec667f2c83af32e3f5db36ae57a4a5499020961b372f64e085816" }, "downloads": -1, "filename": "brainfm-0.2.1.tar.gz", "has_sig": false, "md5_digest": "7ed3a35235cdbf9b806e362cbace7620", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6506, "upload_time": "2017-01-08T04:19:29", "url": "https://files.pythonhosted.org/packages/fd/8a/a47601e7f94475f9b9fbaad6b8bd16da4c0568c1b2cc6289a99a1fc3e6a6/brainfm-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "fedfe40e197055ef2248b4b4938e9e90", "sha256": "ed272b09fff57755f7b2222971dd395646963797edffa7453baabffd960a364b" }, "downloads": -1, "filename": "brainfm-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "fedfe40e197055ef2248b4b4938e9e90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9115, "upload_time": "2017-08-02T13:14:59", "url": "https://files.pythonhosted.org/packages/4c/68/6b8a204dcdca67d6e5bac08109b703b1f405c9c2b5ce1f31073f3d3f45d8/brainfm-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98e247961ef8f20e80fa738df30f5332", "sha256": "9e8c065fd60fea103dcb31a754f8b7019041c7f69b4ef3412901e065adfa5071" }, "downloads": -1, "filename": "brainfm-0.2.2.tar.gz", "has_sig": false, "md5_digest": "98e247961ef8f20e80fa738df30f5332", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6487, "upload_time": "2017-08-02T13:15:00", "url": "https://files.pythonhosted.org/packages/d2/34/d03ad8fdf6f91aa8064ef93de4e26f360dc4c2b05ae54a80fa29a691e5b5/brainfm-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "fdf090b007595b56783a4695d8f225c2", "sha256": "9c109138883a2e82eca10201503dd73c5b0b889cd8a89dc3be88fb2ef9122f4c" }, "downloads": -1, "filename": "brainfm-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fdf090b007595b56783a4695d8f225c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7162, "upload_time": "2018-06-27T18:28:25", "url": "https://files.pythonhosted.org/packages/c1/29/72fbdfafb3655170d2badb804a86cbded23833ee748e0c9b385b9588fdc8/brainfm-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "38997a70f775739a96ab587a00f3873a", "sha256": "b8bdd33897af3c34601c9074f4b8db73449b15710424fb1a872abfdd13b7d4f4" }, "downloads": -1, "filename": "brainfm-0.3.0.tar.gz", "has_sig": false, "md5_digest": "38997a70f775739a96ab587a00f3873a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4566, "upload_time": "2018-06-27T18:28:26", "url": "https://files.pythonhosted.org/packages/13/4a/b4fc274709a8e4f5eb0a0ab46c0846591d2c6444168a96c5bc5ff78b89cf/brainfm-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fdf090b007595b56783a4695d8f225c2", "sha256": "9c109138883a2e82eca10201503dd73c5b0b889cd8a89dc3be88fb2ef9122f4c" }, "downloads": -1, "filename": "brainfm-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fdf090b007595b56783a4695d8f225c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7162, "upload_time": "2018-06-27T18:28:25", "url": "https://files.pythonhosted.org/packages/c1/29/72fbdfafb3655170d2badb804a86cbded23833ee748e0c9b385b9588fdc8/brainfm-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "38997a70f775739a96ab587a00f3873a", "sha256": "b8bdd33897af3c34601c9074f4b8db73449b15710424fb1a872abfdd13b7d4f4" }, "downloads": -1, "filename": "brainfm-0.3.0.tar.gz", "has_sig": false, "md5_digest": "38997a70f775739a96ab587a00f3873a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4566, "upload_time": "2018-06-27T18:28:26", "url": "https://files.pythonhosted.org/packages/13/4a/b4fc274709a8e4f5eb0a0ab46c0846591d2c6444168a96c5bc5ff78b89cf/brainfm-0.3.0.tar.gz" } ] }