Video Streaming API
With No Ads
VidZee offers lightning-fast, up-to-date streaming for movies and tv shows, seamlessly integrating with your website through our embed links
Deliver an optimized User Experience
There are plenty of essential features optimized to provide the best user experience.
Auto Update
Responsive
High Quality
Fast Streaming Servers
API Documentation
Endpoint
Valid parameters:
- {id} required - from imdb.com or themoviedb.com, imdb id must have tt prefix.
Examples
https://player.vidzee.wtf/embed/movie/tt6263850
https://player.vidzee.wtf/embed/movie/533535
Endpoint
Valid parameters:
- {id} required - from imdb.com or themoviedb.com, imdb id must have tt prefix.
- {season} required - the season number
- {episode} required - the episode number
Examples
https://player.vidzee.wtf/embed/tv/tt4052886/1/5
https://player.vidzee.wtf/embed/tv/63147/1/5
Endpoint
Valid parameters:
- {id} required - from imdb.com or themoviedb.com, imdb id must have tt prefix.
Examples
https://player.vidzee.wtf/embed/movie/4k/tt1375666
https://player.vidzee.wtf/embed/movie/4k/533535
Track your users' watch progress across movies and TV shows. This feature enables "Continue Watching" functionality on your website.
1. Add Event Listener
Add this script where your iframe is located. For React/Next.js applications, place it in a useEffect hook.
Script
window.addEventListener('message', (event) => {
if (event.origin !== 'https://vidzee.wtf') return;
if (event.data?.type === 'MEDIA_DATA') {
const mediaData = event.data.data;
localStorage.setItem('vidZeeProgress', JSON.stringify(mediaData));
}
});
2. Stored Data Structure
The data is stored in localStorage and contains:
- Movie/Show details (title, poster, etc.)
- Watch progress (time watched, duration)
- Last watched episode for TV shows
- Episode-specific progress for shows
Example Data Structure
{
"76479": {
id: 76479,
type: "tv",
title: "The Boys",
poster_path: "/2zmTngn1tYC1AvfnrFLhxeD82hz.jpg",
progress: {
watched: 31.435372,
duration: 3609.867
},
last_season_watched: "1",
last_episode_watched: "1",
show_progress: {
"s1e1": {
season: "1",
episode: "1",
progress: {
watched: 31.435372,
duration: 3609.867
}
}
}
},
"786892": {
id: 786892,
type: "movie",
title: "Furiosa: A Mad Max Saga",
poster_path: "/iADOJ8Zymht2JPMoy3R7xceZprc.jpg",
backdrop_path: "/wNAhuOZ3Zf84jCIlrcI6JhgmY5q.jpg",
progress: {
watched: 8726.904767,
duration: 8891.763
},
last_updated: 1725723972695
}
}
Listen to player events to track user interactions and video playback states. Events are sent via postMessage to the parent window.
Available Events
- play - Triggered when video starts playing
- pause - Triggered when video is paused
- seeked - Triggered when user seeks to a different timestamp
- ended - Triggered when video playback ends
- timeupdate - Triggered periodically during playback
Event Data Structure
Event Object
{
type: "PLAYER_EVENT",
data: {
event: "play" | "pause" | "seeked" | "ended" | "timeupdate",
currentTime: number,
duration: number,
mtmdbId: number,
mediaType: "movie" | "tv",
season?: number,
episode?: number
}
}
Implementation Example
window.addEventListener('message', (event) => {
if (event.origin !== 'https://vidzee.wtf') return;
if (event.data?.type === 'PLAYER_EVENT') {
const { event: eventType, currentTime, duration } = event.data.data;
// Handle the event
console.log(`Player ${eventType} at ${currentTime}s of ${duration}s`);
}
});