tt prefix, or a TMDB id.
https://embed.vidsrc.pk/movie/tt0133093
https://embed.vidsrc.pk/movie/927085
Give it an IMDb or TMDB id and get back a player you can embed anywhere. Quality options, subtitles, a source list, and a player that behaves on a phone as well as a projector.
GET https://embed.vidsrc.pk/movie/tt0133093
<iframe src="https://embed.vidsrc.pk/movie/tt0133093"
allowfullscreen></iframe>
The real embed rather than a picture of one. Paste an id and it loads in place.
Loading the player…
Starting the stream…
Loads https://embed.vidsrc.pk/movie/tt0133093
The parts that matter once the player is inside someone else's page rather than on a page of its own.
Sources are re-resolved per request, so a link that has gone stale is replaced rather than served.
The chrome is sized from the player's own box, from a 320×180 widget to a full-screen hero.
Whatever the source offers, listed and switchable: renditions, audio tracks and playback speed.
If one upstream will not answer, the next is tried before the viewer is told anything failed.
Track lists come from the source and are served through the same proxy as the video.
Embeddable anywhere, and it refuses to run inside a sandboxed frame where its own guard would be stripped.
Two ways in — an embed URL for the player, and a JSON API behind it — plus the data endpoints the player itself is built on.
tt prefix, or a TMDB id.
https://embed.vidsrc.pk/movie/tt0133093
https://embed.vidsrc.pk/movie/927085
tt prefix, or a TMDB id.
1.
1.
https://embed.vidsrc.pk/tv/66732/1/1
https://embed.vidsrc.pk/tv/1399/8/6
Every player by name, with the id to ask for it and whether it is answering right now. This is the list the source menu is built from, so a caller can offer the same choice without loading the player to find out what it has.
https://embed.vidsrc.pk/__stream/providers
?provider=, or leave it out for auto.
{ "id": "auto", "label": "Auto", "hint": "best available", "healthy": true }
{ "id": "vidsrcru", "label": "VidSrc.ru", "hint": "", "healthy": false }
Every season of a series with how many episodes each has and the languages available, which is what the player's season and episode switchers are built from.
https://embed.vidsrc.pk/__stream/getSeasonList?id=1399
{ "season": "Season 8", "totalEpisodes": 6, "lang": ["English"] }
movie or tv. Without it a series is answered as a film, which is the usual way to get a wrong answer out of this one.
Answers with the languages a title is available in, which is what the player's language menu is built from.
https://embed.vidsrc.pk/__stream/mediaInfo?id=550&type=movie
https://embed.vidsrc.pk/__stream/mediaInfo?id=1399&type=tv&season=1&episode=1
Sources are refreshed continuously, so a link that is withdrawn is replaced rather than left to fail.
Subtitles arrive from the source alongside the video, so they appear wherever the source provides them. The menu only appears when there is more than one track to choose from.
It is a URL. Put it in an iframe and you have a player; there is nothing to install and no key to request. The endpoints above are the whole of it.
If nothing plays, the player says so and names which sources it tried; the source menu lets you pick another without leaving the page. A wrong match can be reported from the player.
Yes, when the source offers more than one rendition. The settings menu holds quality, subtitles and playback speed together.
Films are largely offered in their original language and the language menu lists what a given source has. Where a source carries several audio tracks they are listed with the quality.
Not as a separate thing. Anything with an IMDb or TMDB id resolves the same way as any other title.
For anything the pages above do not cover.