-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iTunes-beets bi-directional sync plugin #1403
Comments
Seems cool. I'd be interested to see how much this would overlap with #1386—bi-directional sync could conceivably be useful for other players too. Building this in a player-generic way would be ideal. An endeavoring git-peruser could find something similar for very far back in the beets revision history. For a time, a file (called |
#1386 is really meant as a metadata sync plugin. I don't really see transcoding in there as in the majority of cases it wouldn't make sense. Even when talking about iTunes I don't really see the point. Why would you want to constantly translate between different formats in different players? Sounds like a lot of unnecessary complexity to me. Re bi-directional sync, there's no limitation in #1386 to not make that happen. The way I imagined it would be something like a -w switch which instead of reading values from an external application into beets would write values from beets into the external application, if supported. Complexity here really depends on the external application. The storing of player metadata in custom beets fields is something that I don't see easily avoided. It's just much easier and safer to do it this way internally. However that is exposed to the user is a different story, but that's independent of the plugin implementation since it's UI stuff. |
This is a key feature to me. It's needed to allow the single-command regeneration of an iTunes library. (I don't want to fiddle with other export plugins and make sure directory paths match up). It does add complexity to the plugin, but it removes complexity from the user. There are several formats that iTunes doesn't support, such as FLAC. I like to have my master library as lossless and then transcode when needed. The plugin wouldn't transcode supported formats like mp3. The transcoding isn't constant. The song is only converted when needed: the first time it is copied and does not yet exist in the destination. (eg. iTunes). Media Monkey and JRiver Media Center both have similar options to transcode your library to a folder on disk based on a filter of non-supported formats, and then keep it up to date. This is very useful if you have a portable music player that is too small to hold your entire lossless collection.
I assumed that beets supports rating and playcount fields. Examining the output of 'beet fields', it seems I was incorrect.
If you expose the mapping to the user, then they could choose what they want to do. For example, I'd place my rating in 'rating', while you might place yours in amarok_rating. My goal in placing it in 'rating' is to create a player-independent library of metadata. I want to avoid player-specific fields and naming in my beets library. @pprkut It sounds like your aim is to create something more minimal implementation and a bit more manual usage, where I'm aiming for a fully integrated solution that is a bit more complex, but automatic from the user's perspective. If so, I think our designs and use cases might be quite different. Perhaps I will start by building a prototype, and we can see if we can't share some code while building two plugins? What do you think? |
Go ahead! Who would I be to try to stop you? It's open-source, go scratch your itch! :) I'm a Slacker, for me "more manual" means "more powerful", so in that case I agree ;) |
was any progress made on this? I would be satisfied with a workflow that makes a small portion of my beets library available to iTunes for syncing. transcoding FLAC to AAC. I haven't tried, but regenerating the entire library in iTunes would be too slow to be practical. To put it another way, I would like an easy workflow to sync FLAC to iOS Music.app. |
Necro bumping (it's an open feature request, so I hope it's ok 😀). I think the feature as described by the OP would be really cool, but maybe it's worth thinking about the simplest useful version of this and building from there. If a simple iTunes -> beets sync is supported, I think the next logical step would be a simple beets -> iTunes sync. Are there any good resources to start looking at for info on building itunes xml, or previous itunes export projects people can link to, or just other (non-itunes) export code that follows a similar pattern? Thanks! |
Use case
You have an iOS device that you want to use to play and rate songs from your beets library.
Assumptions
Workflow A: Typical Workflow
Notes:
Workflow B: Something broke or a configuration changed and you want to force a refresh
Further thoughts
The text was updated successfully, but these errors were encountered: