GithubHelp home page GithubHelp logo

rekordbox-repair's People

Contributors

edkennard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rekordbox-repair's Issues

Error: Input rekordbox XML file doesn't exist

Hi, I've created my library XML file and have it stored in a 'rekordbox' folder in my Documents folder. I keep getting this error message:

Exception in thread "main" java.lang.IllegalArgumentException: Input rekordbox XML file doesn't exist: /Users/timbeaver/Documents/rekordbox/original-library.xml“

It's definitely there so I'm wondering what I'm doing wrong. Thanks very much

ERROR - Failed to complete successfully - any ideas what is wrong?

Hi,

THaks for the code - looks like it should be good - but I am getting the following error message. Have you any idea what is wrong as it seems to read the xml file OK - but then not "load" them?
Thanks,
Tim

C:\Windows\system32>rekordbox-repair -i "C:\Users\Tim\OneDrive\Documents\rekordbox\Collection 160420.xml" -o "C:\Users\Tim\OneDrive\Documents\rekordbox\Fixed_Library.xml" -s "C:\Users\Tim\OneDrive\Music\iTunes Music"
2020-04-16 19:54:35,572 INFO - Running using Java version 1.8.0_211
2020-04-16 19:54:36,152 INFO - Analysing rekordbox collection...
2020-04-16 19:54:36,153 INFO - Reading rekordbox XML file C:\Users\Tim\OneDrive\Documents\rekordbox\Collection 160420.xml...
2020-04-16 19:54:41,731 INFO - Loading tracks in the collection...
2020-04-16 19:54:41,812 ERROR - Failed to complete successfully: The device is not ready
[Ljava.lang.StackTraceElement;@6166e06f

file path case sensitivity

Where rekordbox thinks the files are: C:\Users\chris\music bla bla bla. and it actually finds them here, no dramas at all.

However if you open the rekordbox file explorer section to add new songs, every single track there isn't added to the library because their path is C:\Users\Chris\music bla bla bla. (note the capital C)

Was hoping this tool would help, but it did not pick up the case-sensitive mismatch between where rekordbox thinks the files are and where they actually are. Again, not actually an issue with playing tracks in my collection, just the fact that every track in explorer is marked as "new".

Screenshot (1)
Screenshot (2)

Error: URI has an authority component

When trying to run the tool on Big Sur, with the search folder being an external Hard Drive, I get the following error:

smt$ bin/rekordbox-repair -i "/Users/smt/Documents/rekordbox/Rekordbox-original.xml" -o "/Users/smt/Documents/rekordbox/fixed-library.xml" -s "/Volumes/ToshibaExtern"
2021-01-10 00:34:55,927 INFO - Running using Java version 1.8.0_211
2021-01-10 00:34:56,444 INFO - Analysing rekordbox collection...
2021-01-10 00:34:56,444 INFO - Reading rekordbox XML file /Users/smt/Documents/rekordbox/Rekordbox-original.xml...
2021-01-10 00:34:56,920 INFO - Loading tracks in the collection...
2021-01-10 00:34:56,948 ERROR - Failed to complete successfully: URI has an authority component
[Ljava.lang.StackTraceElement;@146044d7

Update docs

I found an easier way to import the repaired tracks into their respective playlists.

The following is mentioned in the docs:

For each playlist in the "rekordbox xml" area, drag-dropped the repaired tracks back into the original playlists

I discovered that we can instead right-click on rekordbox_xml/Playlists and choose Import.

Thanks!

Failed to complete successfully: The filename, directory name, or volume label syntax is incorrect

I have no idea what I am doing wrong. Did a fresh export trough rekordbox. Do you have an idea?

C:\Users\nicol>rekordbox-repair -i "C:\Users\nicol\Desktop\Rekordbox\rekordbox-library.xml" -o "C:\Users\nicol\Desktop\Rekordbox\rekordbox-library-nodupes.xml" -s "C:\Users\nicol\Desktop\MUZIEK\PYTHON\YT DL\TRACKS"
2022-11-22 21:44:34,495 INFO - Running using Java version 1.8.0_211
2022-11-22 21:44:34,677 INFO - Analysing rekordbox collection...
2022-11-22 21:44:34,678 INFO - Reading rekordbox XML file C:\Users\nicol\Desktop\Rekordbox\rekordbox-library.xml...
2022-11-22 21:44:34,872 INFO - Loading tracks in the collection...
2022-11-22 21:44:35,113 ERROR - Failed to complete successfully: The filename, directory name, or volume label syntax is incorrect
java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
at java.io.File.getCanonicalPath(File.java:618)
at com.vividlab.rekordbox.data.CollectionTrack.$anonfun$filePath$1(CollectionTrack.scala:31)
at scala.Option.map(Option.scala:242)
at com.vividlab.rekordbox.data.CollectionTrack.(CollectionTrack.scala:31)
at com.vividlab.rekordbox.data.CollectionTrack$.apply(CollectionTrack.scala:38)
at com.vividlab.rekordbox.data.CollectionTracks$.$anonfun$fromXml$1(CollectionTrack.scala:46)
at scala.collection.StrictOptimizedIterableOps.map(StrictOptimizedIterableOps.scala:100)
at scala.collection.StrictOptimizedIterableOps.map$(StrictOptimizedIterableOps.scala:87)
at scala.xml.NodeSeq.map(NodeSeq.scala:51)
at com.vividlab.rekordbox.data.CollectionTracks$.fromXml(CollectionTrack.scala:46)
at com.vividlab.rekordbox.analyse.Analyser$.analyse(Analyser.scala:24)
at com.vividlab.rekordbox.Main$.main(Main.scala:15)
at com.vividlab.rekordbox.Main.main(Main.scala)

System Volume Information

2022-01-23 20:01:49,124 ERROR - Failed to complete successfully: java.nio.file.AccessDeniedException: F:\System Volume Information
java.io.UncheckedIOException: java.nio.file.AccessDeniedException: F:\System Volume Information
at java.nio.file.FileTreeIterator.fetchNextIfNeeded(FileTreeIterator.java:88)
at java.nio.file.FileTreeIterator.hasNext(FileTreeIterator.java:104)
at java.util.Spliterators$IteratorSpliterator.tryAdvance(Spliterators.java:1811)
at java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294)
at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206)
at java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:169)
at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681)
at scala.collection.convert.Wrappers$JIteratorWrapper.hasNext(Wrappers.scala:43)
at scala.collection.Iterator.toStream(Iterator.scala:1415)
at scala.collection.Iterator.toStream$(Iterator.scala:1414)
at scala.collection.AbstractIterator.toStream(Iterator.scala:1429)
at scala.collection.Iterator.$anonfun$toStream$1(Iterator.scala:1415)
at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1171)
at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1161)
at scala.collection.immutable.Stream.$anonfun$map$1(Stream.scala:418)
at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1171)
at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1161)
at scala.collection.immutable.Stream.filterImpl(Stream.scala:506)
at scala.collection.immutable.Stream$.$anonfun$filteredTail$1(Stream.scala:1258)
at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1171)
at scala.collection.immutable.Stream$Cons.tail(Stream.scala:1161)
at scala.collection.immutable.Stream.length(Stream.scala:312)
at scala.collection.SeqLike.size(SeqLike.scala:108)
at scala.collection.SeqLike.size$(SeqLike.scala:108)
at scala.collection.AbstractSeq.size(Seq.scala:45)
at com.vividlab.rekordbox.analyse.Analyser$.locateFile(Analyser.scala:74)
at com.vividlab.rekordbox.analyse.Analyser$.$anonfun$locateFiles$1(Analyser.scala:52)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:237)
at scala.collection.immutable.List.foreach(List.scala:392)
at scala.collection.TraversableLike.map(TraversableLike.scala:237)
at scala.collection.TraversableLike.map$(TraversableLike.scala:230)
at scala.collection.immutable.List.map(List.scala:298)
at com.vividlab.rekordbox.analyse.Analyser$.locateFiles(Analyser.scala:52)
at com.vividlab.rekordbox.analyse.Analyser$.analyse(Analyser.scala:31)
at com.vividlab.rekordbox.Main$.main(Main.scala:15)
at com.vividlab.rekordbox.Main.main(Main.scala)
Caused by: java.nio.file.AccessDeniedException: F:\System Volume Information
at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
at sun.nio.fs.WindowsDirectoryStream.(WindowsDirectoryStream.java:86)
at sun.nio.fs.WindowsFileSystemProvider.newDirectoryStream(WindowsFileSystemProvider.java:518)
at java.nio.file.Files.newDirectoryStream(Files.java:457)
at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:300)
at java.nio.file.FileTreeWalker.next(FileTreeWalker.java:372)
at java.nio.file.FileTreeIterator.fetchNextIfNeeded(FileTreeIterator.java:95)
... 36 common frames omitted

