Hash Properties
Complete reference for all supported hash properties to control media playback behavior in links and embeds
You can control media playback behavior by adding properties to the hash fragment of media links. These work like URL query parameters and can be chained together using &.
For example: [[My Video.mp4#t=10,20&loop&mute&noctrl]]
Temporal Fragment (t=)
Control when and how long media plays using the t= property. There are two modes: timestamp (single time) and clip (time range).
For the full grammar — including W3C compatibility notes, the npt: prefix, fractional seconds, and validation rules — see the Timestamp Format reference.
Timestamp
A single time value seeks to that point when the media loads, then plays normally to the end.
| Format | Description | Example |
|---|---|---|
t=10 | Start at 10 seconds | #t=10 |
t=1:30 | Start at 1 minute 30 seconds | #t=1:30 |
t=1:02:30 | Start at 1 hour 2 minutes 30 seconds | #t=1:02:30 |
Clip
Two time values separated by a comma define a clip range. Playback is locked within this range.
| Format | Description | Example |
|---|---|---|
t=10,20 | Play from 10s to 20s | #t=10,20 |
t=,30 | Play from beginning to 30 seconds | #t=,30 |
t=10,e | Play from 10 seconds to end of media | #t=10,e |
Time Format
- Seconds: Any positive number with optional decimal places (
10.5) - MM:SS: Minutes and seconds (
02:30) - HH:MM:SS: Hours, minutes, and seconds (
1:02:30) - Open end: Use
eor omit the end time (start,) to play to the end of the media
Playback Control Properties
| Property | Description | Example |
|---|---|---|
autoplay | Start playing automatically | #autoplay |
no_autoplay | Prevent autoplay (override default) | #no_autoplay |
loop | Loop the media or segment | #loop |
no_loop | Disable looping (override default) | #no_loop |
mute | Start in muted state | #mute |
no_mute | Start unmuted (override default) | #no_mute |
Interface Control Properties
| Property | Description | Example |
|---|---|---|
controls | Force show player controls | #controls |
no_controls | Force hide player controls | #no_controls |
noctrl | Alias for no_controls | #noctrl |
keep_pitch | Preserve audio pitch when changing speed | #keep_pitch |
no_pitch | Disable pitch preservation (override default) | #no_pitch |
load= | Embed loading strategy | play or eager |
Audio/Video Properties
| Property | Description | Values | Example |
|---|---|---|---|
vol= | Set volume level | 0-100 | #vol=80 |
speed= | Set playback rate | Positive number | #speed=1.5 |
gain= | Audio gain adjustment | Number | #gain=2.0 |
as= | Force media type | audio or video | #as=audio |
load= | Embed loading strategy | play or eager | #load=eager |
Load Strategy Values
The load= property controls when embedded media begins loading:
play: Load media only when playback starts (lazy loading)eager: Load media immediately when the embed appears
Display Properties
| Property | Description | Values | Example |
|---|---|---|---|
ratio= | Aspect ratio | Format varies | #ratio=16:9 |
flip= | Flip transformation | Flip options | #flip=horizontal |
title= | Custom title | Text string | #title=My%20Video |
crossorigin= | Cross-origin policy | CORS values | #crossorigin=anonymous |