Looking for help importing a large library from Papers3 into Zotero

Greetings Zoterrans.

I'm a biology professor at a small Canadian university, and have been using Papers (originally made by Mekentosj software, but now owned by ReadCube) as a reference manager for about 20 years. I've built a ~75Gb library consisting of tens of thousands of PDFs organized into hundreds of hierarchical collections, and I'm now in an awkward position of needing to import that library into Zotero. But I'm unable to do so using the regular import process.

By way of some background, I was perfectly happy with Papers, have been using it almost every day for decades, and would just keep using it if that were an option.

But papers was purchased by ReadCube some years ago, and they converted to a subscription model; I didn't want my library held hostage to arbitrary subscription rate hikes or other changes in ReadCube's terms of service, so I stuck with the Papers3 version I had running on my iMac, MBP, and iPad, accessing the shared library on Dropbox. Unfortunately, Papers3 does not run on newer versions of macOS, so I wound up keeping one machine running macOS 10.15, just to maintain access to my Papers3 library. But it became increasingly clear that I had to move on.

I've been looking at various alternatives, including Zotero which is by far the most attractive for a variety of reasons (most notably the open-source code and not-for-profit nature of the org developing it). Unfortunately, I was unable to import my library to Zotero using the import functions, so I delayed that decision too long.

I recently purchased a new MBP running macOS 15, and thought I'd copy Papers3 over to it just to see if it would run. Much to my surprise, it started up fine. But of course it asked for my licence key, so I entered that, but it failed to authenticate. I tried contacting ReadCube for help (as this is a perfectly valid licence key), but they say the authentication server is no longer running, so they can't help. The crisis occurred when I then started Papers3 on my old iMac running macOS 10.15 (on which nothing had changed) and found Papers3 refuses to authenticate on that system as well; so now I have no working installations of Papers!

Somehow when I tried to start Papers3 on my new MBP, it triggered the Papers3 installation on my old iMac to reject the authentication that was fine an hour before. I think ReadCube is lying to me about the authentication server not running; why would the installation on my old iMac stop working if there isn't a server somewhere responding to these authentication requests? But that's now beside the point.

I was sufficiently panicked by the loss of access to my library that I agreed to follow the path of least resistance and pay for a ReadCube subscription, but it turns out ReadCube can't import a Papers3 library either. I've also purchased a reference management application called Bookends, purely on the basis of its purported ability to import from Papers3. But it can't import hierarchical collections, so it's no good either.

So, in desperation to salvage the countless hours of work I've put into curating my Papers3 library, and move it to a modern, supported, open-source reference management application, I'm trying, belatedly to migrate to Zotero (I really wish I'd done this years ago now). But given that I no longer have access to a working copy of Papers3, I can't follow the normal process of exporting the library before importing it into Zotero.

Amazingly, I was able to track down one of the original developers of Papers - Alexander Griekspoor - who, despite not having worked on Papers for many years, graciously and within the constraints of his non-compete agreements with ReadCube, wrote some scripts to extract the contents of my Papers3 library and it's hierarchical structures into a series of JSON files.

Here's what he wrote in his most recent email to me:
---------------------------------------------------------------------
I've spent a bit more time on things and think I will have to leave you with the following:
- you can download a full set of exported json files here: https://www.dropbox.com/scl/fi/ogye7zp65br0mry1nes5v/20250806-Papers3-Bryan.zip?rlkey=nt1okkn4iex0fwdslq5vkgjaw&dl=1
- the most important file is `papers3_publications_full.json`, it's a large json containing all the relevant metadata from your library, including all collections info
- the file `papers3_collections.json` is also useful as it contains the inverse mapping, your collection hierarchy with the uuids of all containing publications (that can be found in the `papers3_publications_full.json` file)
- together this should contain anything you need to build a complete zotero import file
- this will however require a second script someone will have to write for you

Your best bet is to ask at the Zotero forums (https://forums.zotero.org), there are a bunch of good people around there and you can ask if someone is willing to help

I'm also happy for you to mention that I created the scripts and you can also share them there, I think more people might be interested in them. You can download them from here: https://www.dropbox.com/scl/fi/sdz620jongvu2jctrjac0/20250806-papers3_scripts.zip?rlkey=3ult6pqduvyg8ja416u73zbbm&dl=1
---------------------------------------------------------------------

So I'm hoping I can find someone here who can help me complete the process that Alex so helpfully started.

Once I've got my library imported into Zotero, I'll happily purchase the cloud storage necessary to host the library so I can access it on all my devices.

Thank you very much for any help any of you can provide. I'm looking forward to joining your community


  • So an update; I got some help from a friendly coder and have successfully imported my library into Zotero.

    In order to be able to access it on multiple machines, and to ensure that the library is backed up, I purchased cloud storage from Zotero.org and started the sync process.

    Unfortunately, I'm getting an error message saying that various collection names aren't valid. The collection names are not names of my collections, so I don't know where they're coming from.

    The error reportID is: 2030286255

    Can anyone help me with this?
  • edited 7 days ago
    [Merged back into this thread — D.S.]

    Just incase my follow-up post to my other discussion isn't the correct way to report an error, I'm posting this as a new discussion on the forum.

    The error messages look like this:
    [JavaScript Error: "'A7Y718RH' is not a valid collection key" {file: "chrome://zotero/content/xpcom/sync/syncEngine.js" line: 1365}]

    What is perplexing is that I have no collections called "A7Y718RH" so I don't know what's causing this.

    Since I've now clicked on the sync button twice, there are two reportIDs:891306191
    and the one I posted about in the follow-up to my initial posting requesting help importing a library from Papers3

    Thanks for any help.
  • You don't say what exactly the "friendly coder" did, but they created invalid Zotero collection keys. You'll need to close Zotero, delete your Zotero database (zotero.sqlite in the Zotero data directory), and start over from scratch if you ever want to sync.

    I'm afraid we can't really help with custom code, though.
  • Thanks for getting back to me.

    I don't know if it's possible to fix the invalid collection keys without re-writing the code. Since the library seems to work on my local system, I'm exporting it as a Zotero library, and will try re-importing it on a different computer. Is there any chance that will generate valid collection keys and allow me to sync from that computer?
  • I can also provide the python scripts I used to generate the JSON files from my Papers3 library, and to generate the zotero.sqlite & associated PDFs from the JSON files and the Papers3 library if that would be helpful.
  • I'm exporting it as a Zotero library, and will try re-importing it on a different computer. Is there any chance that will generate valid collection keys and allow me to sync from that computer?
    Yes, exporting to Zotero RDF with files and importing again should work. You can import on the same computer — just delete the database in between.
Sign In or Register to comment.