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
Links are automatically updated with new or better quality as soon as they are available online.
Responsive
The player is responsive and can work on every Desktop, Mobile, Tablet without problem.
High Quality
The quality of the links is the latest available, mostly are 1080p and 4K for some of the Movies.
Fast Streaming Servers
The player includes a list of fastest streaming servers, users can easily optional.

API Documentation

Detailed representation of the API endpoints for VidZee includes comprehensive information regarding the available methods, request formats, required parameters and optional parameters.
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`);
    }
});
2025 VidZee. All rights reserved.