MHL Specification

MHL file structure

MHL files are a written in an straight forward XML format. In addition, they contain information about each file together with creator info.

Below is an example of a basic MHL file.

Download XML Schema

XML Schema: MediaHashList_v1_1.xsd (v1.1 2016-05-20)

Supported Hash Formats

MHL file naming convention

The reference implementation names the created MHL file as follows:


where the placeholders are substituted with the following:

  • <foldername> – name of the current directory, e.g. ‘Movies’
  • <date> – current date in format YYYY-MM-DD, e.g. ‘2013-05-10’
  • <time> – current time in format HHMMSS, e.g. ‘111527’

The current directory is the folder you were in when calling the MHL tool

Users/example/Movies usr$ mhl create
> MHL file path(s):
> /Users/example/Movies/Movies_2013-05-10_111527.mhl

MHL file location

The MHL tool requires the MHL file to be placed along the path of the referenced file. This allows for an easy discovery when looking for an MHL file for a specific file.

For example, when creating a MHL file for the file


the MHL file can be put in the following locations:


By default, the MHL file is located in the current directory you were in when calling the MHL tool (see section ‘MHL file naming’ above). You can manually specify the location of the MHL file, by passing the ‘–output-path’ option to the MHL tool.