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