VidLink

VidLink

Biggest and Fastest Streaming API

or
K+Movies
K+Shows
K+Anime
These numbers are an estimate from the 13+ sources we have
https://vidlink.pro/movie/786892

Easy to use

Intuitive and easy to use. Just copy the link and embed it into your website

Huge Library

With movies and shows scraped from multiple websites, we have it all!

Customizable

You can customize the player to your needs, using only query parameters

Auto Update

Content added every day, updated automatically

Highest Quality

Latest available quality and the fastest

Api Documentation

Embed Movies

TmdbId is required from The Movie Database API.
https://vidlink.pro/movie/{tmdbId}
Code Example:
<iframe
  src="https://vidlink.pro/movie/786892"
  frameborder="0"
  allowfullscreen
></iframe>

Embed Shows

TmdbId is required from The Movie DatabaseAPI. season and episode number should not be empty.
https://vidlink.pro/tv/{tmdbId}/{season}/{episode}
Code Example:
<iframe
  src="https://vidlink.pro/tv/94997/1/1"
  frameborder="0"
  allowfullscreen
></iframe>

Embed Anime New

MyAnimeList id is required from MyAnimeListAPI. number and type should not be empty.
https://vidlink.pro/anime/{MALid}/{number}/{subOrDub}
Add ?fallback=true to force fallback to sub and vice versa if the type you set was not found.
https://vidlink.pro/anime/{MALid}/{number}/{subOrDub}?fallback=true
Code Example:
<iframe
  src="https://vidlink.pro/anime/5/1/sub"
  frameborder="0"
  allowfullscreen
></iframe>

Customization Parameters

You can customize the embedded media player by appending parameters to the URL. Each parameter should start with a ? and multiple parameters should be separated by &.Use Hex Color Codesand remove the '#' before applying.
primaryColor

Sets the primary color of the player, including sliders and autoplay controls.

primaryColor=B20710
secondaryColor

Defines the color of the progress bar behind the sliders.

secondaryColor=170000
icons

Changes the design of the icons within the player. can be either "vid" or "default".

icons=vid
Example of "vid" icons:
iconColor

Changes the color of the icons within the player.

iconColor=B20710
title

Controls whether the media title is displayed.

title=false
poster

Determines if the poster image is shown.

poster=true
autoplay

Controls whether the media starts playing automatically.

autoplay=false
Next Episode button

Shows next episode button when 90% of the Tv-show is watched. OFF by default.

nextbutton=true
Player typeNew

Changes the player to JWPlayer or default player.

player=jw
startAtNew

Starts the video at the specified time in seconds. This parameter cannot replace saved progress but can be used for cross-device watch progress. remove cookies and cache after each test for the same content.

startAt=60
sub_fileNew

Adds external subtitles to the video. Must be a direct link to a VTT subtitle file.

sub_file=https://example.com/subtitles.vtt
sub_labelNew

Sets the label for the external subtitle track. If not provided, defaults to 'External Subtitle'.

sub_label=English

Customize Player

Colors

#
#
#

Options

Generated URL

https://vidlink.pro/tv/94605/2/1?primaryColor=63b8bc&secondaryColor=a2a2a2&iconColor=eefdec&icons=default&player=default&title=true&poster=true&autoplay=false&nextbutton=false

VidLink Player

Custom player with full customization

Custom Colors
Custom Icons
Title Overlay
Next Episode Button

JW Player

Professional video player

Professional UI
Fast Loading
Basic Controls
Customizable

Watch Progress

Continue Watching Feature

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://vidlink.pro') return; if (event.data?.type === 'MEDIA_DATA') { const mediaData = event.data.data; localStorage.setItem('vidLinkProgress', 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 } }

Player Events

New

Player Event Tracking

Listen to player events to track user interactions and video playback states. Events are sent via postMessage to the parent window.

Available Events

playTriggered when video starts playing
pauseTriggered when video is paused
seekedTriggered when user seeks to a different timestamp
endedTriggered when video playback ends
timeupdateTriggered 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://vidlink.pro') 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`); } });
© 2024 VidLink. All rights reserved