doesn't recognise -s function

Hey - thanks so much for making this - much more practical than the inbuilt rekordbox feature, especially for large libraries.

The problem im having is that the terminal doesn't seem to recognise the -s function:

imis-MacBook-Pro:rekordbox-repair-0.5 thor$ bin/rekordbox-repair -i "/Users/thor/Downloads/rekordbox/library.xml" -o "/Users/thor/Downloads/rekordbox/fixed-library.xml" -s "/Volumes/T7 Shield/Music"
2023-11-07 23:58:00,577 INFO - Running using Java version 1.8.0_211
Error: Unknown option -s /Volumes/T7 Shield/Music
Try --help for more information.
Exception in thread "main" java.lang.IllegalStateException: Failed to read configuration: -i, /Users/thor/Downloads/rekordbox/library.xml, -o, /Users/thor/Downloads/rekordbox/fixed-library.xml, -s /Volumes/T7 Shield/Music
at com.vividlab.rekordbox.Config$.apply(Config.scala:55)
at com.vividlab.rekordbox.Main$.main(Main.scala:13)
at com.vividlab.rekordbox.Main.main(Main.scala)

What am I doing wrong?

permission denied

I downloaded the file, opened terminal, ran the line of code - however it said permission denied when I did this? is there any way to get around this as I am fed up of being unable to relocate songs

