Academia Migrate


For the full explanation of my reasoning behind this project, see Open Access,, and why I'm all-in on on the American Numismatic Society blog.

This application extracts publication metadata from an user profile web page and facilitates import of this metadata (if there are associated document files) and re-upload of these document files into Zenodo. Despite's (poor) terms of service, Google's recent victory over academic publishers has demonstrated that metadata are not copyrightable, and can be freely harvested from the web. However, the document files cannot be harvested automatically (only authenticated users can download them), and so there needs to be an intermediate step in which Academia users re-upload their files into this system for posting via API into Zenodo. Upon completion of the migration process, these uploaded files will be deleted from this server.

It should be noted that an profile seems to only include as many as seven publications of a certain type (papers, talks, etc.). As a result, this framework will only migrate those documents embedded ino the user profile. Users with many publications may need to re-run this migration over several iterations, importing seven papers at a time, deleting them from, and re-running the migration on the next seven documents in the profile. I apologize for the inconvenience, but is purposely designed to thwart harvesting.

The code is open source at It relies on a PHP script for scraping metadata from and posting files at multipart/form-data. The remaining interactions are handled in Orbeon, an XForms processor. Please submit issues to Github. The HTML on may change from time to time, and the scraping script may require revision.


  1. An profile.
  2. A account and activated access token (see next page).

Validate Access Token

After registering your account, request an access token, and grant privileges for deposit:write and deposit:actions. At this time, we cannot support Zenodo's OAuth API as we cannot support HTTPS. However, your access token is not saved or transmitted in any way except to interact with the Zenodo API. It is secure.

The access token is valid.

Parse Data

Copy and paste the URL for your profile in the input below and click "Get Record." E.g., The "Get Records" button will activate when the Profile URL is valid. Note: if you are certain the URL is correct but the button does not activate, please create a Github issue and paste your profile URL, as there is a pattern matching problem.


Alert: No records have been selected for migration


The records shown below have associated document files on Academia. By default, all records are designated for migration, but you can uncheck the box to the left of each record to disable import. Any record designated for migration must have a new uploaded file, and exclamation points next to text inputs indicate required content.

Since these metadata are parsed from the HTML page for your profile itself, I am uncertain how many publications will appear on the page. It appears there maybe 11 of each under the Papers and Talks categories. The record list therefore may be incomplete.


Below is a brief description of the available fields:

Select appropriate Creative Commons license.
Upload Type
'publication' (default), 'poster', and 'presentation' are the most common types from
Publication Type
When upload type is 'publication', the publication type must be selected. 'article', 'thesis', 'section', and 'conferencepaper' allow additional fields about the parent publication
Publication Date
Use the date picker to select the date. It does need to conform to a particular day, and not an approximate year or month.
Required by Zenodo
Name and Affilation are required. First creator cannot be deleted. It is presumed to be the and Zenodo account holder.
Extracted from, but can be deleted migration to Zenodo. Use Zenodo interface for inserted new keywords.
Journal Information
If the Publication Type is 'article', then the Journal Title, Volume, Issue, and Pages may be entered. The Title is required, if inserted. Others are optional.
Conference Information
If the Publication Type is 'conferencepaper', then the Conference Title, Place, and Dates may be added. These are required if added.
Thesis University
If the Publication Type is 'thesis', the Thesis University may be added.
Book Title
If the Publication Type is 'section', the Book Title may be added.
Migrate Record File Upload



Conference Information

Journal Information


Alert: There must be an uploaded document.
Remove File
Alert: There may be a special character in your filename that might result in an upload error.
Alert: No records have been selected for migration.

Migration Complete

The migration has completed successfully. Below is a list of migrated documents:

Migration Errors

The migration has run into errors. Some files may have uploaded successfully and others not. Please check your Zenodo profile. Please email ewg4xuva [at] gmail {.} com with a description of your upload process. If you have a Github profile, please create an issue here.

Alert: This XForms engine does not support JSON processing.