{"id":26214845,"url":"https://github.com/charlierobin/list-missing-apple-music-files","last_synced_at":"2026-02-01T05:32:49.110Z","repository":{"id":170996824,"uuid":"647297213","full_name":"charlierobin/list-missing-apple-music-files","owner":"charlierobin","description":"A utility to list all the Apple Music tracks that are missing a location path, and for those with a location path check that the path exists","archived":false,"fork":false,"pushed_at":"2025-08-29T06:54:57.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-29T10:35:53.030Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Xojo","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/charlierobin.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-05-30T13:30:49.000Z","updated_at":"2025-08-29T06:55:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4aa010d-6a4b-415d-9567-0f5801e0cc44","html_url":"https://github.com/charlierobin/list-missing-apple-music-files","commit_stats":null,"previous_names":["charlierobin/list-missing-apple-music-files"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/charlierobin/list-missing-apple-music-files","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlierobin%2Flist-missing-apple-music-files","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlierobin%2Flist-missing-apple-music-files/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlierobin%2Flist-missing-apple-music-files/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlierobin%2Flist-missing-apple-music-files/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charlierobin","download_url":"https://codeload.github.com/charlierobin/list-missing-apple-music-files/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charlierobin%2Flist-missing-apple-music-files/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28970027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T04:44:20.970Z","status":"ssl_error","status_checked_at":"2026-02-01T04:44:19.994Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-03-12T10:18:41.733Z","updated_at":"2026-02-01T05:32:49.106Z","avatar_url":"https://github.com/charlierobin.png","language":"Xojo","funding_links":[],"categories":[],"sub_categories":[],"readme":"# List missing Apple Music files\n\nUses the XML file exported from Apple’s macOS Music app (File ▸ Library ▸ Export Library…), therefore the results are only as up-to-date as the last time you did this export.\n\n\u003cimg width=\"492\" alt=\"music export menu screenshot\" src=\"https://github.com/charlierobin/list-missing-apple-music-files/assets/10506323/85e3f450-dd4e-4f2d-815e-7b9e2a7375e0\"\u003e\n\nFiles can be missing in two different ways:\n\n**(1)** If Music has lost track of the music file, and there is an exclamation mark in a circle by the track in the Music window, then when the XML file is exported the track info dictionary will have no `Location` value.\n\n**(2)** If the file has been moved since the time the XML was exported then the info dict will have a `Location` value, but there will be no file at that location.\n\nThis little app deals with both eventualities:\n\nTracks missing a `Location` key-value pair are listed.\n\nIf a track has a `Location` value, it checks that the path is a file. If no file is found, the track is listed.\n\nThe app experiments with two different ways of using the XML data: (1) using Xojo’s XML classes to read in the document and then find the `Tracks` node and iterate its contents, and (2) using the TextStream class to read the XML line by line, looking for the right key-name-value pairs and then getting the appropriate values (track name, artist name, album name, location path) out with some very simple RegEx.\n\nXojo’s XML parsing classes are based on Expat 1.95.7.\n\n[The Expat XML Parser page on Github](https://libexpat.github.io)\n\n## Notes\n\nAt the moment, both the stream and XML implementations are pretty bodged up. \n\nThe XML implementation depends on nodes in the XML being in particular positions (offsets).\n\nThe stream implementation depends on the key-value pairs being on the same line, as it reads in line by line from the file on disk.\n\n(This is because I was just interested in seeing if the basic idea was workable, and seeing how the two methods stacked up against each other speed wise.)\n\nThat’s a long-winded way of saying that the app works perfectly with the 121MB XML file that Music exports on my machine running macOS Catalina, but who knows what happens with any other versions of the app running on other versions of macOS.\n\nAs far as speed goes, on my Mac, the TextStream version is far faster: 16 seconds versus 49 seconds. No real surprises there, I think.\n\n[Link to pre-built universal binary (Intel and Apple Silicon)](https://github.com/charlierobin/list-missing-apple-music-files/releases)\n\n### Notes as of Aug 2025\n\nWhat was supposed to happen here was that the original (temporary) way of using the Music-exported XML file would be replaced by one of my other command line versions of identifying the missing tracks, one that actually uses the macOS API to interrogate the user’s “live” music database. So this Xojo app would basically just be a GUI front end to that command line back end.\n\n[Command line version in Swift](https://github.com/charlierobin/list-missing-apple-music-files-swift)\n\n[Command line version in Objective-C](https://github.com/charlierobin/list-missing-apple-music-files-objc)\n\nOf course, that never happened, there being nothing so permanent as that which is temporary.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlierobin%2Flist-missing-apple-music-files","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharlierobin%2Flist-missing-apple-music-files","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlierobin%2Flist-missing-apple-music-files/lists"}