API Reference v2.0
API Documentation
Complete guide to embedding movies and TV shows on your website using VidSrc & multi-server stream resolvers. One iframe, one URL — no API key, no sign-up required.
# Quick Start
Copy an embed URL, drop it in an iframe, and you're live. All mirrors serve identical content.
HTML
<iframe
src="https://vidsrcme.ru/embed/movie/tt1300854"
width="100%"
height="560"
frameborder="0"
allow="autoplay; encrypted-media; fullscreen"
allowfullscreen>
</iframe># Custom Domain Setup
Point your domain to the resolver to use it as a white-label player URL — 50% fewer ads, no watermark logo, and direct autoplay.
1. Point DNS CNAME in Cloudflare
Type: CNAME
Name: @ or player
Target: vidsrc-ip.com
Proxy Status: Proxied (Orange Cloud ON)
2. Configure Cloudflare SSL Mode to Flexible
In Cloudflare SSL/TLS → Overview, set encryption to Flexible. (Do not use Strict).
# Movie Embed Endpoint
GET
/embed/movie/{id}Embed a movie player by providing an IMDb ID or numeric TMDB ID.
Parameters:
{id} (Required) — IMDb ID (e.g. tt1300854) or TMDB ID (e.g. 68721).# TV Show Embed Endpoint
GET
/embed/tv/{id}/{season}/{episode}Embed a specific episode, or omit season and episode (e.g. /embed/tv/1399) to load the season picker.
{id} (Required) — IMDb or TMDB ID{season} (Optional) — Season number{episode} (Optional) — Episode number# Query String Format
https://vidsrcme.ru/embed/movie?imdb=tt1300854
https://vidsrcme.ru/embed/tv?tmdb=1399&season=1&episode=1
https://vidsrcme.ru/embed/tv?imdb=tt0944947&season=1&episode=1
# Query Parameters
| Parameter | Type | Description |
|---|---|---|
| autoplay | 0 / 1 | Force autoplay on (1) or off (0). |
| autonext | 0 / 1 | TV only. Auto-play next episode when current ends. |
| startAt | Integer | Start playback at a specific timestamp in seconds. |
| ds_lang | String | Default subtitle language priority (e.g. en,id). |
| sub_url | URL | Custom remote CORS-enabled .vtt subtitle track. |
# Player Events (postMessage)
Event Listener Snippet:
window.addEventListener('message', (event) => {
if (event.data?.type !== 'PLAYER_EVENT') return;
const { player_info, player_status, player_progress } = event.data.data;
if (player_status === 'playing') {
localStorage.setItem('progress_' + player_info.imdb, player_progress);
}
});