A web application to interject with some preservation options.
Java HTML JavaScript CSS Scala Awk Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A proof-of-concept on-demand format conversion system build with web archives in mind. Developed at the UK Web Archive, as part of the SCAPE Project.

Build Status


Perhaps the clumsiest aspect of the current implementation is the way the underlying tools are handled. The shell commands being invoked are not declared very cleanly, and the invocation code contains a number of assumptions about what is installed, and where. For example, view3dscene needs to be installed separately and symlinked into the execution folder to work, and some of the tools need a X session to function (e.g. via a Xvfb).

Development Ideas

The packaging of tools and the declaration of how to invoke them is probably the area that needs most work in order to carry these ideas forward. For example, if would be better to package up the various tools and their dependencies along with the web service, perhaps in the form of one or more virtual machine images.

Other possible improvements are:

  • Add a URL form to /inspect/ when no URL parameter is present, and add bookmarklet a la Mementos.
  • Use a single parameterised route to invoke actions.
  • List all known actions when no action is passed.
  • Much better error handling.
    • It's not clear if/when an action goes wrong, or when type detection fails.
    • Little/no debug information is passed back.
  • Some actions require proper extension to succeed, so need to use ID result to fix up input and output extensions.
  • Properly generalise output format specification, including setting the content-disposition filename appropriately following conversions.
  • Ensure download link is always last in the list.
  • Should async properly: http://www.playframework.com/documentation/2.2.1/JavaAsync
  • Provide transformed version inside an iframe, for in-line feedback? How to cope with use via transclusion?
  • Highlight signature matching sections in the hex view. (Need Tika API changes to access Magic Clause classes).
  • Link to related holdings via Solr?
  • For characterisation:
  • For actions:

Interesting examples