{"id":19500360,"url":"https://github.com/uriopass/musidex","last_synced_at":"2025-08-19T02:43:24.091Z","repository":{"id":40297904,"uuid":"390367439","full_name":"Uriopass/Musidex","owner":"Uriopass","description":"Your AI powered musical pokedex, Plex for music","archived":false,"fork":false,"pushed_at":"2025-06-05T07:10:18.000Z","size":14500,"stargazers_count":60,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-12T00:44:44.196Z","etag":null,"topics":["mediaserver","mp3","music","react","react-native","rust","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Uriopass.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-07-28T13:47:55.000Z","updated_at":"2025-07-29T02:27:41.000Z","dependencies_parsed_at":"2025-01-08T23:13:44.050Z","dependency_job_id":"5b1f100e-1106-4f91-9a70-abbd2f87b9cf","html_url":"https://github.com/Uriopass/Musidex","commit_stats":{"total_commits":700,"total_committers":2,"mean_commits":350.0,"dds":"0.0014285714285714457","last_synced_commit":"19a4d5b629df0e8cfa736d7a1fb8906a0209e7ce"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Uriopass/Musidex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uriopass%2FMusidex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uriopass%2FMusidex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uriopass%2FMusidex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uriopass%2FMusidex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Uriopass","download_url":"https://codeload.github.com/Uriopass/Musidex/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Uriopass%2FMusidex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271092169,"owners_count":24697903,"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-19T02:00:09.176Z","response_time":63,"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":["mediaserver","mp3","music","react","react-native","rust","typescript"],"created_at":"2024-11-10T22:08:17.020Z","updated_at":"2025-08-19T02:43:24.041Z","avatar_url":"https://github.com/Uriopass.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt=\"Musidex logo, a capital letter M\" src=\"screen.jpg\" /\u003e\n\n# Musidex\nYour musical pokedex, Plex for music.\n\nAdd songs from youtube videos or youtube playlist to your library,\nor import them from your local files.  \nTags are automatically imported and searchable,\nsync it on your phone to enjoy free offline music, managed from your home server.\n\nDon't want to bother making playlists?  \nLet Musidex handle it for you, a neural network analyses your musics and checks for similarity\nto provide semantic autoplaying.  \nChoose a starting point and let it choose the next song for you!\n\n### Demo\n\nTry the demo at:\n\nhttps://demo.douady.paris/\n\nPlease don't mess it up. :)\n\n### Roadmap\n\n\n- [x] Music streaming\n- [x] Youtube import\n- [x] Web front\n- [x] Neural embedding based auto play\n- [x] Text search\n- [x] CI\n- [x] Multiple accounts\n- [x] Android App\n- [x] Docker build\n- [x] iOS App\n- [x] Local download for apps\n- [x] Browser extension to add YT videos to library directly from youtube\n- [x] Tag filtering\n- [ ] Playlists through tags/Tag editor\n- [ ] Basic authentication\n- [ ] CD\n- [ ] MP3 import\n- [ ] Ogg import\n- [ ] FLAC import\n\n# Setting up the server\n\n### Using docker\n\n```bash\n# Build the image, can take up to 20 minutes depending on your CPU and your network bandwidth\ndocker build -t musidex .\n\n# Run the container (replace /path/to/musidex with absolute path to Musidex, like $HOME/musidex)\ndocker run -d -p 80:3200 -v /path/to/musidex/storage:/storage -t musidex \n```\n\nAll musidex data (musics, thumbnails, db) ends up in the `storage` directory.\n\n### Linux\n\nOnly GNU/Linux distros are supported at the moment.\n\n#### Dependencies\n\nYou can run the `prepare.sh` script after cloning to run all of the following commands,\nor run them yourself with an explanation.\n\n[Youtube-dl](https://github.com/yt-dlp/yt-dlp/wiki/Installation#with-pip) to add music from youtube URLs.\n\n```bash\npython3 -m pip install -U yt-dlp\n```\n\nFfmpeg so that the downloaded audio files are converted to more friendly formats. (as advised by youtube-dl).  \nNpm for the frontend.  \nSqlite for the db.\n```bash\nsudo apt install ffmpeg npm libsqlite3-dev python3 python-is-python3\n```\n\nThe [rust compiler](https://www.rust-lang.org/tools/install) for the backend.\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y\nsource \"$HOME\"/.cargo/env\n```\n\nThe repo itself.\n\n```bash\ngit clone https://github.com/Uriopass/Musidex\ncd Musidex\n\n# Prepare the web dependencies\n(cd musidex-web \u0026\u0026 npm install)\n```\n\n#### Building and running\n\n```bash\n# Just run the start script\n./start.sh\n```\n\n# Developing on the project\n\nFirst install the dependencies as listed above, then\n\n```bash\n# Start the daemon, will listen on localhost:3200\ncargo run --manifest-path=musidex-daemon/Cargo.toml\n\n# And in another terminal... start the web client\ncd musidex-web\nnpm start # will start on localhost:3000 \n          # and proxy api requests to the daemon\n```\n\nThen if you want to work on the daemon,\nsimply run `cargo run` again after doing your modifications.\n\nIf you want to work on the web client,\nthe modifications will be hot reloaded.\n\nAll musidex data ends up in the `storage` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furiopass%2Fmusidex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furiopass%2Fmusidex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furiopass%2Fmusidex/lists"}