Does it batch-relocate my files if I rename them ?

Hello, what I'd like to do it's to rename my .mp3 files and I was wondering if this software will "inform" rekordbox about their name. I ran it with one file, but there was no modified path in the generated xml.

`Total tracks in collection: 1452
Tracks OK: 1451
Tracks repaired: 0
Tracks with multiple matches: 0
Tracks with missing files: 1
Tracks with path too long: 0
Tracks on disk but not in rekordbox: 1

Repaired tracks

The original files for the following tracks were not found in their expected locations, but were found elsewhere and repaired versions have been written to the output XML file:

Tracks with missing files

The files for the following tracks couldn't be found anywhere in the specified search directory:

'mrshl' - 'You Know' - 'In The Rain'
Missing: C:\Users\user\Documents\test\mrshl - In The Rain.mp3

Tracks on disk but not in rekordbox

The following files exist in the specified search directory but haven't yet been imported into rekordbox:

C:\Users\user\Documents\test\mrshl - In The Raino.mp3`

Thanks

Repaired XML File empty, although operation succesful

The program runs perfectly and manages to analyze all problems in the collection. This can be seen in the Terminal, aswell as the report. But the generated XML file contains no data and when imported into Rekordbox shows as 0 tracks in collection.
(Using Mac OS 12)
Bildschirmfoto 2023-02-16 um 18 45 49

Invalid Locations : Can't seem to remove/fix this one

First of all this tool is still better than the built in tool. Thanks <3 !!!

Nice to have request : So I have a track that was imported using Tidal @ Rekordbox but since I don't have Tidal anymore the track seems to hang in limbo. Any ideas?

output report :

Tracks with invalid locations

The following tracks couldn't be analysed or repaired because the file locations specified in the rekordbox XML library file were in some way invalid, e.g. contained a raw question mark. For these files the fix is to remove them from your rekordbox collection then re-import them:

'Charly Lownoise' - 'Gabber Top 25' - 'Wonderful Days'
Invalid: file://localhosttidal:tracks:145320494

