{ "info": { "author": "Eduardo Jos\u00e9 Tom\u00e9 de Macedo", "author_email": "eduzemacedo@hotmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "\n# Diversify\n\n## The Project\n\nDiversify is a playlist generator based on the [Spofity WEB API](https://developer.spotify.com/web-api/) and the [Spotipy module](http://spotipy.readthedocs.io/en/latest/)\nthat aims to use concepts of AI to suggest playlists based on musical preferences between multiple people.\n\nThis project was heavily inspired by this [article](https://dev.to/ericbonfadini/finding-my-new-favorite-song-on-spotify-4lgc) by \n[@ericbonfadini](https://twitter.com/ericbonfadini) and it's basically just an extra functionality in his analysis.\n\n## Goals\n\nThe goal is to use AI algorithms to generate a spotify playlist based on a user's preference and\na friend of his choice. Currently the script will use a genetic algorthm to generate the playlists\nbut this may improve in the future.\n\n## How to run\n\n- First you need to get your spotify API key and save it to the .env file. \n\t- Go to [spotify application web page](https://developer.spotify.com/dashboard/),\n\t- login with your spotify account and create a new app\n\t- put whatever name you'd like on the project info and say no to commercial integration\n\t- get your client ID and client secret (by clicking *show client secret*)\n\t- put them on your .env.example file and rename it to .env \n\t- click on edit settings and whitelist https://edujtm.github.io/diversify/redirect\n\nThese steps are annoying but are needed because I didn't deploy this app somewhere yet, I have plans to deploy it once I make it faster.\n\n- Clone this repo: `git clone https://github.com/edujtm/diversify.git`\n\n- Create a new environment with your package manager or install the dependencies in environment.yml with pip.
\n\tPersonally I use anaconda, so it's just a matter of running `conda env create --file=environmnent.yml` and then `conda activate diversify`\n\n- With the previous step done, you can import the interfacespfy module in an interactive prompt\n\n```Python\nfrom diversify.session import SpotifySession\nspfy = SpotifySession()\n\nplaylists = spfy.get_user_playlists(\"other_username\")\nsaved_songs = spfy.get_favorite_songs()\n```\n\n- You can generate playlists by running `python3 diversify/main.py`. (run python3 diversify/main.py --help for more info)
\n Example: `python3 diversify/main.py your_id -u2 your_friend_id -p my awesome playlist`\n\n## Warnings\n\nThe files in the tf/ folder and splearn.py are not used, I was trying to implement the algorithm using neural networks or clustering but i didn't finish. I'll probably remove them in the future.\n\nI didn't run much tests when making this app, so there might be errors that I didn't check for when getting data from the spofity API. You can expect some errors when running the scripts.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://edujtm.github.io/diversify", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "diversify", "package_url": "https://pypi.org/project/diversify/", "platform": "", "project_url": "https://pypi.org/project/diversify/", "project_urls": { "Homepage": "https://edujtm.github.io/diversify" }, "release_url": "https://pypi.org/project/diversify/0.1.0.1/", "requires_dist": [ "numpy", "pandas", "spotipy", "click", "colorama", "python-dotenv" ], "requires_python": ">=3.6.0", "summary": "Playlist generator based on artificial intelligence", "version": "0.1.0.1" }, "last_serial": 5933690, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "13bbb9f00b828f4e2b36ec1f5e71827c", "sha256": "3b0d66b70dc3da1661adbcb3955e8f7d9731f3af1d4fc2e09bba7cfc9d8a4ee3" }, "downloads": -1, "filename": "diversify-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "13bbb9f00b828f4e2b36ec1f5e71827c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 3601, "upload_time": "2019-10-06T02:55:50", "url": "https://files.pythonhosted.org/packages/dd/2c/61be7198cc6eaeb85f997ba1a222ba139c8401225ea12a87409c54bbb3d6/diversify-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ce7f9b9c7542f93687408f4f439a08f", "sha256": "fc4bd91c345bf927fe569415a6ec73ad3fec0575c2640d68e3d4ac8e9b348abd" }, "downloads": -1, "filename": "diversify-0.1.0.tar.gz", "has_sig": false, "md5_digest": "0ce7f9b9c7542f93687408f4f439a08f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 3774, "upload_time": "2019-10-06T02:55:52", "url": "https://files.pythonhosted.org/packages/f5/76/ec26f249da7db55e8cb3091b1f52b3890ea347fecd6f1a515d06661a7f28/diversify-0.1.0.tar.gz" } ], "0.1.0.1": [ { "comment_text": "", "digests": { "md5": "560a8d554d2a90a07878b92ba913465f", "sha256": "28059a62d1abeac50a7503c6c6e6717b9f5b95371edccdf3a0c927a73e980357" }, "downloads": -1, "filename": "diversify-0.1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "560a8d554d2a90a07878b92ba913465f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 19079, "upload_time": "2019-10-06T03:19:01", "url": "https://files.pythonhosted.org/packages/35/e6/4d6430e02a14bedfa2e3afcba12b071d70f2e77442ed9aaf60cca1481e63/diversify-0.1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ec8b098fef99eb558436fbeabe60334", "sha256": "52feb27391a863fcb35aff15f97f8810ce064f3cdb5c29c31c723c97ed010b38" }, "downloads": -1, "filename": "diversify-0.1.0.1.tar.gz", "has_sig": false, "md5_digest": "7ec8b098fef99eb558436fbeabe60334", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 16202, "upload_time": "2019-10-06T03:19:03", "url": "https://files.pythonhosted.org/packages/b2/62/789832bbca1291291061bc99263b1ce063b743efe6b4948800554a053e61/diversify-0.1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "560a8d554d2a90a07878b92ba913465f", "sha256": "28059a62d1abeac50a7503c6c6e6717b9f5b95371edccdf3a0c927a73e980357" }, "downloads": -1, "filename": "diversify-0.1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "560a8d554d2a90a07878b92ba913465f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 19079, "upload_time": "2019-10-06T03:19:01", "url": "https://files.pythonhosted.org/packages/35/e6/4d6430e02a14bedfa2e3afcba12b071d70f2e77442ed9aaf60cca1481e63/diversify-0.1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ec8b098fef99eb558436fbeabe60334", "sha256": "52feb27391a863fcb35aff15f97f8810ce064f3cdb5c29c31c723c97ed010b38" }, "downloads": -1, "filename": "diversify-0.1.0.1.tar.gz", "has_sig": false, "md5_digest": "7ec8b098fef99eb558436fbeabe60334", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 16202, "upload_time": "2019-10-06T03:19:03", "url": "https://files.pythonhosted.org/packages/b2/62/789832bbca1291291061bc99263b1ce063b743efe6b4948800554a053e61/diversify-0.1.0.1.tar.gz" } ] }