MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
A tool that transfers ratings and playcounts between iTunes, RhythmBox, Amarok, and Windows Media Player, with two-way synchronization support.
MediaPython · HTMLGitHub @esanbockOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
This little piece of insanity is a tool that transfers your ratings and playcounts between various players (iTunes, RhythmBox, and Amarok). Supports two-way synchronization in iTunes Mac, RhythmBox, Amarok, and Windows Media Player
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Transfer your ratings and play counts between music players: iTunes, Rhythmbox, Amarok, and Windows Media Player, with read-only support for Amazon Music.
File inputs are detected automatically: an iTunes XML library or a Rhythmbox rhythmdb.xml is recognized from its contents.
• Python 3
• lxml (all XML-based backends)
Extra packages are needed only for the backends you use:
This installs lxml plus the iTunes/WMP packages for your platform. The Amarok and Amazon Music packages are optional; uncomment them in requirements.txt (or pip install them directly) if you need them.Read the full README ↗Transfer your ratings and play counts between music players: iTunes, Rhythmbox, Amarok, and Windows Media Player, with read-only support for Amazon Music.
| Player | How to specify it | Read | Write |
|---|---|---|---|
iTunes library XML (iTunes Music Library.xml) | path to the file | ✅ | ✅ |
Rhythmbox (rhythmdb.xml) | path to the file | ✅ | ✅ |
| iTunes on macOS (running instance) | itunes | ✅ | ✅ |
| iTunes on Windows (COM API) | itunes | ✅ | ✅ |
| Amarok (MySQL database) | mysql plus the Amarok options | ✅ | ✅ |
| Windows Media Player | wmp | ✅ | ✅ |
| Amazon Music desktop app (Windows) | amazonmusic | ✅ | ❌ |
File inputs are detected automatically: an iTunes XML library or a Rhythmbox rhythmdb.xml is recognized from its contents.
Extra packages are needed only for the backends you use:
| Backend | Package | Installed by requirements.txt |
|---|---|---|
| iTunes on macOS | pyobjc-framework-ScriptingBridge | Yes, on macOS |
| iTunes on Windows, Windows Media Player | pywin32 | Yes, on Windows |
| Amarok | mysqlclient (provides MySQLdb) | No, optional |
| Amazon Music | rleveldb | No, optional |
git clone https://github.com/esanbock/ITunesToRhythm.git
cd ITunesToRhythm
pip install -r requirements.txt
This installs lxml plus the iTunes/WMP packages for your platform. The Amarok and Amazon Music packages are optional; uncomment them in requirements.txt (or pip install them directly) if you need them.
python iTunesToRhythm.py [options] <source> <destination>
<source> and <destination> can each be a file path or one of itunes, mysql, wmp, amazonmusic.
For every song in the destination, the tool looks for the matching song in the source, by file size by default, then copies the rating and play count across.
Nothing is written unless you pass
-w. Without it the tool runs as a dry run and prints what it would change. Back up your library files before writing to them.
| Option | Description |
|---|---|
-w, --writechanges | Write changes to the destination (otherwise a dry run) |
-a, --disambiguate | Prompt you to pick the right song when a match is ambiguous |
-c, --confirm | Pause after every match for confirmation |
-l, --fastandloose | Accept a single file-size match even if the titles differ |
--useSongTitle | Match songs by title instead of file size |
--noratings | Don't update ratings |
--noplaycounts | Don't update play counts |
--twoway | Sync both directions; for each song, the copy with the higher play count wins |
--dateadded | Also copy the "date added" field (iTunes to Rhythmbox only) |
--playdate | Also copy the "last played" date (between iTunes library files and Rhythmbox only) |
Amarok connection options, used with mysql:
| Option | Description |
|---|---|
-s, --server | MySQL server host name |
-d, --database | Amarok database name |
-u, --username | Database user |
-p, --password | Database password |
Copy or mount your music somewhere Rhythmbox can see it. The folder structure doesn't matter.
Import the music into Rhythmbox, then close Rhythmbox so it doesn't overwrite the database.
Copy your iTunes Music Library.xml to the Linux machine.
Do a dry run and review the output:
python iTunesToRhythm.py -a "iTunes Music Library.xml" ~/.local/share/rhythmbox/rhythmdb.xml
Run it again with -w to save the changes:
python iTunesToRhythm.py -w -a "iTunes Music Library.xml" ~/.local/share/rhythmbox/rhythmdb.xml
At the end of each run a summary shows how many songs matched fully, partially, ambiguously, or not at all.
Copy play counts (not ratings) from Rhythmbox to an Amarok MySQL database:
python iTunesToRhythm.py -w --noratings -a ~/.local/share/rhythmbox/rhythmdb.xml mysql -s musicserver -d amarok -u amarokuser -p verysecret
Copy ratings and play counts from Amarok into iTunes on a Mac:
python iTunesToRhythm.py -w mysql -s musicserver -d amarok -u amarokuser -p verysecret itunes
Sync iTunes and Windows Media Player both ways on Windows:
python iTunesToRhythm.py -w --twoway itunes wmp
--useSongTitle.rhythmdb.xml, or it may overwrite your changes when it exits.Each backend module can also be run on its own to print a library's contents, which helps when debugging matches:
python dumpitunes.py "iTunes Music Library.xml"
python dumpAmazonMusic.py
The tests use only the standard library and small sample libraries in tests/fixtures, so they never touch your real music libraries:
python -m unittest discover -s tests
Code is formatted with Black (settings in pyproject.toml): python -m black .
GNU General Public License v3. See LICENSE.txt.
Found a bug or have a feature request? Open an issue.