Asking this host…

@NHD Play

Your movies, shows & anime on one address — one line to embed, an account that remembers what you watched, and a share of the advertising for the audience you bring.

  • — Movies
  • — Shows
  • — Anime

Estimated catalog size across the sources this host can resolve — an estimate, not a promise about any one of them.

  • One port for the site, the player, the panel and the API
  • An account for every viewer — plans, payments, history, and a link that pays the ones who bring an audience
  • Advertising you switch on and time, and that no subscriber ever sees
  • One iframe to embed the whole player, ad-free with a key

Titles this host can resolve

Live sources
—

Live preview

Player playground

Point this at a title, flip the options, and copy the frame for your site. The preview is the same player your visitors will see.

Type
Accent colour
Autoplay
Embed URL
Preview size

The player fills whatever box you give it — the frame is pinned at 16:9 and centred, so try Small to see the compact chrome. Movie, TV and Anime each keep their own id, because the same number names a different title in each. The preview opens on the title and waits: nothing is played until you press play in it, which is also the first thing a visitor sees.

Everything included

A whole streaming stack, on one address

The page you are reading, the player, the accounts, the payments, the advertising, the statistics and the admin panel are one server you start with one command.

For the people watching 6 things

Everything a visitor meets, from the address bar to the last episode.

  • Full-page player

    Real title URLs like /movie/1101412 and /tv/1396/1/3. Reload lands on the same frame, links are worth sharing, and captions, quality and episode switching are in the player itself.

  • Many sources, one request

    Playback is a stream of events: the title arrives first, then one source the moment each provider resolves it. Playback starts on the first one — never at the end of the list.

  • An account that remembers

    Sign in and the host keeps what you watched, where you stopped and which provider served it — plus one page with your plan, your payment history, your password and the devices you are signed in on.

  • The community, in the player

    A host with a channel draws a Join Telegram button in the player itself — beside the settings gear on a desktop and in the phone's quick actions — so the audience a link brought here has somewhere to go that is not the address bar. Leave the address empty and no button is drawn at all.

  • Plans you can buy without a card

    Monthly or yearly, in the currency the operator names, paid by a mobile wallet, a wallet address or a bank transfer — whichever they actually take. You are handed a reference code and paste what you sent; a person then confirms it and the subscription starts. Nothing is charged behind your back and nothing is automatic.

  • Embed it anywhere — ad-free with a key

    Drop an iframe anywhere and you have the player, its controls and its fullscreen. A subscribed account gets its own key to put in that address, which spares its visitors the advertising, and the key can be locked to the domains its owner has proved. Leave the sandbox attribute off the frame: a sandboxed embed is refused rather than served, because it is the one way an embed can keep the picture and stop the tab the host is paid through.

For the person running it 6 things

What is switched on, priced, counted and paid out — and where.

  • Advertising you control

    A pre-roll curtain, a banner and one smartlink tab, each switched on separately and timed from the panel. A subscriber — or anybody arriving through a working embed key — is served none of them, and that answer is given by the server rather than by a class a client has to remember.

  • Paid for the audience you bring

    An earning link is one query on the end of this host's address, and the three things it can count are the three this host really observes. Every account starts its own from its own page — one button, one address, and a share of what the advertising that address brings is worth. Payouts are requested from that same page and sent by hand from the panel, where the whole queue is one list.

  • Statistics, and a live audience

    Views, plays and which provider actually served each one, counted on this machine and kept in a plain JSON file you can read, diff and delete — and above those totals, the panel's live half: who is on the site at this moment, how many of them are actually playing, and where they came from. The page says so itself every fifteen seconds, which is why the count is people with the site open rather than requests that were logged.

  • Your own code, on every page

    Paste your own head and body tags — a verification meta, an analytics snippet, a network's script — and this host writes them into the pages it serves. A switch decides whether subscribers and embeds carrying a key get them too, because a verification tag is not an advertisement.

  • Policy, not guesswork

    Switch a provider off, hide a title, put the whole host into maintenance with your own sentence on screen. Every one of those is a switch in the panel, not a code change.

  • Themed from the panel

    The name, the tagline, the logo, the accent colour, the footer line and the title the player opens all come from the settings — and reach this page with no rebuild and no restart.

How it works

One address, three steps

One port answers all three of them: the player a viewer opens, the events an embed listens to, and the panel the operator switches everything from.

  1. 01

    Ask for a title, in the address bar

    /movie/1101412 and /tv/1396/1/3 open the full-page player on that title. The URL is the shape the reference site uses, so a reload lands on the same frame and a link is worth sending.

  2. 02

    The API answers with events

    A playback request is a Server-Sent Events stream: meta with the title and its captions, then one source per provider the moment it resolves, then done with the count.

  3. 03

    Everything else is a switch in the panel

    The name and the accent, the sources offered and their order, the pre-roll and the smartlink, your own head and body tags, the plans a viewer may buy, the earning program and who may join it, the keys that make an embed ad-free and the domains each is locked to, the content policy and the player's own defaults — every one of them a switch in the panel, reaching this page and the player with no rebuild and no restart.

Documentation

Call it, or embed it

Every endpoint is the same port as this page. The player is an iframe away, and both snippets print the address you actually opened.

Movies, shows and subtitles
GET /movie?id=1101412                SSE: meta · source · done
GET /tv?id=1396&season=1&episode=3   SSE: meta · source · done

GET /subtitles/movie/1101412         caption tracks
GET /subtitles/tv/1396/1/3           caption tracks
Embed the player
<iframe
  src="http://localhost:5173/movie/1101412"
  width="960" height="540"
  frameborder="0"
  allow="autoplay; fullscreen; encrypted-media"
  allowfullscreen></iframe>
Embed it ad-free
<iframe
  src="http://localhost:5173/movie/1101412?key=VYLA-AF-XXXX-XXXX"
  width="960" height="540"
  frameborder="0"
  allow="autoplay; fullscreen; encrypted-media"
  allowfullscreen></iframe>

The four blocks after VYLA-AF- are the subscriber's own; they are printed on their account page and can be locked to the domains they have proved.