You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+41-5Lines changed: 41 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,9 @@ Export your Apple Music Library to the default xml and feed it to this. It looks
4
4
5
5
## Usage
6
6
7
-
### Initial Processing
7
+
### Processing Individual Tracks (Default)
8
+
9
+
#### Initial Processing
8
10
Convert Apple Music Library XML to Lidarr JSON format:
9
11
10
12
```bash
@@ -17,7 +19,7 @@ This will:
17
19
- Save found MBIDs to `found_tracks.json` for Lidarr import
18
20
- Save unmatched tracks to `not_found_tracks.json` for later processing
19
21
20
-
### Recheck Mode
22
+
####Recheck Mode
21
23
Reprocess tracks that were not found initially:
22
24
23
25
```bash
@@ -30,21 +32,55 @@ This will:
30
32
- Append any newly found MBIDs to the existing `found_tracks.json`
31
33
- Update `not_found_tracks.json` by removing successfully matched tracks
32
34
35
+
### Processing Albums
36
+
37
+
Extract unique albums and get release-group MBIDs:
38
+
39
+
```bash
40
+
python3 AppleMusicXmlToLidarr.py albums Library.xml albums.json albums_notfound.json
41
+
```
42
+
43
+
This will:
44
+
- Parse your Apple Music Library.xml file
45
+
- Extract unique (artist, album) pairs
46
+
- Look up MusicBrainz release-group IDs for each album
47
+
- Save found release-group MBIDs to `albums.json` for Lidarr import
48
+
- Save unmatched albums to `albums_notfound.json` for later processing
49
+
33
50
### Workflow
34
51
52
+
#### For Individual Tracks
35
53
1. Run initial processing to generate both found and not-found files
36
54
2. Import the found tracks into Lidarr
37
55
3. Periodically run recheck mode to find MBIDs for previously unmatched tracks
38
56
4. Import any newly found tracks into Lidarr
39
57
40
-
The recheck mode is useful because:
58
+
#### For Albums
59
+
1. Run album processing to generate release-group MBIDs
60
+
2. Import the found albums into Lidarr as release-groups
61
+
3. Use this approach when you want to import entire albums rather than individual tracks
62
+
63
+
The recheck mode is useful for tracks because:
41
64
- MusicBrainz database is constantly updated with new entries
42
65
- Network issues may have caused temporary lookup failures
43
66
- You can refine your approach or wait for better data coverage
44
67
68
+
### Best Practices
69
+
70
+
-**Use albums subcommand** when importing entire albums to Lidarr - this provides release-group MBIDs which are more appropriate for album-based imports
71
+
-**Use default track processing** when you need fine-grained control over individual songs
72
+
-**Always save both found and not-found files** to enable reprocessing later
73
+
-**Be mindful of MusicBrainz rate limits** - the tool includes 1-second delays between requests
74
+
-**Consider the file naming convention**: use descriptive names like `albums.json`/`albums_notfound.json` for album processing
75
+
45
76
## Output Files
46
77
47
-
-**found_tracks.json**: Contains MusicBrainz IDs in Lidarr-compatible format
78
+
### For Track Processing
79
+
-**found_tracks.json**: Contains MusicBrainz recording IDs in Lidarr-compatible format
48
80
-**not_found_tracks.json**: Contains track metadata for songs that couldn't be matched
49
81
50
-
Both files use UTF-8 encoding and pretty-printed JSON for readability.
82
+
### For Album Processing
83
+
-**albums.json**: Contains MusicBrainz release-group IDs in Lidarr-compatible format
84
+
-**albums_notfound.json**: Contains album metadata (artist, album) for albums that couldn't be matched
85
+
86
+
All files use UTF-8 encoding and pretty-printed JSON for readability.
0 commit comments