I tried :

  • replacing the localhostidal with a direct link to the mp3 and reimporting the entire "all tracks" from the repaired XML
  • deleting the track and playlist reference of the erroneous file from the XML and reimporting
  • The track is not visible in rekordbox collection / even if I turn on Tidal (was a year ago I had Tidal for a spell) I don't see the track to delete

Although this is not a deal breaker for my workflow it's just a shame I can't get a perfect library hahahaa...

error message, please help

2021-01-21 17:03:20,175 INFO - Generating repaired rekordbox collection...
2021-01-21 17:03:20,406 INFO - Transforming XML...
2021-01-21 17:03:22,037 INFO - Saving new XML to D:\Games...
Exception in thread "main" java.io.FileNotFoundException: D:\Games (Access is denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:101)
at scala.xml.XML$.save(XML.scala:92)
at com.vividlab.rekordbox.repair.Repairer$.repair(Repairer.scala:23)
at com.vividlab.rekordbox.Main$.main(Main.scala:19)
at com.vividlab.rekordbox.Main.main(Main.scala)

    ive run cmd in admin, not much knowledge of code but relatively tech savvy 
    not sure why it cant access the output file 
    any help would be magic

Intelligent playlists are flattened

Hello,

First off, thanks so much for making this tool. It was straight-forward to use, the report was helpful and I wouldn't have been able to migrate my library without it.

I hadn't used intelligent playlists heavily, but noticed that the ones I'd had were "flattened" when I reimported my library. Previously intelligent playlists were no longer intelligent, and instead were regular playlists. The tracks inside were all maintained, so the issue is just that they're static going forward, rather than dynamically updating with various rules.

It's not a big deal for me to recreate them, as I wasn't using many and can figure out what most of them were about. But I figured I'd surface this issue, in case there's an opportunity to fix it. If it's a known issue and isn't going to be fixed soon, I think it'd be helpful to put a warning in the README. Maybe a workaround if there's a way to manually export the parameters of one's intelligent playlists, even if they have to be manually recreated.

Anyways, thanks again for your work and hope this is helpful.

Raina

Failed to complete successfully: the device is not ready

My itunes and rekordbox libraries are on an external hard drive and I am getting this message? What am I doing wrong? Thanks!

2022-01-24 23:29:12,778 INFO - Running using Java version 1.8.0_172
2022-01-24 23:29:13,214 INFO - Analysing rekordbox collection...
2022-01-24 23:29:13,215 INFO - Reading rekordbox XML file G:\test libray.xml...
2022-01-24 23:29:13,963 INFO - Loading tracks in the collection...
2022-01-24 23:29:15,050 ERROR - Failed to complete successfully: The device is not ready
java.io.IOException: The device is not ready
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
at java.io.File.getCanonicalPath(File.java:618)
at com.vividlab.rekordbox.data.CollectionTrack.$anonfun$filePath$1(CollectionTrack.scala:31)
at scala.Option.map(Option.scala:163)
at com.vividlab.rekordbox.data.CollectionTrack.(CollectionTrack.scala:31)
at com.vividlab.rekordbox.data.CollectionTrack$.apply(CollectionTrack.scala:38)
at com.vividlab.rekordbox.data.CollectionTracks$.$anonfun$fromXml$1(CollectionTrack.scala:46)
at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:237)
at scala.collection.Iterator.foreach(Iterator.scala:941)
at scala.collection.Iterator.foreach$(Iterator.scala:941)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1429)
at scala.collection.IterableLike.foreach(IterableLike.scala:74)
at scala.collection.IterableLike.foreach$(IterableLike.scala:73)
at scala.collection.AbstractIterable.foreach(Iterable.scala:56)
at scala.collection.TraversableLike.map(TraversableLike.scala:237)
at scala.collection.TraversableLike.map$(TraversableLike.scala:230)
at scala.collection.AbstractTraversable.map(Traversable.scala:108)
at com.vividlab.rekordbox.data.CollectionTracks$.fromXml(CollectionTrack.scala:46)
at com.vividlab.rekordbox.analyse.Analyser$.analyse(Analyser.scala:24)
at com.vividlab.rekordbox.Main$.main(Main.scala:15)
at com.vividlab.rekordbox.Main.main(Main.scala)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.