Skip to content

Commit 0bb78dd

Browse files
Update Plex Channels
1 parent bc72ff1 commit 0bb78dd

14 files changed

Lines changed: 10310 additions & 1 deletion

.github/workflows/get-channels.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Fetch Plex Channels
2+
3+
on:
4+
schedule:
5+
- cron: '0 0 * * 0'
6+
workflow_dispatch:
7+
8+
jobs:
9+
scrape-and-commit:
10+
runs-on: ubuntu-latest
11+
steps:
12+
# Checkout code with full history for reset
13+
- name: Checkout code
14+
uses: actions/checkout@v2
15+
with:
16+
token: ${{ secrets.GITHUB_TOKEN }}
17+
fetch-depth: 0
18+
19+
# Set up PHP environment
20+
- name: Set up PHP
21+
uses: shivammathur/setup-php@v2
22+
with:
23+
php-version: '8.0'
24+
25+
# Run the PHP script
26+
- name: Run PHP script
27+
run: |
28+
php plex/fetchPlexChannels.php || exit 1
29+
30+
# Squash changes and force push (to avoid history buildup)
31+
- name: Squash and force push changes
32+
if: success()
33+
run: |
34+
# Set up git config (locally for this repository)
35+
git config user.email "github-actions[bot]@users.noreply.github.com"
36+
git config user.name "github-actions[bot]"
37+
38+
# Reset to the first commit
39+
FIRST_COMMIT=$(git rev-list --max-parents=0 HEAD)
40+
git reset --soft $FIRST_COMMIT
41+
42+
# Add all changes to a new commit
43+
git add plex/channels.json
44+
git commit -m "Update Plex Channels" || echo "No changes to commit"
45+
46+
# Force push the new history
47+
git push -f origin main
48+
env:
49+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Procfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
web: node node/index.js

README.md

