File hosts
Pages that resolve to a file
UqloadFile
MixdropFile
StreamtapeFile
Mp4UploadFile
FilemoonFile
VidtubeFile
VDeskFile
DropboxFile
FireloadFile
Player service
Embed pages, direct video, audio, and HLS masters all land in the same frame. Quality, speed, captions, and keyboard ship with it. The original address stays out of the page you publish.
The same surface for a direct file and for an embed page that resolves to a playlist.
Reach
Direct files, HLS masters, and public embed pages. Playback starts when the page yields a file or a playlist.
MP4, WebM, MKV, MOV, MPEG-TS, and audio, played as the file itself.
M3U8 and M3U. Several levels open the quality menu. Extra audio tracks get their own menu.
A public page whose stream is a file. The frame plays that file.
A public player page. Pages that only point at another player are followed until a file or playlist turns up.
File hosts
UqloadFile
MixdropFile
StreamtapeFile
Mp4UploadFile
FilemoonFile
VidtubeFile
VDeskFile
DropboxFile
FireloadFileEmbed pages
LuluVdoEmbed
VoeEmbed
DailymotionEmbed
StreamWishEmbed
SaveFilesEmbed
UpDownEmbed
VidmolyEmbed
VFastEmbed
DHCPlayEmbed
StreamHLSEmbed
FirestreamEmbed
EarnVidsEmbed
FastVidEmbed
AbyssEmbed
OkStreamEmbed
71StreamEmbed
MorenciusEmbed
RubyVidEmbed
ForaFileEmbed
MiraVDEmbed
VidobaEmbed
DoodStreamEmbed
FacebookEmbed
TikTokEmbedPublic libraries
Mail.ruLibraryA public Mail.ru link is read as the file it shares. Other public pages are read as embeds, including pages that only point at another player.
Capabilities
One frame for a file you already have, and for a public page that only reveals the stream after it is opened.
01
The player lives on this domain. You publish a /play/… address or an iframe. The original file or embed address is not written into that page.
02
A public page that is not a direct file is read as an embed. When a file or an HLS playlist is found, the frame plays it. Pages that only point at another public player are followed until that file or playlist turns up.
03
A master playlist with more than one level opens a quality menu. The choice is remembered in that browser. A single file leaves the menu hidden. Extra audio tracks get their own menu.
04
A path that already ends in a media extension plays as that file. Video, MPEG-TS, HLS, and audio share the player.
05
Play, seek, volume, mute, fullscreen, and picture in picture. Speed runs from 0.5× to 2×. Captions appear when the HLS stream includes them. Playback can resume near the last position on the same browser. A live stream shows a live badge in place of a duration. If the lookup finds nothing playable, the frame offers a retry.
06
Build the link in the studio, send the address to getplayer and follow the redirect, or ask /api/encode.php for the player URL and iframe as JSON.
How it works
An embed page or a direct http or https file. Local and private addresses are refused.
You receive a https://ex.divhard.com/play/… URL and an iframe. Each new link is a new token. Older links for the same media keep working.
Drop the iframe on your page, or point it at getplayer when the media address should resolve on each view.
Formats
MPEG-DASH manifests stay outside this player. Everything below plays in the same controls.
MP4, M4V, MOV, WebM, Ogg, OGV, MKV, MPEG-TS
M3U8 and M3U, including a master with several qualities
MP3, AAC, M4A, WAV, FLAC, Ogg
This service turns a public media address into a player frame. The frame lives on this domain. The original file or embed address is not written into the page.
You can make the frame in the Studio tab, or send the address to the getplayer endpoint and follow the redirect.
Open the Studio tab, paste one public http or https address, and create the link. The page then shows:
https://ex.divhard.com/play/…Each time you create a link, the token is new. Older links for the same media keep working.
Send a GET request with the media address immediately after ?=. The response is a redirect to the player.
https://ex.divhard.com/getplayer?=https://vfaststream.co/e/S7vR0qIxTuZv6A browser, a link, or an iframe can use that address. The browser follows the redirect and opens the player. curl -I shows the Location header, which is the /play/… URL.
curl -I "https://ex.divhard.com/getplayer?=https://vfaststream.co/e/S7vR0qIxTuZv6"If the media address has its own query string, leave it in place. Everything after ?= is the media address, including &.
https://ex.divhard.com/getplayer?=https://example.com/watch?id=42&ref=homeThe same call also accepts ?url= instead of ?=. The value is still the rest of the query string.
https://ex.divhard.com/getplayer?url=https%3A%2F%2Fexample.com%2Fvideo.mp4Use a public http or https address. Local, private, and empty addresses are rejected.
Point an iframe at getplayer when you want the player to resolve the media address on each view.
<iframe
src="https://ex.divhard.com/getplayer?=https://vfaststream.co/e/S7vR0qIxTuZv6"
title="Player"
width="100%"
height="480"
style="border:0;max-width:100%;background:#000"
allow="autoplay; fullscreen; picture-in-picture; encrypted-media"
allowfullscreen>
</iframe>Or embed the finished /play/… URL from the Studio. That address does not change until you create a new one.
A direct file is played as itself when the path ends with one of these extensions:
Any other public page is treated as an embed. The player looks up the stream and plays it when a file or HLS playlist is found. A master playlist gets a quality menu. MPEG-DASH (.mpd) is not played.
Public pages the player already reads include file hosts such as Uqload, Mixdrop, Streamtape, Mp4Upload, Filemoon, Dropbox, and Fireload, and embed pages such as Voe, LuluVdo, StreamWish, SaveFiles, Dailymotion, DoodStream, Facebook, and TikTok, and public Mail.ru links.
https://ex.divhard.com/getplayer?=https://example.com/video.mp4
https://ex.divhard.com/getplayer?=https://example.com/master.m3u8The frame fills its iframe. It has play and pause, a seek bar, volume, a live badge for live streams, and fullscreen. Picture in picture is available in browsers that support it.
Keyboard, when the frame is focused:
| Key | Action |
|---|---|
| Space or K | Play or pause |
| ← → | Seek |
| ↑ ↓ | Volume |
| M | Mute |
| F | Fullscreen |
| C | Captions, when a track exists |
| 0–9 | Jump to that tenth of the video |
| Status | Meaning |
|---|---|
| 302 | getplayer accepted the address. Location is the player URL. |
| 200 | The /play/… frame loaded. |
| 400 | The address is missing, not a public http(s) URL, or the host is not allowed. |
| 429 | Too many links were requested from this network. Wait and try again. |
A valid player frame can still fail later if the embed page has no playable stream, or if the file itself is gone. The frame then shows a retry button, which asks for a fresh stream.
While the Studio on this site is available, GET or POST https://ex.divhard.com/api/encode.php with url returns the player URL and iframe without a redirect.
curl "https://ex.divhard.com/api/encode.php?url=https%3A%2F%2Fexample.com%2Fvideo.mp4"{
"ok": true,
"play": "https://ex.divhard.com/play/…",
"token": "…",
"iframe": "<iframe …>"
}A rejected address returns {"ok": false, "error": "…"} and status 400. Percent-encode url when you put it in a query string, because this call uses a normal url parameter.