iptv-sources Documentation

TypeScript diyp & docker repository by @HerbertHe. Docker Compose & container deployment with 9.0k stars.

9,031 stars TypeScript TypeScript 1 file ยท ~2,899 tokens #diyp#docker#iptv#iptv-channels#iptv-m3u#kodi#m3u#tvbox
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy iptv-sources on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name iptv-sources -p 8080:8080 --restart always herberthe/iptv-sources:latest

File: README.md

iptv-sources

Autoupdate iptv sources





Join discord:

Sources are from:

EPG Sources are from:

See https://m3u.ibert.me to get more.

Deploy by yourself

Supported Environment Variables

shell
# add custom rollback urls, default is empty
# ROLLBACK_URLS=https://xxxx.xxx.com

# close source proxy, default is false
# CLOSE_SOURCE_PROXY=true

# add custom github raw source proxy url
# The custom proxy service you configured MUST supports the request urls, like `${CUSTOM_GITHUB_RAW_SOURCE_PROXY_URL}/https://raw.githubusercontent.com/xxx/xxx`
# If you want to deploy the ghproxy by yourself, see https://github.com/hunshcn/gh-proxy
# CUSTOM_GITHUB_RAW_SOURCE_PROXY_URL=https://ghp.ci/

# enable iptv checker, default is false
# ENABLE_IPTV_CHECKER=true

# add iptv checker url, default is empty
# IPTV_CHECKER_URL=http://[::1]:8081

Q&A

Star History

LICENSE

GPL-3.0 © Herbert He

ๆœฌ้กน็›ฎๅŸบไบŽ GPL-3.0 ๅ่ฎฎๅผ€ๆบใ€‚


File: README.temp.md

iptv-sources

Autoupdate iptv sources

GitHub: HerbertHe/iptv-sources

Join discord:

Sources are from:

EPG Sources are from:

Matrix

You can also use the services provided by Mirror Sites Matrix! See https://m3u.ibert.me for more.

Channel

channel url list count isRollback

EPG

epg url isRollback

See https://m3u.ibert.me to get more.

LICENSE

GPL-3.0 © Herbert He

ๆœฌ้กน็›ฎๅŸบไบŽ GPL-3.0 ๅ่ฎฎๅผ€ๆบใ€‚


File: _config.temp.yml

theme: jekyll-theme-cayman


File: LIST.temp.md

No. Channel Name From Source

File: package.json

{
"name": "iptv-sources",
"version": "1.6.6",
"main": "index.js",
"repository": "[email protected]:HerbertHe/iptv-sources.git",
"author": "HerbertHe [email protected]",
"type": "module",
"license": "GPL-3.0-only",
"scripts": {
"dev": "cross-env NODE_ENV=development tsup --watch",
"build": "tsup",
"m3u": "node ./dist/index.js",
"serve": "node ./dist/serve.js",
"serve:dev": "nodemon ./dist/serve.js",
"matrix": "node ./dist/matrix.js",
"release": "node ./scripts/release.js",
"docker:build": "docker buildx build -t herberthe0229/iptv-sources:latest --platform=linux/arm64,linux/amd64,linux/arm/v8,linux/arm/v7 . --push",
"docker:build:dev": "docker buildx build -t herberthe0229/iptv-sources:dev --platform=linux/arm64,linux/amd64,linux/arm/v8,linux/arm/v7 . --push",
"docker:build:local": "docker buildx build -t herberthe0229/iptv-sources:dev --platform=linux/arm64,linux/amd64,linux/arm/v8,linux/arm/v7 .",
"push": "yarn release && git push && yarn docker:build"
},
"devDependencies": {
"@rollup/wasm-node": "4.20.0",
"@types/koa": "^2.15.0",
"@types/koa-router": "^7.4.8",
"@types/koa-static": "4.0.4",
"@types/markdown-it": "14.1.2",
"@types/node": "22.2.0",
"@types/opencc-js": "1.0.3",
"cross-env": "^7.0.3",
"nodemon": "^3.1.4",
"tsup": "8.2.4",
"typescript": "5.5.4"
},
"dependencies": {
"dotenv": "^16.4.5",
"koa": "2.15.3",
"koa-router": "12.0.1",
"koa-static": "5.0.0",
"markdown-it": "14.1.0",
"opencc-js": "1.0.5"
},
"resolutions": {
"rollup": "npm:@rollup/wasm-node"
}
}


File: .github/dependabot.yml

To get started with Dependabot version updates, you'll need to specify which

package ecosystems to update and where the package manifests are located.

Please see the documentation for all configuration options:

https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:

  • package-ecosystem: "npm" # See documentation for possible values
    directory: "/" # Location of package manifests
    schedule:
    interval: "weekly"

File: .github/FUNDING.yml

These are supported funding model platforms

patreon: HerbertHe
custom: ['https://afdian.net/a/HerbertHe', 'https://sponsor.ibert.me/']


File: .github/ISSUE_TEMPLATE/ๅŠ ๅ…ฅๆบ้•œๅƒ็ซ™-join-as-sources.md


name: ๅŠ ๅ…ฅๆบ้•œๅƒ็ซ™ Join as sources
about: Join as sources for others
title: "[\U0001F9D1โ€\U0001F91Dโ€\U0001F9D1Join]"
labels: ''
assignees: ''


ๅฎŒๅ–„ไธ‹้ข็š„ไฟกๆฏ Complete the information