Lines changed: 136 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,136 @@
1-
# free-iptv-channels
1+
[<img src="https://vercel.com/button" alt="Deploy with Vercel" height="30"/>](https://vercel.com/new/clone?repository-url=https://github.com/dtankdempse/free-iptv-channels/tree/master/node&project-name=multiservice&repo-name=multiservice)
2+
[<img src="https://www.netlify.com/img/deploy/button.svg" alt="Deploy with Netlify" height="30"/>](https://app.netlify.com/start/deploy?repository=https://github.com/dtankdempse/free-iptv-channels)
3+
[<img src="https://www.herokucdn.com/deploy/button.svg" alt="Deploy to Heroku" height="30"/>](https://heroku.com/deploy?template=https://github.com/dtankdempse/free-iptv-channels)
4+
[<img src="https://render.com/images/deploy-to-render-button.svg" alt="Deploy to Render" height="30"/>](https://render.com/deploy?repo=https://github.com/dtankdempse/free-iptv-channels)
5+
[<img src="https://i.imgur.com/fjfgTSm.jpeg" alt="Deploy to Fly.io" height="30"/>](https://fly.io/launch?source=https://github.com/dtankdempse/free-iptv-channels)
6+
[<img src="https://oneclick.amplifyapp.com/button.svg" alt="Deploy to AWS Amplify" height="30"/>](https://console.aws.amazon.com/amplify/home#/deploy?repo=https://github.com/dtankdempse/free-iptv-channels)
7+
8+
# Pluto, Samsung, Stirr, Tubi, Plex, PBS and Roku Playlist (M3U8)
9+
10+
This script generates an m3u8 playlist from the channels provided by services such as Pluto, Samsung, Stirr, Plex, PBS, and Roku. It is based on the original script created by matthuisman, which can be found at [matthuisman's GitHub repository](https://github.com/matthuisman/i.mjh.nz).
11+
12+
### Script Access URL
13+
14+
Use the following URL to access the hosted script. Replace the `ADD_REGION` and `ADD_SERVICE` placeholders with your desired values.
15+
16+
`https://tinyurl.com/multiservice21?region=ADD_REGION&service=ADD_SERVICE`
17+
18+
After customizing the URL by replacing the ADD_REGION and ADD_SERVICE placeholders with your desired region and service (e.g., us for the US region and PlutoTV for the service), copy the complete URL and paste it into the "Add Playlist" or "M3U8 URL" section of your IPTV application. Once added, the app will load both the channels and the guide information
19+
20+
**⚠️ Please note:** It is recommended to add the Google Apps Script to your own Google account or deploy the script to one of the other services, rather than relying on this publicly shared URL long-term.
21+
22+
### Available Service Parameter Values
23+
24+
Choose one of the following services to include in the `service` parameter:
25+
26+
- Plex
27+
- Roku
28+
- SamsungTVPlus
29+
- PlutoTV
30+
- PBS
31+
- PBSKids
32+
- Stirr
33+
- Tubi
34+
35+
### Available Region Parameter Values
36+
37+
Use one of these region codes to specify the region in the `region` parameter:
38+
39+
- `all` (for all regions)
40+
- `ar` (Argentina)
41+
- `br` (Brazil)
42+
- `ca` (Canada)
43+
- `cl` (Chile)
44+
- `de` (Germany)
45+
- `dk` (Denmark)
46+
- `es` (Spain)
47+
- `fr` (France)
48+
- `gb` (United Kingdom)
49+
- `mx` (Mexico)
50+
- `no` (Norway)
51+
- `se` (Sweden)
52+
- `us` (United States)
53+
54+
### Available Sorting Parameter Values (optional)
55+
56+
Use one of the following options in the `sort` parameter to specify how you want to sort the channels:
57+
58+
- `name` (default):
59+
Sorts the channels alphabetically by their name.
60+
61+
- `chno`:
62+
Sorts the channels by their assigned channel number.
63+
64+
### How to Add the Script to Your Google Account (code.gs)
65+
66+
Go <a href="https://script.google.com/home/start" target="_blank">here</a> and click the "New Project" button in the upper left corner. Then, copy the script from <a href="https://github.com/dtankdempse/free-iptv-channels/blob/main/code.gs" target="_blank">code.gs</a> and paste it into the script editor. Once done, deploy the script.
67+
68+
Follow this video tutorial to learn how to deploy a Google Apps Script:
69+
70+
[How to Deploy a Google Web App](https://www.youtube.com/watch?v=-AlstV1PAaA)
71+
72+
During the deployment process, make sure to select **"Anyone"** for the "Who has access" option, so the app can access the URL and load without requiring authentication.
73+
74+
Once deployed, you will get a URL similar to:
75+
76+
`https://script.google.com/macros/s/...gwlprM_Kn10kT7LGk/exec`
77+
78+
To use the script, you need to add the `region` and `service` parameters at the end of the URL. For example:
79+
80+
`https://script.google.com/macros/s/...gwlprM_Kn10kT7LGk/exec?region=us&service=Plex`
81+
82+
Simply replace `region=us` and `service=Plex` with the appropriate region and service values from the available parameters listed above.
83+
84+
**Tip:** For a cleaner and more concise URL, consider using a URL shortener like [tinyurl.com](https://tinyurl.com/) and appending the necessary parameters at the end.
85+
86+
## Using the Docker Image
87+
88+
Pull the latest version:
89+
`docker pull dtankdemp/free-iptv-channels`
90+
91+
Run the container:
92+
`docker run -p <port>:4242 dtankdemp/free-iptv-channels`
93+
94+
Replace <port> with the desired port (e.g., 8080).
95+
96+
Access the application:
97+
Visit `http://localhost:<port>` in your browser.
98+
99+
## **Running the Script With Node**
100+
101+
The script can also be executed locally as a standalone Node.js server without relying on any external libraries or frameworks. To run it, simply navigate to the project directory and use the following command:
102+
103+
`node node/index.js`
104+
105+
Once the server is running, you can access it locally by navigating to:
106+
107+
`http://localhost:4242`
108+
109+
### EPG for TV Guide Information
110+
111+
The EPG URLs are embedded directly within the playlists. If you'd prefer to manually add the EPG guide, you can find the relevant URLs for each service on
112+
this [page](https://github.com/matthuisman/i.mjh.nz/).
113+
114+
---
115+
116+
<details>
117+
<summary>Click to read Disclaimer.</summary>
118+
119+
### Disclaimer:
120+
121+
This repository has no control over the streams, links, or the legality of the content provided by Pluto, Samsung, Stirr, Tubi, Plex, PBS, and Roku. Additionally, this script simply converts the JSON files provided by i.mjh.nz into an M3U8 playlist. It is the end user's responsibility to ensure the legal use of these playlists. We strongly recommend verifying that the content complies with the laws and regulations of your country before use.
122+
123+
</details>
124+
125+
<details>
126+
<summary>Click to read DMCA Notice.</summary>
127+
128+
### DMCA Notice:
129+
130+
This repository does not host or store any video files. It simply organizes publicly accessible web links, which can be accessed through a web browser, into an M3U-formatted playlist. To the best of our knowledge, the content was intentionally made publicly available by the copyright holders or with their permission and consent granted to these websites to stream and share the content they provide.
131+
132+
Please note that linking does not directly infringe copyright, as no copies are made on this repository or its servers. Therefore, sending a DMCA notice to GitHub or the maintainers of this repository is not a valid course of action. To remove the content from the web, you should contact the website or hosting provider actually hosting the material.
133+
134+
If you still believe a link infringes on your rights, you can request its removal by opening an [issue](https://github.com/dtankdempse/free-iptv-channels/issues) or submitting a [pull request](https://github.com/dtankdempse/free-iptv-channels/pulls). Be aware, however, that removing a link here will not affect the content hosted on the external websites, as this repository has no control over the files or the content being provided.
135+
136+
</details>

0 commit comments

Comments
 (0)