{"id":16592531,"url":"https://github.com/jakestanger/plex-music-viewer","last_synced_at":"2026-04-12T02:36:38.673Z","repository":{"id":76534239,"uuid":"97311577","full_name":"JakeStanger/Plex-Music-Viewer","owner":"JakeStanger","description":"Bootstrap 4 web app which connects to Plex Media Server and allows browsing and downloading of music. ","archived":false,"fork":false,"pushed_at":"2019-07-04T20:48:21.000Z","size":240,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-08-13T04:40:45.057Z","etag":null,"topics":["bootstrap-4","flask","music","plex","plex-music-viewer","python","python-3","wsgi-application"],"latest_commit_sha":null,"homepage":"","language":"Python","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/JakeStanger.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}},"created_at":"2017-07-15T11:27:56.000Z","updated_at":"2024-02-16T15:42:04.000Z","dependencies_parsed_at":"2023-07-17T01:45:14.681Z","dependency_job_id":null,"html_url":"https://github.com/JakeStanger/Plex-Music-Viewer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JakeStanger/Plex-Music-Viewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeStanger%2FPlex-Music-Viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeStanger%2FPlex-Music-Viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeStanger%2FPlex-Music-Viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeStanger%2FPlex-Music-Viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JakeStanger","download_url":"https://codeload.github.com/JakeStanger/Plex-Music-Viewer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeStanger%2FPlex-Music-Viewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270786217,"owners_count":24644561,"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-16T02:00:11.002Z","response_time":91,"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":["bootstrap-4","flask","music","plex","plex-music-viewer","python","python-3","wsgi-application"],"created_at":"2024-10-11T23:21:14.238Z","updated_at":"2026-04-12T02:36:38.621Z","avatar_url":"https://github.com/JakeStanger.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Plex-Music-Viewer\nA web application written in Python with Bootstrap 4 to integrate with your Plex\nmusic library.\n\n## Dependencies\n- Python dependencies can be installed using \n`pip -r requirements.txt`.\nEach one and its use is included below.\n- Depending on your database engine you may need to install further dependencies:\n    - MySQL: `# apt install libmysqlclient-dev` etc...\n- For optional bittorrent support `libtorrent` with python \nbindings support (`libtorrent-rasterbar`) is required.\nYou will have to find the correct package for your OS.\n\n### Python Dependency Usages\n###### TODO Finish descriptions; put these in a better order.\n- `musicbrainzngs` is used for fetching album art from\nMusicBrainz.\n- `requests` is used for sending extra requests to\n APIs where existing libraries miss some required data.\n- `python-magic`\n- `werkzeug` is a flask dependency, also used for routing.\n- `scipy`\n- `numpy`\n- `plexapi` is used in order to connect to the Plex server\nif the Plex backend is being used.\n- `flask` is the web microframework.\n- `xmltodict` is used when getting some extra data from\nthe Plex server, as the server will only return a bizarrely\nformatted XML document and refuses to give JSON.\n- `simplejson` is used for converting JSON to and from\ndictionaries.\n- `pillow`\n- `Image`\n- `flask-mysql` is used to query the local database.\n- `flask-login` is used to help manage user accounts.\n- `lyricsgenius` is used for fetching track lyrics from\nGenius.\n- `pylast` is used for fetching album art from Last.fm\n\n## Settings\n###### TODO Create table describing settings\n\n## Fetching Lyrics\nFetching lyrics requires a Genius API client access token.\nOne must sign up for a Genius account and create an API\nclient to obtain the access token. This can be done at the\nlink below:\n\nhttps://genius.com/api-clients\n\nOnce this key is put in the settings, restart the application\nif it is running and lyrics will automatically be fetched.\n\n### Local Lyrics\nFetched lyrics are cached in the `lyrics` folder in the\nformat `Artist - Track.txt`. The application will check\nhere before trying to download lyrics. \n\nThis also means if you do not wish to use Genius, you\nmay place lyrics in this folder and the application will\ndisplay them as normal.\n\n## Fetching album art\nIn the settings file is a list of album art fetchers\nin the order they will be tried.\n\nBy default, Plex is first in the list. If using Plex as \nthe backend, all album art will automatically be fetched \nfrom the server.\n\n### last.fm\nFetching album art from last.fm requires an API key. This\nwill require a last.fm account. You can obtain a key at\nthe link below.\n\nhttps://www.last.fm/api/account/create","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakestanger%2Fplex-music-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjakestanger%2Fplex-music-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjakestanger%2Fplex-music-viewer/lists"}