API Documentation
Introduction
Welcome to the Rogplay API. This API allows you to create your own Fully edge working Addons, as well as cinema content and customize as you want.
This App made with React Native which works on JavaScript environment, allowing things made easier
Addons
Addons in the RogPlay app enhance user experience by allowing seamless integration of various streams. With this feature, users can add and enjoy a wide range of streaming sources, customizing their entertainment as they prefer. Whether it's movies, live channels, or exclusive content, Addons provide flexibility and personalization, making RogPlay a versatile streaming platform.
Creating Addons
GET https://raw.githubusercontent.com/rogplay/rogplayaddons/refs/heads/main/preaddons.json
Sample of Supported Json Format
[
{
"version": "1.0",
"title": "Free IPTV",
"logo": "https://raw.githubusercontent.com/rogplay/public/refs/heads/main/assets/freeiptv.png",
"url": "https://raw.githubusercontent.com/Free-TV/IPTV/master/playlist.m3u8",
"type": "livetv",
"description": "List of Free and Public IPTV Channels available worldwide"
},
{
"version": "1.0",
"title": "Free Cinema",
"logo": "https://raw.githubusercontent.com/rogplay/public/refs/heads/main/assets/tmdb.jpg",
"url": "https://nl1.api.radio-browser.info/m3u/stations",
"type": "cinema",
"description": "List of Free and Public Cinema"
}
]
Currently 2 addons type cinema and livetv supported
"type": "cinema"
is read only can be used fr works only on cinema screen
"type": "livetv"
is used for displaying livetv or other streaming content on addons
Streaming / LiveTV
Rogplay Support Native M3U and Json based structure for streaming contents
M3u Format
Below Sample M3u Example
#EXTM3U
#EXTINF:-1 tvg-id="1" tvg-logo="https://i.imgur.com/LMxTAzY.png" group-title="france",TF1 FHD
https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_fmp4/master.m3u8
#EXTINF:-1 tvg-id="2" tvg-logo="https://i.imgur.com/TmsIL5C.png" group-title="france",France 2
https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_fmp4/master.m3u8
HEADERS
You can pass headers in url by passing ? or & or |
in end of url
Headers passed in url is case insensitive Origin, ORIGIN, orign treated same
You can pass multiple headers by using &
https://rogplay.live/index.m3u8?Referer=https://rogplay.live
https://rogplay.live/index.m3u8|User-Agent=https://rogplay.live
https://rogplay.live/index.m3u8?Referer=https://rogplay.live&Cookie=username=johndoe; expires=Thu, 18 Dec 2023
DRM Playback
Rogplay provides support for CLEARKEY, WIDEVINE, FLAIRPLAY, PLAYREADY drm scheme irrespective of your devices.
1. WIDEVINE
#EXTINF:-1, Demo channel
#KODIPROP:inputstream.adaptive.license_key=https://cwip-shaka-proxy.appspot.com/no_auth
#KODIPROP:inputstream.adaptive.license_type=WIDEVINE
https://cdn.bitmovin.com/content/assets/art-of-motion_drm/m3u8s/11331.m3u8
2. CLEARKEY
#EXTINF:-1, Demo channel
#KODIPROP:inputstream.adaptive.license_key=https://example.to/licenseurl
#KODIPROP:inputstream.adaptive.license_type=CLEARKEY
http://example.com/channel/02
Rogplay Supports differnt type of clearkeys format like base64 keys, hex keys as well as post request of license url
1. Clearkey Hex
#KODIPROP:inputstream.adaptive.license_key=edf1a715de9748638dd2fad75a419af2:2f5a3199b26e9b693ae881af7ff864cf
2. Base64 Encoded Json
{
"keys": [
{
"kty": "oct",
"k": "t+Aauiwwex8FBX6RqdFQ0g",
"kid": "4WQhz3w3TFeo9+kQSfWM2Q"
}
],
"type": "temporary"
}
3. Post license url returning base64 json/Hex
https://license.to/post
Json Format
Sample JSON Example
[
{
"Title": "Star Sports 1 HD",
"Poster": "https://i.postimg.cc/QM22x0Qj/Star-Sports-1-HD.png",
"Url": "https://madstream.one/hls/crichd/index.php?id=starhindi&e=.m3u8"
},
{
"Title": "Star Sports 1 Hindi HD",
"Poster": "https://i.postimg.cc/MZbCq0v8/Star-Sports-1-HD-Hindi.png",
"Url": "https://madstream.one/hls/crichd/index.php?id=starhindi&e=.m3u8"
}
]
Title [Mandatory]
Referers to name of stream
Similar Title => name, filename, event_name, event {Case insensitive}
Poster [Mandatory]
Referers to name of poster of stream
Similar Title => image, logo, src, {Case insensitive}
Url [Mandatory]
Referers to name of url of stream
Similar Title => link, file, stream, {Case insensitive}
id [Optional]
Referers to id of stream
Similar Title => link, file, stream, {Case insensitive}
Headers {Referer, Origin, User-Agent} [Optional]
Cinema
Rogplay uses TheMovieDB (TMDB) Api to display content on cinema screen, you can check Documentation here TMDB Documentation
Note: Cinema addons required to use make cinema functionable
Cinema Addons Example 👇
[
{
"version": "1.0",
"author": "HIGHRISK",
"title": "TMDB Cinema",
"logo": "https://raw.githubusercontent.com/rogplay/public/refs/heads/main/assets/tmdb.jpg",
"url": "https://raw.githubusercontent.com/kunwarxshashank/rogplay_addons/refs/heads/main/cinema/servers.json",
"type": "cinema",
"description": "Cinema Addons"
}
]
Title Logo Version and Auhtor will display in addons page.
Cinema Addons Url
This url contains actual cinema api which uses TMDB (themoviedb) ID, to fetch movies and series informations.
Cinema Json API Example 👇
[
{
"tvurl": "https://example.com/api/series?id=${tmdb}&season=${season}&episode=${episode}",
"movieurl": "https://example.com/api/movies?id=${tmdb}",
"title": "title",
"url": "file",
"id": "id"
}
]
1. tvurl
This url refers for series api which is used to fetch data from api url, must contains tmdb id season number and episode id, however you dont' need to pass tmdbid, season, and epsiode id in place of ${tmdb} ${season} ${episode} it acts as variable which fetch data from parameters
This is how tvurl https://example.com/api/series?id=${tmdb}&season=${season}&episode=${episode} response look like
[
{
"title": "Hindi",
"id": "d1fe1b17bd308b9c1cc9492def1b7661",
"file": "https://i-cdn-0.vino332gptk.com/stream2/i-cdn-0/301d9c67dd7860e62d9f925a8b944af1/MJTMsp1RshGTygnMNRUR2N2MSlnWXZEdMNDZzQWe5MDZzMmdZJTO1R2RWVHZDljekhkSsl1VwYnWtx2cihVT2lVba12TUxWbO1WS5llMRNjTUFVeOpWQ000VFFjWql0dOpXUz4ERSxWW6lVP:1738738855:82.180.147.152:68c79641163b24cb45b4b73d8da964224569f285925fcd8caf6f1117ce033a41/index.m3u8"
},
{
"title": "Tamil",
"id": "9962f8a48a95bf4da27960d01b5fb10c",
"file": "https://i-cdn-0.vino332gptk.com/stream2/i-cdn-0/301d9c67dd7860e62d9f925a8b944af1/MJTMsp1RshGTygnMNRUR2N2MSlnWXZEdMNDZzQWe5MDZzMmdZJTO1R2RWVHZDljekhkSsl1VwYnWtx2cihVT250RJd3TUNGMPdUVz8EVFdXTXJFaNpnRt1kaZpXW6lUNOJTV4pVbNdnTqVVP:1738738855:82.180.147.152:1b5a6f3e653dafd47c32b3c1580a5b7cbb0bd6637cf3daf0c4fc4fbba9d9f287/index.m3u8"
},
{
"title": "Telugu",
"id": "49e47e58e1cd2e9a683ab2ee0f3a0f2c",
"file": "https://i-cdn-0.vino332gptk.com/stream2/i-cdn-0/301d9c67dd7860e62d9f925a8b944af1/MJTMsp1RshGTygnMNRUR2N2MSlnWXZEdMNDZzQWe5MDZzMmdZJTO1R2RWVHZDljekhkSsl1VwYnWtx2cihVT290RNlXW6NWeOR0a3pFRatmTqVlMap2Z65kMWlmWEJkaPdlRo5keBFjTXlVP:1738738855:82.180.147.152:0335c5e302ea54d98ddcad1811f3e81f388af6459b282be42a37b85d63a76ca0/index.m3u8"
}
]
2. movie
This url refers for movie api which is used to fetch data from api url, must contains tmdb id, however you dont' need to pass tmdbid, in place of ${tmdb} it acts as variable which fetch data from parameters
3. title
This object points variable which uses to show title of content e.g. Sever - Hindi
4. url
This object points variable which indicate url of content e.g. https://example.m3u8i
5. id
This object points variable which indicate id of content e.g. 1, 2