Software index

Version-originale.org builds its software index via a serie of so-called "watch" an "distribution" files.

Using these files, Version-originale.org crawls the web to find out the latest version of softwares.

Version-originale.org is quite versatile and can extract a software's latest version from web pages and from files downloaded from web pages.

When extracting information from files, Version-originale.org supports the following formats:

  • .dmg;
  • .exe;
  • .msi;
  • .zip.

HTTP API

Version-originale.org offers a HTTP API for integration with other tools. This API implements the following interfaces:

All results are in JSON format.

Configuration files

Watch files

Each watch file corresponds to a software. And, the filenames comply with the following format:

  • "<vendor>:<software_name>"

(Example: "mozilla:firefox")

When possible, the file is named after the software's corresponding CPE dictionary's entry.

Watch file format

All lines of a watch file must follow the format:

  • # <Property name>: <Property value>

The following properties are possible:

Names

A coma-separated list of names under which the software is known.

Only one "Names" line is allowed.

Publishers

A coma-separated list of names under which the publisher of the software is known.

Only one "Publishers" line is allowed.

Platform

A string corresponding to a platform and its architecture under which the software is expected to run.

Check methods

A JSON-formated array representing the steps the Version-originale.org must follow to get the information about the software's latest version.

The following steps exist:

  • download: Download a file. Possible parameters are:
    • file: How to name the download file (mandatory)
    • url: The URL where to download the file (mandatory)
    • user_url: An URL to present to the user where to download the file (optional)
  • extract: Extract files from a previously downloaded archive file. Possible parameters are:
    • file: Name of the archive file (optional. If not defined, versionScan will try to guess the name of the archive file based on its previous actions)
    • method: The method to be used to extract the file. Can be "cabextract", "dmg2img", "unzip", or "7z" (mandatory)
    • outfile: How to name the extrated filed (optional, only valid for method "dmg2img")
  • inspect: Inspect a file to find out its version.
    • file: Name of the archive file (optional. If not defined, versionScan will try to guess the name of the archive file based on its previous actions)
    • field: For method "win32::exe" only, specify in which PE header field the version info is to be found (mandatory); Often, the PE header field is "ProductVersion".
    • key: For method "plist" only, specify the property where the version info is to be found (mandatory); Often, the property is "CFBundleShortVersionString".
    • maxfilesize: For method "win32::exe" only, truncate file to this number of bytes to avoid unnecessary (costly) parsing (optional)
    • method: The method to be used to inspect the file. Can be "msiinfo", "win32::exe", or "plist" (mandatory)
  • uscan: Scan a web page to find out the software's latest version

Example

# Names: Snagit
# Publishers: TechSmith
# Platform: Windows/any
# Check Methods: [{"step":"download","parameters":{"url":"https://download.techsmith.com/snagit/releases/snagit.exe","user_url":"https://www.techsmith.com/screen-capture.html","file":"snagit.exe"}},{"step":"inspect","parameters":{"method":"win32::exe","maxfilesize":1000000,"field":"ProductVersion"}}]


Distribution files

Distribution files allows you to point to a web page listing all softwares of a (Linux) distribution.