JioTV Go 📺
JioTV Go, an exciting project that allows you to stream Live TV channels on the web and IPTV. It's a web wrapper around the JioTV Android app, utilizing the same API to fetch and stream channels.
Features 🌟
- 📺 Stream Live TV channels, just like in the JioTV Android app.
- 🎬 M3U playlist support for IPTV.
- 🌐 Web interface for watching Live TV.
- 📅 EPG (Electronic Program Guide) support in compressed GZipped XML or JSON format.
- 🎥 Quality selection (Low, Medium, High) supported.
- ⚙️ Configurable port and host.
- 🔐 Authentication options using Jio ID/Number with password or Jio number with OTP.
- 👥 Support for multiple clients simultaneously.
- 🚀 Written in Go, ensuring it's fast, lightweight, and portable.
- 💻 Command-line interface for server management and self-update.
- 🔄 Background start and stop feature.
Get Started with JioTV Go by following the Get Started guide.
Community 🤝
Stay up to date on JioTV Go's development and connect with the community for questions and support.
- Telegram Announcement Channel: https://t.me/jiotv_go
- Telegram Group: https://t.me/jiotv_go_chat
Get Started with JioTV Go
Installation
Automatic Installation (Recommended)
We have video tutorials for Windows, and Android users. Please watch them if you are unsure about the installation process.
Linux/Android/macOS
Here's a one-liner to download and install the latest version of JioTV Go on Linux/Android/macOS.
Simply copy and paste the following command in your terminal and press Enter
:
curl -fsSL https://jiotv_go.rabil.me/install.sh | bash
The above command will download the latest version of JioTV Go and install it in your system.
Termux users, if you get an errors, first update pkg index and install
curl
,openssl
packages by running the following command:pkg update pkg install curl openssl
See the Docker Setup section for Docker installation instructions.
Windows
Here's a one-liner to download and install the latest version of JioTV Go on Windows.
Simply copy and paste the following command in your PowerShell terminal and press Enter
:
iwr -useb https://jiotv_go.rabil.me/install.ps1 | iex
Pre-Built Binaries
You can also download the pre-built binaries for your platform from the releases page or click on Binary Name
links in the table below.
The following table lists the binaries available for download:
OS Name | Architecture (AKA) | Binary Name |
---|---|---|
Android | arm64 (aarch64) | jiotv_go-android-arm64 |
Android | amd64 (x86_64) | jiotv_go-android-amd64 |
Android | arm | jiotv_go-android-arm |
Linux | arm64 (aarch64) | jiotv_go-linux-arm64 |
Linux | amd64 (x86_64) | jiotv_go-linux-amd64 |
Linux | arm | jiotv_go-linux-arm |
Linux | 386 (x86, i686) | jiotv_go-linux-386 |
Windows | 386 (x86, i686) | jiotv_go-windows-386.exe |
Windows | amd64 (x86_64) | jiotv_go-windows-amd64.exe |
Windows | arm64 (aarch64) | jiotv_go-windows-arm64.exe |
Darwin (macOS) | amd64 (x86_64) | jiotv_go-darwin-amd64 |
Darwin (macOS) | arm64 (aarch64) | jiotv_go-darwin-arm64 |
Identifying your OS and Architecture
If you are unsure about your OS and Architecture, you can use the following commands to identify them:
Linux / Anroid / macOS
Execute the following command in your terminal:
uname -m
For Android, you can use any terminal emulator app. For example, Termux or UserLAnd. We recommend UserLAnd with Alpine as it emulates a Linux environment.
Windows (PowerShell)
Run the following command in your PowerShell terminal:
(Get-WmiObject Win32_OperatingSystem).OSArchitecture
Then, look for your architecture in the above table.
Windows users, if you are unsure on the next steps, after downloading the binary, please read the Using JioTV Go on Windows page.
Build from Source
Refer the guide in Development page.
Docker Setup
Make sure you have Docker installed on your system.
Run JioTV Go with Docker
For single command setup, run:
docker run -p 5001:5001 -e TZ=Asia/Kolkata -e JIOTV_DRM=true -e JIOTV_PATH_PREFIX=/app/.jiotv_go -v jiotv_go:/app/.jiotv_go ghcr.io/jiotv-go/jiotv_go
If you prefer docker-compose, create a docker-compose.yml
file with the following content:
services:
jiotv_go:
image: ghcr.io/jiotv-go/jiotv_go
ports:
- "5001:5001"
volumes:
- jiotv_go:/app/.jiotv_go
environment:
- JIOTV_PATH_PREFIX=/app/.jiotv_go
- TZ=Asia/Kolkata
# below is optional, but we strongly recommend setting it to true. Read https://t.me/jiotv_go/128 for more information.
- JIOTV_DRM=true
# Read https://jiotv_go.rabil.me/config.html to know all configuration options.
volumes:
jiotv_go:
Then, run:
docker-compose up -d
Open your web browser and visit http://localhost:5001/.
If you're impatient for new features, to get unstable build, use the ghcr.io/jiotv-go/jiotv_go:develop
image.
Using CLI Options with Docker
By default, JioTV Go Docker image runs with serve --public
command. You can override this by passing the command as an argument to the docker run
command.
For example, to run JioTV Go with serve --public --port 8080
command, run:
docker run -p 8080:8080 -v jiotv_go:/app/secrets ghcr.io/jiotv-go/jiotv_go serve --public --port 8080
Keep JioTV Go Updated
To update to the latest version, run:
docker pull ghcr.io/jiotv-go/jiotv_go:latest
- Also read the Usage page for more information.
- See the Config page for more information about the configuration options.
Usage
JioTV Go is a command-line application. It can be used to start the server, update JioTV Go and control certain aspects of the server.
Command Line Interface
The jiotv_go
CLI has the following structure:
jiotv_go command [command options]
Commands
You can always use the help
command or -h
/ --help
flag to get help about a command.
1. Login Command
The login
command helps you to login to JioTV Go. Alternatively, you can also login using the web interface at http://localhost:5001/
.
jiotv_go login [command options] [arguments...]
USAGE
jiotv_go login [command options] [arguments...]
DESCRIPTION
The login
command helps you to login to JioTV Go. It will ask for your JioTV credentials and save it to jiotv_credentials_v2.json
file.
If you want to change your credentials, you can use the login
command again. It will overwrite the existing credentials.
COMMANDS
otp
,o
: Login with OTPpassword
,p
: Login with Passwordreset
,logout
,lo
: Reset credentials. This will delete the existing credentials.help
,h
: Shows a list of commands or help for one command
otp (o)
USAGE
jiotv_go login otp
DESCRIPTION
The otp
command helps you to login to JioTV Go with OTP. It will ask for your JioTV number and send an OTP to your number. You have to enter the OTP to login.
password (p)
USAGE
jiotv_go login password
DESCRIPTION
The password
command helps you to login to JioTV Go with password. It will ask for your JioTV number and password to login.
reset (logout, lo)
USAGE
jiotv_go login reset
DESCRIPTION
The reset
command helps you to reset your credentials. This will delete the existing credentials. You have to login again to use JioTV Go.
2. Serve Command
The serve
command starts the JioTV Go server.
jiotv_go serve [command options] [arguments...]
Options:
--config value, -c value
: Path to the configuration file.
By default, JioTV Go will look for a file namedjiotv_go.(toml|yaml|json)
orconfig.(toml|yaml|json)
in the same directory as the binary or$HOME/.jiotv_go/
directory.--host value, -H value
: Host to listen on (default: "localhost").--port value, -p value
: Port to listen on (default: "5001").--public, -P
: Open the server to the public. This will expose your server outside your local network. Equivalent to passing--host 0.0.0.0
(default: false).--tls
: Enable TLS. This will enable HTTPS. You need to provide the certificate and key file (default: false).--tls-cert value, --cert value
: Path to the TLS certificate file. Generate a self-signed certificate usingopenssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout key.pem -out cert.pem
. cert.pem is the TLS certificate file and key.pem is the TLS key file.--tls-key value, --cert-key value
: Path to the TLS key file.--skip-update-check
: Skip checking for updates on startup (default: false).--help, -h
: Show help for theserve
command.
Example:
This will start the server on port 8080 and open it to the public.
jiotv_go serve --port 8080 --public
--public
flag is not recommended. It exposes your server outside your local network. Use it only if it is necessary for you in some cases where you want to access JioTV Go server in your phone to TV or other devices.
TLS on port 5002 with a self-signed certificate with --public
flag for public access.
jiotv_go serve --public --port 5002 --tls --tls-cert cert.pem --tls-key key.pem
If you run the server with TLS using above command, you can access the server at https://localhost:5002/
.
You can also choose standard https port 443 for TLS. Then you can access the server at https://localhost/
.
3. Update Command
The update
command updates JioTV Go to the latest version.
jiotv_go update
Options:
--version, -v
: Never use this flag, unless you know what you are doing. This will update JioTV Go to the specified version. This is useful for testing new features before release or to downgrade to a previous version. Supports all JioTV Go version above v3.0.0.
4. EPG Command
The epg
command helps you to manage the EPG feature of JioTV Go.
jiotv_go epg [command options] [arguments...]
USAGE
jiotv_go epg command [command options]
DESCRIPTION
The epg
command manages EPG. It can be used to generate EPG, regenerate EPG, and delete EPG.
COMMANDS
generate
,gen
,g
: Generate EPGDelete
,del
,d
: Delete EPGhelp
,h
: Shows a list of commands or help for one command
generate (gen, g)
USAGE
jiotv_go epg generate [command options] [arguments...]
DESCRIPTION
The generate
command generates EPG by downloading the latest EPG from JioTV, and saving it to epg.xml.gz.
It will delete the existing EPG file if it exists. Once the EPG file is generated, it will be automatically updated by the server. If you want to disable it, use the epg delete
command.
This is also shortcut method for enabling EPG than setting epg
to true
in the configuration file. Read the EPG Config section for more information.
delete (del, d)
USAGE
jiotv_go epg Delete [command options] [arguments...]
DESCRIPTION
The delete
command deletes the existing EPG file if it exists. This will disable EPG on the server.
5. Help Command
The help
command shows a list of commands or help for a specific command.
jiotv_go help [command]
Example:
jiotv_go help serve
6. Autostart Command for Unix
The autostart
command helps you to setup JioTV Go to start automatically when terminal starts.
This is not recommended for devices other than Android Phone or TV.
jiotv_go autostart
Options:
-a value, --args value
: Options for theserve
/run
/start
command as mentioned in the Serve Command section.
If you want to arguments for the serve
/run
/start
command, you can pass -a
flag enclose all the arguments in quotes.
For example if you want to run at port 8080 and pass a configuration file, you can use the following command:
jiotv_go autostart -a "--port 8080 --config config.toml"
Auto detection of config files will only work if binary is in the same directory as the config file.
7. Background Command
The background
command allows you to run the JioTV Go server in the background. It provides subcommands for starting and stopping the server in the background.
Tip:
bg
is an alias forbackground
.
USAGE
jiotv_go background [command options] [arguments...]
DESCRIPTION
The background
command allows you to run the JioTV Go server in the background. It provides subcommands for starting and stopping the server in the background.
COMMANDS
-
start (run, r)
: Run JioTV Go server in the backgroundjiotv_go background start [command options] [arguments...]
--args value, -a value
: String value arguments passed to theserve/run
command while running in the background as mentioned in the Serve Command section.--config value, -c value
: Path to the configuration file. Reads the custompath_prefix
to store the background process PID file at the specified location. Also passes the same configuration file to theserve/run
command unless explicitly specified in--args
.
By default, JioTV Go will look for a file namedjiotv_go.(toml|yaml|json)
orconfig.(toml|yaml|json)
in the same directory as the binary or$HOME/.jiotv_go/
directory.
Description: The
start
command starts the JioTV Go server in the background. It runs theJioTVServer
function in a separate process. -
stop (k, kill)
: Stop JioTV Go server running in the backgroundjiotv_go background stop
--config value, -c value
: Path to the configuration file. Reads the custompath_prefix
to access the background process PID file at the location.
By default, JioTV Go will look for a file namedjiotv_go.(toml|yaml|json)
orconfig.(toml|yaml|json)
in the same directory as the binary or$HOME/.jiotv_go/
directory.
Description: The
stop
command stops the JioTV Go server running in the background. It will only work if the server is started using thebackground start
command.
Example:
jiotv_go background start
Example with arguments (make sure to enclose the arguments in quotes):
jiotv_go background start --config config.toml --args "--port 8080"
Note:
- Make sure to stop the background server using the
stop
command when it is no longer needed.
Support and Issues
For any issues or feature requests, please check the GitHub repository or create a new issue.
Note: Ensure that you have the necessary permissions and follow the terms of service when using JioTV Go.
Guide to Run JioTV Go on Android
This guide will walk you through the process of downloading the Go binary from GitHub Releases and running it on your Android device using two different methods: Termux and UserLand.
Method 1: Using Termux
Step 1: Install Termux
Download latest version of Termux installed from F-Droid or GitHub Release.
Play store version of Termux is not recommended as it is outdated and can cause issues.
Step 2: Install Dependencies
- Open Termux.
- Run the following command to update pkg index:
pkg update
This will take some time.
- Next, Install
wget
andopenssl
by running the following commands:
pkg install curl openssl
After this, we recommend following the easy method, use automatic install script to install JioTV Go on Android.
If you want to install manually, follow the steps below:
Step 3: Download JioTV Go Binary
- Identify your architecture by running the following command:
uname -m
Now look for the architecture in the table. Long press on binary name and click on Copy Link Address
.
- Paste the link in the following command and run it:
curl -LO jiotv_go --progress-bar "https://github.com/jiotv-go/jiotv_go/releases/latest/download/jiotv_go-android-{arch}"
If you are using above URL, replace {arch}
with your architecture.
Step 4: Make the binary executable and run it
- Make the binary executable by running the following command:
chmod +x jiotv_go
- Execute the binary by running the following command:
./jiotv_go [commands]
See the Usage page for more information about commands.
If you want to run from any directory, without ./
prefix, then you can move the binary to $PREFIX/bin
directory by running the following command:
mv jiotv_go $PREFIX/bin
Now you can run the binary from any directory without ./
prefix.
jiotv_go [commands]
Method 2: Using UserLand (Linux Environment)
Step 1: Install UserLand
-
Download UserLand from Google Play Store or F-Droid and install it on your Android device.
-
Open UserLand and choose Alpine with Terminal.
-
Wait for the setup to complete.
Step 2: Install Dependencies
- Install
wget
andopenssl
by running the following commands:
apk update && apk add curl
Remember UserLand has a linux environment, hence you need to use linux binaries.
After this, we recommend following the easy method, use automatic install script to install JioTV Go on Linux.
If you want to install manually, follow the steps below:
Step 3: Download JioTV Go Binary
- Identify your architecture by running the following command:
uname -m
Now look for the linux binaries with architecture in the table. Long press on binary name and click on Copy Link Address
. Do not use Android binaries, as they will not work in UserLand.
- Paste the link in the following command and run it:
curl -LO jiotv_go --progress-bar "https://github.com/jiotv-go/jiotv_go/releases/latest/download/jiotv_go-linux-{arch}"
If you are using above URL, replace {arch}
with your architecture.
Step 4: Make the binary executable and run it
- Make the binary executable by running the following command:
chmod +x jiotv_go
- Execute the binary by running the following command:
./jiotv_go [commands]
See the Usage page for more information about commands.
If you want to run from any directory, without ./
prefix, then you can move the binary to /usr/bin
directory by running the following command:
mv jiotv_go /usr/bin
Now you can run the binary from any directory without ./
prefix.
jiotv_go [commands]
Conclusion:
You've successfully installed and run JioTV Go on your Android device using either Termux or UserLand. Enjoy your favorite TV shows and channels!
Android TV
JioTV Go is a web application that can be used on Android TV. This page provides information about how to use JioTV Go on Android TV.
You can use Termux or UserLand to run JioTV Go on Android TV.
We recommend you use automatic install script to install JioTV Go on Android TV.
However, if you want to install manually, refer manual installation guide for Android from Step 3.
After setting up JioTV Go on your Android TV, first login using the web interface at http://localhost:5001/
, then you can setup a IPTV App on your Android TV to access JioTV Go.
We recommend TiviMate IPTV Player for this purpose or OTT Navigator IPTV for this purpose.
Running JioTV Go on Android Phone and Accessing it on Android TV
You can run JioTV Go on your Android phone and access it on your Android TV. This is useful if you don't have a keyboard or mouse to control JioTV Go on your Android TV.
Once you have installed JioTV Go on your Android phone, to access it on TV, Read the Accessing JioTV Go from another device section in the FAQ page for more information.
Access JioTV Go on your Android TV at http://{ip_address}:5001/
. Replace {ip_address}
with the IP address of your Android phone.
Running JioTV Go on Android TV
Using UserLand
Download UserLand from Google Play Store or F-Droid and install it on your Android TV.
You can use UserLand to run JioTV Go on your Android TV. Choose the Alpine image when setting up UserLand. Then follow the Linux instructions to setup JioTV Go.
Using Termux
You can use Termux to run JioTV Go on your Android TV. Follow the Linux instructions to setup JioTV Go at Android.
Auto Start JioTV Go on Android TV
We recommend you using this app from Siddharth called Sparkle-TV2 to auto start JioTV Go on Android TV. Download the APK from the releases page and install it on your Android TV.
Other apps that you can use to auto start JioTV Go on Android TV:
Third-party EPG Providers
If you are having issue with EPG in Android TV, please see if you can resolve it by egp
command. If you are still having issue, you can use third-party EPG providers.
The current implementation of EPG generation is not optimised for Android TV.
Use a third party EPG as mentioned here
https://avkb.short.gy/jioepg.xml.gz
The above link is from mitthu786. GitHub Link: https://github.com/mitthu786/tvepg
This will not only be easy on your poor tiny compute machine. It is recommended as you will not get any issues or problems.
EPG generation requires up to thousand http requests in total and 20 http requests per second. So you do the math and plus at last it requires a huge amount of memory and CPU for compression to a 3MB file.
There might be other EPG providers. You can search for them on the internet.
Using mouse and keyboard on Android TV
For mouse and keyboard control such as using Ctrl key, etc. You can use any application that allows you to use mouse and keyboard on Android TV.
Here are some applications that you can use from your Android phone to control your Android TV:
Using JioTV Go on Windows
Welcome to JioTV Go, your gateway to a seamless TV streaming experience on Windows! Follow these straightforward steps to get started without delving into technical complexities:
Use automatic install script to install JioTV Go on Windows.
If you want to install manually, follow the steps below:
Manual Installation
We assume that you have already downloaded the latest release of JioTV Go for Windows. If not, please download it before proceeding.
Step 1: Open JioTV Go Folder
Locate the folder where you downloaded JioTV Go. Here are three easy ways to open the terminal in that directory:
- Option 1: Open the folder and type
cmd
in the address bar. - Option 2: Right-click the folder while holding
Shift
and select "Open Terminal Here." - Option 3: Open Windows Terminal, type
cd
, add a space, and then drag and drop the JioTV Go folder into the terminal.
Step 2: Launch JioTV Go
Run the following command in the terminal:
.\jiotv_go-windows-{arch}.exe serve
Remember to replace {arch}
with your architecture. For example, if your architecture is x86_64
, use the following command:
.\jiotv_go-windows-amd64.exe serve
Unsure about your architecture? Check out the Identify your architecture section on the Get Started page for guidance.
That's it! You're now ready to enjoy JioTV Go on your Windows system hassle-free. If you encounter any issues or have questions, refer to our user-friendly documentation or reach out to our support team for assistance. Happy streaming!
Running JioTV Go on Linux and macOS
Once you have downloaded the latest release of JioTV Go, follow these steps to run it seamlessly on Linux and macOS:
Automatic Install
-
Open Terminal:
- Launch the terminal on your Linux or macOS system.
Use automatic install script to install JioTV Go on Linux and macOS.
Manual Install
If you want to install manually, follow the steps below:
-
Navigate to Downloaded Directory:
- Move to the directory where you have downloaded JioTV Go.
-
Make the File Executable:
-
Execute the following command to make the file executable:
chmod +x jiotv_go-linux-{arch}
Replace
{arch}
with your architecture. For example, if your architecture isamd64
, use the command:chmod +x jiotv_go-linux-amd64
If you are unsure about your architecture, check the Identify your architecture section in the Get Started page.
-
-
Run JioTV Go:
-
Start JioTV Go by running the following command:
./jiotv_go-linux-{arch} serve
-
-
Access the Server:
- Open your web browser and go to http://localhost:5001/ to access JioTV Go.
JioTV Go as a systemd service (Autostart)
This guide walks you through setting up JioTV Go systemd services on Linux.
Ensure jiotv_go
is installed. If necessary modify the service file ExecStart
lines to point to alternative paths.
1. Create a service specific user
For security it is best to run a service with a specific user and group. You can create one using the following command:
sudo adduser --system --gecos "JioTV Go Service" --disabled-password --group --home /var/lib/jiotv_go jiotv_go
This creates a new system user and group named jiotv_go
with no login access and home directory /var/lib/jiotv_go
which will be the default location for the config files.
In addition you can add to the jiotv_go
group any users you wish to be able to easily manage or access files, for example:
sudo adduser <username> jiotv_go
2. Daemon (jiotv_go) service
Create the file /etc/systemd/system/jiotv_go.service
containing the following:
[Unit]
Description=JioTV Go Client Daemon
After=network-online.target
[Service]
Type=simple
UMask=007
ExecStart=/usr/bin/jiotv_go serve -P
Restart=on-failure
# Time to wait before forcefully stopped.
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target
The ExecStart
line needs to point to the exact installation path of the jiotv_go
program.
Note: Please make appropriate changes to the ExecStart
line, the current one serves to the public.
3. User configuration
To run the service using the previously created user e.g. jiotv_go
, first create the service configuration directory:
sudo mkdir /etc/systemd/system/jiotv_go.service.d/
Then create a user file /etc/systemd/system/jiotv_go.service.d/user.conf
with the following contents:
# Override service user
[Service]
User=jiotv_go
Group=jiotv_go
4. Start jiotv_go service
Now enable it to start up on boot, start the service and verify it is running:
sudo systemctl enable /etc/systemd/system/jiotv_go.service
sudo systemctl start jiotv_go
sudo systemctl status jiotv_go
Enjoy your JioTV Go streaming experience on Linux and macOS! If you encounter any issues or have questions, refer to the Support and Issues section in the user guide or visit the GitHub repository.
IPTV Guide for JioTV Go
This is not an installation guide. If you are looking for installation instructions, For Android TV, see Android TV. For Android Phones, see Android. For Linux, see Linux. For Windows, see Windows.
Explore the possibilities of integrating JioTV Go into your IPTV setup with these simple steps. Whether you're interested in generating playlists, setting up an Electronic Program Guide (EPG), or exploring catch-up options, we've got you covered.
Generate M3U Playlist
JioTV Go offers a convenient M3U playlist endpoint to enhance your IPTV experience. Simply follow these steps:
-
Copy and paste the following URL into your IPTV player:
http://localhost:5001/playlist.m3u
-
If you desire a specific quality, append the
q=
query parameter:http://localhost:5001/playlist.m3u?q=high
Available options for
q
includelow
,medium
,high
, or their shorthand formsl
,m
,h
. -
If you would like split category on M3U playlist, append the
c=split
query parameter:http://localhost:5001/playlist.m3u?c=split
This will split the playlist into categories like
Movie - Kannada
,Movie - Malayalam
,News - English
, etc. -
If you would like to filter only specific languages on M3U playlist, append the
l=Tamil,English,Malayalam
(comma-separated) query parameter:http://localhost:5001/playlist.m3u?l=Tamil,English,Bengali
This will filter only the specified languages (Tamil, English and Bengali).
The playlist will be split into categories like
Movies
,Enterntainment
,News
,Music
, etc. but will only contain channels in the specified languages.Available Languages to filter
Hindi, Marathi, Punjabi, Urdu, Bengali, English, Malayalam, Tamil, Gujarati, Odia, Telugu, Bhojpuri, Kannada, Assamese, Nepali, French, Other
-
If you would like to group the M3U playlist by language only, append the
c=language
query parameter:http://localhost:5001/playlist.m3u?c=language
This will group the playlist by language only, like
Hindi
,Kannada
,Marathi
, etc.Please note that either
c=split
orc=language
can be used at a time. -
If you would like to skip one or more genre from playlist, you can use
sg=Educational,Lifestyle
http://localhost:5001/playlist.m3u?sg=Educational,Lifestyle
This will skip all channels from provided list of genres.
For both specific quality and split category, append the q=
and c=
query parameters:
http://localhost:5001/playlist.m3u?q=high&c=split
You can also combine the language grouping and language filtering:
http://localhost:5001/playlist.m3u?c=language&l=Hindi,Kannada,Marathi
Electronic Program Guide (EPG)
Take advantage of JioTV Go's Electronic Program Guide to enrich your IPTV setup. Follow these steps:
-
Enable EPG:
- Set the
epg
config value totrue
. For detailed instructions, refer to the Config page. Or you can also use theepg generate
command. For additional details, consult the EPG Command section.
- Set the
-
Access EPG in Your IPTV Player:
-
Once enabled, wait a few minutes for EPG generation.
-
Use the following URL in your IPTV player:
http://localhost:5001/epg.xml.gz
EPG updates every 24 hours, providing program information for a 2-day duration.
-
-
Disable EPG:
-
If you have enabled EPG via configuration, set the
epg
config value tofalse
. -
Then run
jiotv_go epg delete
This will delete the existing EPG file if it exists and disable EPG on the server.
-
Buffering issues on IPTV Players
If you are facing buffering issues on IPTV players, try enforcing a specific quality.
If I want to use the high
quality, I will use the following URL:
http://localhost:5001/playlist.m3u?q=high
Where q
can be low
, medium
, high
, or l
, m
, h
.
If your internet speed is low, you can use the medium
or low
quality.
Catchup
Please note that JioTV Go currently does not support catch-up functionality. If you possess the expertise to implement this feature, we welcome your contribution! Open a pull request, and we appreciate your valuable input.
Enjoy the seamless integration of JioTV Go into your IPTV setup. For any queries or assistance, refer to our user-friendly documentation or connect with our community on Telegram. Happy streaming!
JioTV Go Server URL Paths
This section provides information about the various web paths that JioTV Go offers. These paths allow you to interact with and access different features of the application.
Web Paths
Index
- Path:
/
The gateway to the Home Page, where your JioTV Go adventure begins.
Player Page
- Path:
/play/:channel_id
Dive into the world of specific channels with the provided channel_id
.
FlowPlayer IFrame Player
- Path:
/player/:channel_id
Immerse yourself with the default player (Flowplayer) for the specified channel_id
.
Clapper IFrame Player
- Path:
/clappr/:channel_id
Experience the magic of the Clappr player for the specified channel_id
.
JioTV Go API Endpoints
This section provides information about the API endpoints that JioTV Go offers. These endpoints allow you to interact with and access different features of the application.
API Endpoints
Send OTP
- Path:
/login/sendOTP
Request an OTP to log in to JioTV.
Verify OTP
- Path:
/login/verifyOTP
Verify the OTP and log in to JioTV.
Login with Password
- Path:
/login
Log in to JioTV with password authentication. Either pass theusername
andpassword
as query parameters or as JSON in the post request body.
Get Channels data
- Path:
/channels
Discover the complete list of available channels in JSON format.
TV Endpoints
M3U Playlist Alias
- Path:
/playlist.m3u
Instantly obtain an M3U playlist for IPTV.
(Redirects to /channels?type=m3u
for your convenience.)
You can append ?q=<level>
to the path where <level>
should be replaced with low
, medium
, high
, or l
, m
, h
to set the quality of the stream. The default quality is auto
.
You can also append &c=split
to the path to have categories based on both language and genre. Example categories: Hindi - Entertainment
, English - News
, Tamil - Sports
, etc.
You can also append &sg=<genre_list>
to the path in order to skip specific genres. Here replace <genre_list>
with comma(,) seperated list of genres.
Valid genres: Entertainment
, Movies
, Kids
, Sports
, Lifestyle
, Infotainment
, News
, Music
, Devotional
, Business
, Educational
, Shopping
, JioDarshan
M3U Playlist
- Path:
/channels?type=m3u
The actual path for the M3U playlist. You can append &q=<level>
to the path as above. You can also append &c=split
to the path as above.
M3U8 URL
- Path:
/live/:channel_id
M3U8 stream file for the specified channel_id
.
M3U8 URL with Quality
- Path:
/live/:quality/:channel_id
M3U8 stream file for the specified channel_id
with the specified quality
. The quality
can be low
, medium
, high
, or l
, m
, h
.
Explore these paths and endpoints to access the features and content offered by JioTV Go. They provide the foundation for interacting with the application and enjoying the available channels and streams.
Config
The config
package provides configuration settings for JioTV Go, a server that serves JioTV API content. This documentation outlines the available configuration.
Configuration Options
EPG (Electronic Program Guide):
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Enable or disable EPG generation. | epg | JIOTV_EPG | false |
An EPG is an electronic program guide, an interactive on-screen menu that displays broadcast programming television programs schedules for each channel. It is generated from the JioTV API.
Debug Mode:
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Enable or disable debug mode. | debug | JIOTV_DEBUG | false |
Debug mode enables additional logging and debugging features for developers. It is recommended to disable debug mode if you are not a developer.
TS Handler:
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Enable or disable TS Handler. | disable_ts_handler | JIOTV_DISABLE_TS_HANDLER | false |
TS Files are the video files that are streamed by the JioTV API.
By setting disable_ts_handler
to true
, server takes less load.
If disable_ts_handler
is true
, then TS files will be served directly from Jio API.
Otherwise the request is sent through the server as an intermediary.
Logout Feature:
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Enable or disable the logout feature. | disable_logout | JIOTV_DISABLE_LOGOUT | false |
Simply put, the logout feature allows you to log out of your JioTV account in the web interface. Disabling this feature will make the logout button in the web interface non-functional.
DRM (Digital Rights Management):
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Enable or disable DRM. | drm | JIOTV_DRM | false |
DRM is a method of restricting access to copyrighted. The latest version of JioTV App uses DRM. For future compatibility, I have added this feature.
Currently, the DRM is only supported by the web interface. It is not supported by the IPTV playlist.
Title:
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Title of the webpage. | title | JIOTV_TITLE | JioTV Go |
The title is displayed in the browser tab and the web interface.
URL Encryption:
Enable or disable URL encryption.
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Enable or disable URL encryption. | disable_url_encryption | JIOTV_DISABLE_URL_ENCRYPTION | false |
URL encryption prevents hackers from injecting URLs into the server. If you think it is unnecessary, you can disable it. But it is recommended to enable it.
Path Prefix:
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Folder path for all JioTV Go related files. | path_prefix | JIOTV_PATH_PREFIX | $HOME/.jiotv_go |
All JioTV Go related files are stored in this folder. This includes the IPTV playlist, the EPG, and the credentials file.
Proxy:
Purpose | Config Value | Environment Variable | Default |
---|---|---|---|
Proxy URL. | proxy | JIOTV_PROXY | "" |
Useful for bypassing geo-restrictions and IP restrictions for JioTV API.
If you want to use a proxy, set this config before you run the binary. Examples include
For Socks5 Proxy: value will be socks5://user:pass@host:port
.
All Other Proxy (user:pass@host:port).
If your proxy does not require authentication, you can omit the user:pass@
part.
Example Configurations
Below are example configuration file for JioTV Go. All fields are optional, and the values shown are the default settings:
You can also specify the path to the configuration file using the --config
flag.
Example TOML Configuration
You can save the following configuration in a file named jiotv_go.toml
. JioTV Go will automatically load the configuration from this file if it is present in the same directory as the binary.
The file is also available at configs/jiotv_go-config.toml.
Omit the lines with #
as they are comments. They are only for explanation purposes.
# Example config file for JioTV Go
# All fields mentioned below are optional.
# Enable Or Disable EPG Generation. Default: false
epg = false
# Enable Or Disable Debug Mode. Default: false
debug = false
# Enable Or Disable TS Handler. While TS Handler is enabled, the server will serve the TS files directly from JioTV API. Default: false
disable_ts_handler = false
# Enable Or Disable Logout feature. Default: true
disable_logout = false
# Enable Or Disable DRM. As DRM is not supported by most of the players, it is disabled by default. Default: false
drm = false
# Title of the webpage. Default: JioTV Go
title = ""
# Enable Or Disable URL Encryption. URL Encryption prevents hackers from injecting URLs into the server. Default: true
# If you think it is unnecessary, you can disable it. But it is recommended to enable it.
disable_url_encryption = false
# Folder Path for all JioTV Go related files. Default: "$HOME/.jiotv_go"
path_prefix = ""
# Proxy URL. Proxy is useful to bypass geo-restrictions and ip-restrictions for JioTV API. Default: ""
proxy = ""
This example demonstrates how to customize the configuration parameters using TOML syntax. Feel free to modify the values based on your preferences and requirements.
Example YAML Configuration
You can save the following configuration in a file named jiotv_go.yaml
.
The file is also available at configs/jiotv_go-config.yaml.
epg: false
debug: false
disable_ts_handler: false
disable_logout: false
drm: false
title: ""
disable_url_encryption: false
path_prefix: ""
proxy: ""
Example JSON Configuration
You can save the following configuration in a file named jiotv_go.json
.
The file is also available at configs/jiotv_go-config.json.
{
"epg": false,
"debug": false,
"disable_ts_handler": false,
"disable_logout": false,
"drm": false,
"title": "",
"disable_url_encryption": false,
"path_prefix": "",
"proxy": ""
}
Cloud Hosting
JioTV Go can't be hosted on a typical web hosting service as JioTV API has geo-restrictions (India only) and IP-restrictions (Residential IPs only). This means that you can't host JioTV Go on a VPS or a cloud server. However, you can host it on your home server or a Raspberry Pi.
You can host JioTV Go on a VPS or a cloud server if you use a residential proxy. However, residential proxies are expensive and not worth it.
Residential Proxy
You can use a residential proxy to bypass the geo-restrictions and IP-restrictions.
In the proxy config page, you can set the proxy
config value to the proxy URL or set the JIOTV_PROXY
environment variable to the proxy URL.
Example config.toml
value:
proxy = "http://username:password@proxy_ip:proxy_port"
Home Server
You can host JioTV Go on your home server. This is the recommended way to host JioTV Go. You can use a Raspberry Pi / old phone / any other device to host JioTV Go.
Exposing Your Home Server to the Internet
If you want to expose your home server to the internet, we recommend using Cloudflare Tunnel. It's free and easy to set up. You can also use ngrok or serveo to expose your home server to the internet.
Watch this video to learn how to use Cloudflare Tunnel: https://youtu.be/yJ41DmpVbeM
Development
In this section, we'll explore how to contribute to JioTV Go and make customizations to suit your needs. Whether you're interested in development using Docker Compose or diving into Go programming, we've got you covered.
Build from Source
To build JioTV Go from source, you'll need to have Go installed on your system. If you don't have Go installed, you can download it from here.
Clone
Let's start by cloning the repository:
git clone https://github.com/jiotv-go/jiotv_go.git
cd jiotv_go
Build
Now, let's build the project:
go build . -o build/jiotv_go
Run
Finally, let's run the server:
./build/jiotv_go [commands]
Docker
-
Run with Docker Compose:
- Run the command:
This will automatically reload the server when you make changes to the code indocker-compose up
.go
and.html
files.
- Run the command:
-
Running the Server in Background:
- To run the server in the background, use:
docker-compose up -d
- To run the server in the background, use:
-
Stop the Server:
- To stop the server, run:
docker-compose down
- To stop the server, run:
-
Access JioTV Go:
- The server will be listening at http://localhost:5001.
-
Set Environment Variables:
- You can set environment variables in the
.env
file for customizations.
- You can set environment variables in the
Local Development
JioTV Go is powered by Golang, making it an exciting project for developers to explore and contribute to. Here's how you can set up and run the server using Go:
-
Ensure You Have Golang Installed:
- First, make sure you have Golang installed on your system.
-
Start the Server:
- Fire up the server with:
Please note that you'll need to stop and restart the server manually when you make changes to the code.go run ./cmd/jiotv_go
- Fire up the server with:
-
Enable Debugging and Auto-Reloading:
- To enable automatic reloading on template changes in the
views
folder and enable debug logs in the console/terminal, setJIOTV_DEBUG=true
ordebug
config value totrue
.
- To enable automatic reloading on template changes in the
That's it! You're now all set to explore and contribute to JioTV Go. Happy coding! 🖥️👩💻👨💻
Customize the Look with TailwindCSS
At JioTV Go, we use the versatile TailwindCSS for styling our project. If you're eager to make some style enhancements, here's how you can do it:
-
Ensure You Have NodeJS Installed:
- Make sure you have NodeJS installed on your system.
-
Navigate to the
web
Directory:- Open a new terminal window and navigate to the project's root directory. Then, switch to the
web
directory by running:cd web
- Open a new terminal window and navigate to the project's root directory. Then, switch to the
-
Install Dependencies:
- Install the necessary dependencies by running:
npm install
- Install the necessary dependencies by running:
-
Real-Time TailwindCSS Updates:
- To keep TailwindCSS up to date with your changes in real-time, run the following command:
npm run watch
- To keep TailwindCSS up to date with your changes in real-time, run the following command:
-
Build Minified CSS:
- Once you're satisfied with your style modifications, it's time to build the minified CSS file:
npm run build
- Once you're satisfied with your style modifications, it's time to build the minified CSS file:
Now you have the flexibility to customize the look and feel of JioTV Go to match your preferences.
Let's Make JioTV Go Better Together!
Report Bugs
Found a pesky bug? No worries! Please help us improve JioTV Go by creating an issue here. Be sure to include detailed steps to reproduce the bug, describe the expected behavior, and, if possible, attach screenshots. Your feedback is invaluable!
Ready to Contribute? Join the Journey!
We wholeheartedly welcome your contributions. If you have ideas, fixes, or enhancements in mind, don't hesitate to create a pull request with your changes. For significant alterations, start by creating an issue to discuss your plans with us. Together, we can make JioTV Go even more incredible.
Thank you for considering contributing to JioTV Go, and happy coding!
Let's Make JioTV Go Better Together!
JioTV Go is an open-source project that welcomes contributions from the community. Whether you want to report a bug, suggest an enhancement, or actively participate in the development, we value your input and contributions. Let's work together to make JioTV Go even more amazing!
Report Bugs
If you come across any issues or bugs while using JioTV Go, please let us know. Reporting bugs is an essential part of improving the project. Here's how to report a bug:
-
Go to the Issue Tracker:
- Visit the Issue Tracker for JioTV Go on GitHub.
-
Create a New Issue:
- Click the "New Issue" button.
-
Provide Details:
- Fill out the issue template with as much detail as possible. Include information about the problem, steps to reproduce it, and the expected behavior.
-
Attach Screenshots (if applicable):
- If the bug is visual, consider attaching screenshots to help explain the issue.
-
Submit the Issue:
- Click "Submit new issue."
We greatly appreciate your bug reports. Your feedback helps us identify and resolve issues quickly.
Ready to Contribute? Join the Journey! 🚀
If you're ready to actively contribute to JioTV Go, we welcome your ideas, enhancements, and code contributions. Here's how to get involved:
-
Fork the Repository:
- Start by forking the JioTV Go repository to your own GitHub account.
-
Create a Branch:
- Create a new branch for your contribution. Make sure it has a clear and descriptive name.
-
Make Your Changes:
- Make your desired changes or enhancements to the codebase.
-
Test Your Changes:
- Ensure your changes work as intended and don't introduce new issues.
-
Commit Your Changes:
- Commit your changes with clear and concise commit messages.
-
Push to Your Fork:
- Push your changes to the branch on your fork of the repository.
-
Create a Pull Request:
- Visit the main JioTV Go repository on GitHub and create a pull request to propose your changes.
-
Provide Details:
- In the pull request description, provide details about your changes, the problem they solve, and any relevant context.
-
Engage in Discussion:
- Be ready to engage in discussion with project maintainers and other contributors regarding your pull request.
-
Iterate and Collaborate:
- Be open to making further changes based on feedback and collaborating to refine your contribution.
By contributing to JioTV Go, you play a crucial role in enhancing the project and making it better for all users.
Get Involved Today!
Your contributions are essential to the success of JioTV Go. Whether you're reporting bugs or actively developing new features, your efforts are highly valued. Thank you for being a part of the JioTV Go community and helping make this project even more incredible!
If you have any questions or need assistance with your contributions, please feel free to reach out to the project maintainers and the community.
Miscellaneous
Enforce a specific quality
If I want to use the high
quality, I will use the following URL:
http://localhost:5001/playlist.m3u?q=high
Where high
can be replaced with low
, medium
, high
, or l
, m
, h
.
If your internet speed is low, you can use the medium
or low
quality.
Check if you can run JioTV Go in your VPS/Cloud Server
JioTV APIs are geo-restricted (India only) and IP-restricted (residential IPs only). So you need to check if you can run JioTV Go in your VPS/Cloud Server.
Execute this command in VPS,
curl -v "https://jiotv.data.cdn.jio.com/apis/v3.0/getMobileChannelList/get/?os=android&devicetype=phone&usertype=tvYR7NSNn7rymo3F&version=285"
If you get a full JSON response then it will work. Otherwise if you don't get any response it won't.
You can use residential proxies to bypass this restriction. Read the Proxy section in the Cloud Hosting page for more information.
JioTV Go Screenshots
Home Page (Dark Mode)
Live TV Player (Dark Mode)
Home Page (Mobile)
Live TV Player (Mobile)
Home Page (Light Mode)
Home Page Mobile (Light Mode)
Login Dialog
Frequently Asked Questions
Before proceeding to the FAQ, here are the pages that you should read first:
Does JioTV Go support JioFiber / JioFiber Set-Top Box?
No. JioTV Go does not support JioFiber / JioFiber Set-Top Box. JioTV Go only supports JioTV from mobile application.
How can I use JioTV Go on my TV?
You can use JioTV Go on your TV using the following methods:
Install JioTV Go on your Android TV using Termux or UserLand. Read the Android TV page for more information.
How can I access JioTV Go from another device (e.g. computer/TV/phone) in my local network?
Run the JioTV Go server with --public
flag:
jiotv_go-linux-{arch} serve --public
Then find the IP address of your device with JioTV Go installed in your local network. You will have many tutorials on the internet on how to find the IP address of your device.
Now, on any device, access JioTV Go at http://{ip_address}:5001/
. Replace {ip_address}
with the IP address of your device.
Can I host JioTV Go on a VPS or a cloud server?
Read the Cloud Hosting page for more information.
Can I host JioTV Go on a Home Server / Raspberry Pi?
Yes. Read the Cloud Hosting page for more information.
Why do I get error or blank in the player?
This error occurs when you have not logged in to JioTV Go or your session has expired. To fix this error, simply delete the jiotv_credentials_v2.json
file and restart JioTV Go, then log in again.
Does JioTV Go support catchup?
No. JioTV Go does not support catchup. Because I don't know how to implement it. If you know how to implement it, please open a pull request. I will be very grateful. See the IPTV Guide for more information. And contributing page for more information about contributing.
Why do I get buffering in the IPTV player?
Read the Buffering issues on IPTV guide.
Why do I see same resolution under quality options?
The two resolutions are same but with different bitrates.
If there are two same resolutions with different bitrates, higher bitrate will be selected based on your internet bandwidth/speed.
How do I update JioTV Go?
Read the Update command section in the Usage page for more information.
How do I update JioTV Go if I have installed it using Docker?
Simply pull the latest image from Docker Hub:
docker pull ghcr.io/jiotv-go/jiotv_go:latest
How do I update JioTV Go if I have installed it using Termux?
Simply run the following command:
jiotv_go-linux-{arch} update
How do I stop JioTV Go server?
Press Ctrl + C
in the terminal where you have started JioTV Go.
How do I Uninstall JioTV Go completely?
Simply delete all files related to JioTV Go. If you have installed JioTV Go using Docker, then delete the Docker image. If you have installed JioTV Go via pre-built binaries, then delete the binary file.
Creative Commons Attribution 4.0 International
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
-
Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors.
-
Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described. Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public.
Creative Commons Attribution 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
Section 1 – Definitions.
a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
c. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
d. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
e. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
f. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
g. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
h. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
i. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
j. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
k. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
Section 2 – Scope.
a. License grant.
-
Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
A. reproduce and Share the Licensed Material, in whole or in part; and
B. produce, reproduce, and Share Adapted Material.
-
Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
-
Term. The term of this Public License is specified in Section 6(a).
-
Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
-
Downstream recipients.
A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
B. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
-
No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
b. Other rights.
-
Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
-
Patent and trademark rights are not licensed under this Public License.
-
To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
Section 3 – License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
a. Attribution.
-
If You Share the Licensed Material (including in modified form), You must:
A. retain the following if it is supplied by the Licensor with the Licensed Material:
i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of warranties;
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
-
You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
-
If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
-
If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License.
Section 4 – Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
Section 5 – Disclaimer of Warranties and Limitation of Liability.
a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
Section 6 – Term and Termination.
a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
-
automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
-
upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
Section 7 – Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
Section 8 – Interpretation.
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
Creative Commons may be contacted at creativecommons.org