Effortlessly integrate free streaming movies and tv shows on to your website.
Simple to set up on your website with a quick API and fast loading servers.
Extensive library of tv shows, movies, documentaries that are curated and indexed from the web.
Fast loading servers, efficient video player that resumes where users stopped, less ads to create a superior watching experience compared to other video APIs.
Add the video player to your website using a simple iframe:
<iframe
src="https://www.vidpop.xyz/embed/?id=TMDB_ID"
width="100%"
height="100%"
frameborder="0"
allowfullscreen
></iframe>
id
Required
TMDB ID of the movie or TV show
season
Optional
Season number (for TV shows)
episode
Optional
Episode number (for TV shows)
VidPop automatically sends video progress updates to the parent window using postMessage. These updates help you track user watch history and resume playback positions.
window.addEventListener("message", (event) => {
if (event.data.type === "videoProgress") {
const progress = event.data.data;
/* Handle progress update */
}
});
{
id: "123", // TMDB ID
type: "movie"|"tv", // Content type
season: 1, // Season number (TV only)
episode: 1, // Episode number (TV only)
progress: 45.5, // Percentage complete (0-100)
timestamp: 125.4, // Current time in seconds
duration: 3600 // Total duration in seconds
}
// Initialize progress tracking
const watchProgress = {};
// Listen for progress updates
window.addEventListener("message", (event) => {
if (event.data.type === "videoProgress") {
const progress = event.data.data;
// Store progress data
watchProgress[progress.id] = {
progress: progress.progress,
timestamp: progress.timestamp,
lastUpdate: Date.now()
};
// Example: Save to backend
saveToDatabase(progress);
}
});
// Load video with optional resume position
function loadVideo(tmdbId, season = null, episode = null) {
const embedUrl = new URL("https://www.vidpop.xyz/embed/");
embedUrl.searchParams.set("id", tmdbId);
if (season && episode) {
embedUrl.searchParams.set("season", season);
embedUrl.searchParams.set("episode", episode);
}
document.getElementById("player").src = embedUrl.toString();
}