{"id":29016553,"url":"https://github.com/memgraph/spotify-song-recommender","last_synced_at":"2025-08-23T13:38:05.708Z","repository":{"id":43060381,"uuid":"398994266","full_name":"memgraph/spotify-song-recommender","owner":"memgraph","description":"A Spotify song recommendation engine built with the power of graph analytics. ","archived":false,"fork":false,"pushed_at":"2022-11-09T07:52:20.000Z","size":6772,"stargazers_count":41,"open_issues_count":0,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-12T19:01:02.134Z","etag":null,"topics":["graph-algorithms","memgraph","pager","spotify","spotify-api"],"latest_commit_sha":null,"homepage":"https://memgraph.github.com/spotify-song-recommender","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/memgraph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-08-23T06:18:07.000Z","updated_at":"2025-05-12T18:41:24.000Z","dependencies_parsed_at":"2022-08-28T10:02:16.769Z","dependency_job_id":null,"html_url":"https://github.com/memgraph/spotify-song-recommender","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/memgraph/spotify-song-recommender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fspotify-song-recommender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fspotify-song-recommender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fspotify-song-recommender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fspotify-song-recommender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memgraph","download_url":"https://codeload.github.com/memgraph/spotify-song-recommender/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Fspotify-song-recommender/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271749128,"owners_count":24814130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph-algorithms","memgraph","pager","spotify","spotify-api"],"created_at":"2025-06-25T22:30:37.793Z","updated_at":"2025-08-23T13:38:05.679Z","avatar_url":"https://github.com/memgraph.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003e\n  Spotify Playlist Recommendation Application\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003eCreate playlists while being recommended songs that you will love!\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/memgraph/spotify-song-recommender/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/memgraph/spotify-song-recommender\" alt=\"license\" title=\"license\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/memgraph/spotify-song-recommender/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/maintainer-jbajic-yellow\" alt=\"maintainer\" title=\"maintainer\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/memgraph/spotify-song-recommender/pulls\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg\" alt=\"build\" title=\"build\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"#contributors-\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/all_contributors-3-green.svg?style=flat\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/memgraph/spotify-song-recommender\"\u003e\n    \u003cimg src=\"https://public-assets.memgraph.com/spotify-song-recommender/spotify-app-01.png\" alt=\"demo\" title=\"demo\" style=\"width: 80%\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?screen_name=memgraphdb\"\u003e\u003cimg\n    src=\"https://img.shields.io/twitter/follow/memgraphdb.svg?label=Follow%20@memgraphdb\"\n    alt=\"Follow @memgraphdb\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## :clipboard: Description\n\nThe world of music is constantly growing. Year by year, it is harder to keep up\nwith trends and new songs that keep popping up. Luckily, there are enough people\nlistening to music that finding new songs in playlists from people with similar\ntastes might not be so difficult after all. This project aims to serve as a\nrecommendation engine for people searching for new songs they will enjoy based\non the songs they currently listen to.\n\n## :books: Dataset\n\nThe [Spotify playlist\ndataset](https://www.aicrowd.com/challenges/spotify-million-playlist-dataset-challenge)\ncontains 5 million song playlists from different users. Each playlist contains a\nlist of music tracks. The data model sample is given below:\n\n\u003cdetails\u003e\n  \u003csummary align=\"center\" style=\"color:gray;font-weight:900;align-items:center;display:flex\"\u003eshow dataset sample\u003c/summary\u003e\n  \u003cp\u003e\n  \u003cpre\u003e\n{\n    \"name\": \"musical\",\n    \"collaborative\": \"false\",\n    \"pid\": 5,\n    \"modified_at\": 1493424000,\n    \"num_albums\": 7,\n    \"num_tracks\": 12,\n    \"num_followers\": 1,\n    \"num_edits\": 2,\n    \"duration_ms\": 2657366,\n    \"num_artists\": 6,\n    \"tracks\": [\n        {\n            \"pos\": 0,\n            \"artist_name\": \"Degiheugi\",\n            \"track_uri\": \"spotify:track:7vqa3sDmtEaVJ2gcvxtRID\",\n            \"artist_uri\": \"spotify:artist:3V2paBXEoZIAhfZRJmo2jL\",\n            \"track_name\": \"Finalement\",\n            \"album_uri\": \"spotify:album:2KrRMJ9z7Xjoz1Az4O6UML\",\n            \"duration_ms\": 166264,\n            \"album_name\": \"Dancing Chords and Fireflies\"\n        },\n        // 10 tracks omitted\n        {\n            \"pos\": 11,\n            \"artist_name\": \"Mo' Horizons\",\n            \"track_uri\": \"spotify:track:7iwx00eBzeSSSy6xfESyWN\",\n            \"artist_uri\": \"spotify:artist:3tuX54dqgS8LsGUvNzgrpP\",\n            \"track_name\": \"Fever 99\\u00b0\",\n            \"album_uri\": \"spotify:album:2Fg1t2tyOSGWkVYHlFfXVf\",\n            \"duration_ms\": 364320,\n            \"album_name\": \"Come Touch The Sun\"\n        }\n    ],\n}\n  \u003c/pre\u003e\n  \u003c/p\u003e\n\u003c/details\u003e\n\n## :zap: Features\n\n- Generate song recommendations -\n  [similar_tracks.py](https://github.com/memgraph/spotify-song-recommender/blob/main/memgraph/query_modules/similar_tracks.py)\n- Find a similar playlist -\n  [similar_playlists.py](https://github.com/memgraph/spotify-song-recommender/blob/main/memgraph/query_modules/similar_playlists.py)\n- Discover trendy songs -\n  [trendy_tracks.py](https://github.com/memgraph/spotify-song-recommender/blob/main/memgraph/query_modules/trendy_tracks.py)\n\n## :shipit: Installation\n\n1. Download and install [Docker](https://www.docker.com/get-started)\n2. Clone this repository, or download the files with GitHub.\n3. Download the complete [Spotify\n   dataset](https://www.aicrowd.com/challenges/spotify-million-playlist-dataset-challenge#dataset)\n   and place the `.json` files in the directory `/producer/data` (the first\n   file is already there, you can just replace it).\n\n## :question: Usage\n\n1. Run these commands in your favorite terminal/cmd:\n\n```\ndocker-compose build\ndocker-compose up\n```\n\n2. Open the app on the address [localhost:80](localhost:80).\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji\nkey](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/jbajic\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/11527103?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJure Bajic\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/MasterMedo\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/16375100?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMislav Vuletic\n\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003c/td\u003e \n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/dtomicevic\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3899768?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDominik Tomicevic\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the\n[all-contributors](https://github.com/all-contributors/all-contributors)\nspecification. Contributions of any kind welcome!\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/⬆️back_to_top_⬆️-white\" alt=\"Back to top\" title=\"Back to top\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemgraph%2Fspotify-song-recommender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemgraph%2Fspotify-song-recommender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemgraph%2Fspotify-song-recommender/lists"}