{"id":23156419,"url":"https://github.com/anandhakrishnanaji/tuneswitch","last_synced_at":"2025-08-17T23:32:31.224Z","repository":{"id":39719915,"uuid":"278820258","full_name":"anandhakrishnanaji/TuneSwitch","owner":"anandhakrishnanaji","description":"An app that switches music listened by users according to location","archived":false,"fork":false,"pushed_at":"2022-11-04T19:43:22.000Z","size":44161,"stargazers_count":11,"open_issues_count":4,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T15:46:05.019Z","etag":null,"topics":["backend","django","django-channels","django-rest-framework","flutter","hacktoberfest","hacktoberfest2020","music","python","spotify","websocket","websockets"],"latest_commit_sha":null,"homepage":"https://anandhakrishnanaji.github.io/TuneSwitch/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anandhakrishnanaji.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-11T08:26:09.000Z","updated_at":"2022-12-22T07:06:53.000Z","dependencies_parsed_at":"2022-09-09T04:12:02.181Z","dependency_job_id":null,"html_url":"https://github.com/anandhakrishnanaji/TuneSwitch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anandhakrishnanaji/TuneSwitch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandhakrishnanaji%2FTuneSwitch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandhakrishnanaji%2FTuneSwitch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandhakrishnanaji%2FTuneSwitch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandhakrishnanaji%2FTuneSwitch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anandhakrishnanaji","download_url":"https://codeload.github.com/anandhakrishnanaji/TuneSwitch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anandhakrishnanaji%2FTuneSwitch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270922510,"owners_count":24668567,"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-17T02:00:09.016Z","response_time":129,"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":["backend","django","django-channels","django-rest-framework","flutter","hacktoberfest","hacktoberfest2020","music","python","spotify","websocket","websockets"],"created_at":"2024-12-17T21:13:36.541Z","updated_at":"2025-08-17T23:32:29.821Z","avatar_url":"https://github.com/anandhakrishnanaji.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"TuneSwitch\" src=\"./Markdown/tune.png\" height=\"350\"\u003e\n\u003c/p\u003e\n\n![forthebadge](https://forthebadge.com/images/badges/made-with-python.svg)\n![forthebadge](https://forthebadge.com/images/badges/built-for-android.svg)\n![forthebadge](https://img.shields.io/badge/made--with-flutter-blue?logo=flutter\u0026style=for-the-badge)\n[![forthebadge](https://img.shields.io/badge/try-now-darkgreen?logo=android\u0026style=for-the-badge)](https://github.com/anandhakrishnanaji/TuneSwitch/raw/master/release/TuneSwitch.apk)\n\n\n\n# TuneSwitch\nAn open source playlist randomiser for Spotify\n\n## Overview\nThe app swaps music played by users online in multiple methods namely Normal,Travel and Channel Mode. App is made using Flutter and Python. Backend uses websocket connection with backend for real time swapping of music. The websocket part is implemented with Django Channels.The backend is deployed in Heroku.\n\n## Features\n* Location based music swapping\n* Works real-time\n* Decreased Latency\n* Works on any device with Spotify.\n* Create and join Private channels to swap music privately.\n* Retro UI\n* Under MIT license\n\n## Dependencies\n### Flutter\n* [Spotify SDK](https://pub.dev/packages/spotify_sdk)\n* [Web Socket Channel](https://pub.dev/packages/web_socket_channel)\n* [Crypto](https://pub.dev/packages/crypto)\n* [TimeAgo](https://pub.dev/packages/timeago)\n* [Flutter Toast](https://pub.dev/packages/fluttertoast)\n* [GeoLocator](https://pub.dev/packages/geolocator)\n* [Flutter Launcher Icon](https://pub.dev/packages/flutter_launcher_icons)\n\n### Python\n* [Django](https://www.djangoproject.com/)\n* [Django Rest Framework](https://www.django-rest-framework.org/)\n* [Django Channels](https://channels.readthedocs.io/en/latest/)\n\n## Screenshots\n\u003cp float=\"left\"\u003e\n  \u003cimg src=\"./Markdown/screenshots/login.jpg\" width=\"240\"\u003e\n  \u003cimg src=\"./Markdown/screenshots/player.jpg\" width=\"240\"\u003e\n  \u003cimg src=\"./Markdown/screenshots/channel.jpg\" width=\"240\"\u003e\n\u003c/p\u003e\n\n## Local Setup\n### Flutter\n* Go to [Spotify Developers](https://developer.spotify.com/dashboard/login) to obtain CLIENT_ID and setup a REDIRECT_URI there.\n* Store the CLIENT_ID and REDIRECT_URI in .env file in root folder of Project.\n* change the URL given in auth.dart to your own local URL.\n* Run\n``flutter pub get``\n``flutter run``\n\n### Django\n* Install the packages in Backend/requirements.txt.\n* Install Redis.\n* Run\n``python3 manage.py migrate``\n``python3 manage.py runserver [YOUR_IP_ADDRESS]:8000``\n\n## Issues\n* No method to identify whether Spotify is installed in the running device.\n* Location based music swapping can be Improved.\n* Ads in spotify is not tolerated in some cases.\n* When deployed, the request response time out creates a problem.\n\n\n## Other\nFor more details on local setup and working mail me at creattech2000@gmail.com\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanandhakrishnanaji%2Ftuneswitch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanandhakrishnanaji%2Ftuneswitch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanandhakrishnanaji%2Ftuneswitch/lists"}