ๆœๅŠกๅ•† IDC Http ๅ่ฎฎ(Protocol) ๆบๅœฐๅ€ URL ่‡ชๅŠจๆ›ดๆ–ฐ้ข‘็އ Auto-update frequence
ex. aliyun http/https ex. domain/ip:port ex. 2h
  • ๅŒๆ„ๆฏไธคไธชๅฐๆ—ถ่ขซๆฃ€ๆต‹ๅฏ็”จๆ€ง Confirm to check usability per 2h
  • ๅทฒ็ป้…็ฝฎ docker ไธŠๆธธ้•œๅƒๅŒๆญฅ Sync docker image from dockerhub
  • ๆบ้•œๅƒ็ซ™ๅŠ ๅ…ฅๅ›žๆปš่ฎกๅˆ’ Join Rollback plan

File: .github/ISSUE_TEMPLATE/ๆ–ฐ็š„็‰นๆ€งๅŠŸ่ƒฝ-feature-request.md


name: ๆ–ฐ็š„็‰นๆ€งๅŠŸ่ƒฝ Feature request
about: Suggest an idea for this project
title: "[โœจFeat]"
labels: ''
assignees: ''


ๆ่ฟฐๆ˜ฏๅฆไธŽ้—ฎ้ข˜็›ธๅ…ณ Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

ๆ่ฟฐไฝ ๅ€พๅ‘็š„่งฃๅ†ณๆ–นๆกˆ Describe the solution you'd like
A clear and concise description of what you want to happen.

ๆ่ฟฐไฝ ่€ƒ่™‘่ฟ‡็š„ๅ…ถไป–ๆ–นๆกˆ Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

ๅ…ถไป–่กฅๅ……่ฏดๆ˜Ž Additional context
Add any other context or screenshots about the feature request here.


File: .github/ISSUE_TEMPLATE/้—ฎ้ข˜ๅ้ฆˆ-bug-report.md


name: ้—ฎ้ข˜ๅ้ฆˆ Bug report
about: Create a report to help us improve
title: "[\U0001F41BBUG]"
labels: ''
assignees: ''


ๆ่ฟฐ้—ฎ้ข˜ Describe the bug
A clear and concise description of what the bug is.

ๅฆ‚ไฝ•ๅค็Žฐ To Reproduce
Steps to reproduce the behavior.

ๆœŸๅพ…็ป“ๆžœ Expected behavior
A clear and concise description of what you expected to happen.

ๆˆชๅ›พ Screenshots
If applicable, add screenshots to help explain your problem.

ๅ…ถไป–่กฅๅ…… Additional context
Add any other context about the problem here.


File: .github/workflows/deploy.yml

name: update script

on:
push:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest

text
strategy:
  matrix:
    node-version: [20.x]
    # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
  - uses: actions/checkout@v4
  
  - name: Use Node.js ${{ matrix.node-version }}
    uses: actions/setup-node@v4
    with:
      node-version: ${{ matrix.node-version }}
      cache: "npm"
  - name: install yarn
    run: npm install yarn -g
  - run: yarn install
  - run: yarn build
  - run: yarn m3u
  - run: yarn matrix

  - name: "Jekyll theme"
    run: mv ./_config.temp.yml ./m3u/_config.yml

  - name: Deploy
    uses: peaceiris/actions-gh-pages@v3
    with:
      github_token: ${{ secrets.GITHUB_TOKEN }}
      publish_dir: ./m3u
      enable_jekyll: true
      cname: m3u.ibert.me

  - name: discord
    uses: HerbertHe/discord-action@v1
    with:
      webhook: ${{ secrets.DISCORD_WEBHOOK }}
      message: ${{ github.repository }} has been successfullly updated, see https://m3u.ibert.me to get more.

File: .github/workflows/docker.yml

name: docker image

on:
push:
branches: [main]

jobs:
buildx:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- # Add support for more platforms with QEMU (optional)
# https://github.com/docker/setup-qemu-action
name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build image
run: |
docker buildx build -t herberthe0229/iptv-sources:latest --platform=linux/arm64,linux/amd64,linux/arm/v8,linux/arm/v7 . --push


File: .github/workflows/schedule.yml

name: update schedule

on:
schedule:
- cron: "0 */2 * * *"

jobs:
build:
runs-on: ubuntu-latest

text
strategy:
  matrix:
    node-version: [20.x]
    # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
  - uses: actions/checkout@v4

  - name: Use Node.js ${{ matrix.node-version }}
    uses: actions/setup-node@v4
    with:
      node-version: ${{ matrix.node-version }}
      cache: "npm"
  - name: install yarn
    run: npm install yarn -g
  - run: yarn install
  - run: yarn build
  - run: yarn m3u
  - run: yarn matrix

  - name: "Jekyll theme"
    run: mv ./_config.temp.yml ./m3u/_config.yml

  - name: Deploy
    uses: peaceiris/actions-gh-pages@v3
    with:
      github_token: ${{ secrets.GITHUB_TOKEN }}
      publish_dir: ./m3u
      enable_jekyll: true
      cname: m3u.ibert.me

  - name: discord
    uses: HerbertHe/discord-action@v1
    with:
      webhook: ${{ secrets.DISCORD_WEBHOOK }}
      message: ${{ github.repository }} has been successfullly updated, see https://m3u.ibert.me to get more.