Hyper 8 Video System 0.18

Video

A video in Hyper 8 is, at its simplest, represented by a directory that contains a single video file:

my_video/                     <--- Video directory
└─ original.mp4                 <--- Video file

The name of the directory (which may only contain alphanumeric characters, - and _) determines the permalink for the video, that is, the URL/web address under which the video will appear publicy on the web if you publish your site online.

More widely speaking, a video in Hyper 8 is a single video-based media artifact that can be (re)presented through different video (but also audio) files to cover a range of qualities/formats. It can also be augmented with subtitle files and a poster image that is shown in thumbnails and before the video is played back. In fact, if there is no poster image, Hyper 8 will compute one automatically (by taking a frame from the video), always.

Video files

Currently the extensions m4v, mp4, mkv, mov, webm are supported.

Subtitle files

Currently the extensions srt and vtt are supported.

By naming your subtitle files with a language code (in BCP 47 format), Hyper 8 can automatically determine its language, for instance en.srt would indicate english subtitles while fr.vtt would indicate french subtitles.

The video.eno manifest

All options at a glance: copy_link, description, download, embedding, link, offline, platform_integration, poster, release_date, sort_number, title, unlisted

Manifest for tagging and configuring a video, which can be placed inside the video directory. A video directory can be identified as a video directory also by just placing a video.eno file inside it, regardless of whether there is even already a video file in it.

poster:
description = Confused looking people in an office
file = episode_1.jpg

download: enabled
offline
platform_integration: link_previews
release_date: 2024-02-12
sort_number: 1
title: The pilot episode of the show
unlisted

link:
label = My Website
url = https://example.com

link:
label = My Social Media
url = https://social.example.com
verification = rel-me

-- description
An unsettling truth comes to light as three old friends
reunite at an unexpected gathering.
-- description

copy_link

To disable the "Copy link" button (by default it's enabled) you can use the copy_link option, with either enabled or disabled as value.

copy_link: disabled

description

Stand-alone URLs inside the description field are automatically converted to links, and you can additionally use markdown-style inline links such as [Example](https://example.com) to customize the text of a link (Note that no other markdown syntax is supported inside description though). Any number of empty lines in the description field separates paragraphs in the text.

download

This opt-in setting enables a download button on the video page, openly inviting and allowing visitors to conveniently choose and download a specific version of the video to their computer.

download: enabled

Note that the absence of a download button (i.e. the default setting of this option) does not mean that it is not possible to download your video - this is always easily possible for anyone with some technical knowledge. Enabling the download button however is an invitation to your visitors that you want them to be easily able to do so, and inversely, not enabling it - as on every other website - simply implies that you do not openly invite downloading, and visitors will have to research or inquire about your video's license before making any use of it beyond watching it on your site.

embedding

This allows visitors/you to copy embed codes (html) that they/you can use to embed your videos on their/your own sites.

Embedding is disabled by default. If you want to enable it you also need to set the site's base_url (embeds work by displaying something from your site on another site, for this the other site needs to point to your site's address), and then set embedding: enabled, either at the collection, playlist or video level. If you set it enabled at the catalog or playlist level, you can also use disabled at a lower level to disable it again for specific playlists or videos.

embedding: enabled

link

Any number of link fields can be given. The label for a link is optional. The verification attribute refers to to the rel="me" mechanism, its value can be either rel-me to add the rel="me" attribute to the link or rel-me-hidden to add the attribute and additionally hide the link from the site, thereby making it only visible to servers that want to verify you are the owner of the site through this attribute.

link: https://example.com

link:
label = My Website
url = https://example.com

link:
label = My Social Media
url = https://social.example.com
verification = rel-me

offline

The offline flag, if given, indicates that the video should not be included in the built site, and therefore also not deployed to the server.

offline

platform_integration

This opt-in feature adds metadata on your pages that is crawled and harvested by many platforms in order to present your page (when it is being linked to) using a uniform "card" design pattern inside social feeds and timelines.

To enable metadata that platforms use to generate link previews (this is based on Facebook's Open Graph protocol), specify the link_previews setting like this:

platform_integration: link_previews

To enable link previews plus additional metadata that lets platforms directly embed your audiovisual content into their timelines through embedded players (this utilizes Facebook's Open Graph protocol, "player card" metadata declarations that were originally introduced by twitter, as well as Hyper 8's native embed widgets) specify the content_embeds setting like this:

platform_integration: content_embeds

To disable this feature, either remove the option (it is disabled by default) or explicitly specify disabled if you want to override it somewhere:

platform_integration: disabled

poster

The image that is displayed in thumbnails and before you press play on the video. Hyper 8 will auto-generate one from the video initially, but in any case you should add a textutal description later for screenreader users.

poster:
description = Confused looking people in an office
file = episode_1.jpg

release_date

When this video was released, in YYYY-MM-DD format. This is both displayed and potentially used for sorting, unless you manually configure a different sort order for the parent collection or playlist.

release_date: 2025-02-17

sort_number

The sort_number field can optionally be used to enforce a custom order of appearance for videos that appear in a collection or playlist. It accepts whole numerical values (1, 2, 3) - including zero and negative ones (0, -1, -2). In playlists this custom ordering will automatically be picked up by the default ordering mechanism (which sorts first by sort_number ascending, then by release_date ascending), but the order field in a playlist manifest can be used to modify this behavior - e.g. to use descending order or to sort by release date even if sort_number is present on videos, to sort alphabetically by title, etc.

title

The title of the video.

title: The pilot episode of the show

unlisted

The unlisted flag, if given, indicates that the video should not appear or be linked to on any of the public pages, i.e. only those that are given the link to them, will know of their existence.

unlisted
Next page: Site