コピペ一発で中国IPTV視聴!直播源・台標・EPGを全自動収集する「CCSH/IPTV」

タグ IPTV中国テレビM3UプレイリストEPG電子番組表GitHub Actions直播源台標無料視聴columnコラムlinuxLinuxwindowsWindowsGitHubオープンソースCCSH
🚀 今すぐ試せます! デモスクリプトをダウンロードして、解凍後にターミナルで bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。 (macOS / Linux 環境が必要)

コピペ一発で中国IPTV視聴!直播源・台標・EPGを全自動収集する「CCSH/IPTV」

ひとことでいうと

CCSH/IPTV は、中国のテレビ放送をインターネット経由で視聴するための情報を、全自動で集めて公開してくれる無料のツールです。「どのURLにアクセスすれば中国のチャンネルが見られるか」「各チャンネルのロゴ画像はどこにあるか」「今どんな番組を放送しているか」――この3種類のデータを毎日自動で更新し続けます。利用者はURLを一度コピーしてアプリに貼り付けるだけで設定完了です。インストール作業もコスト(費用)もゼロで、広告なしに中国放送を楽しめます。

こんな人におすすめ

  1. 海外在住の中国語話者・中国文化が好きな方 ― CCTVや湖南衛視・北京衛視・上海東方衛視などの衛星放送をスマートフォンやAndroid TVボックスでリアルタイムに視聴したい方に最適です。全国30の省・直轄市・自治区のローカル局も網羅しており、チャンネルロゴ付きで見やすく整理されています。プログラムの知識がまったくなくても導入できます。

  2. 自分専用のIPTV環境を作りたい技術者・ホームラボ愛好家 ― M3Uプレイリストや電子番組表XMLの仕組みを学びながら、自分だけのチャンネルリストを管理・カスタマイズしたい方にもぴったりです。リポジトリ(ソースコードの置き場)をFork(自分のアカウントにコピー)するだけで、独自の更新サイクルを持つ自前リストが完成します。ブラックボックスなサービスに依存せず運用できるのも魅力です。

  3. GitHub Actionsの自動化パターンを学びたい開発者・学習者 ― 「定期的にデータを取得し、整形してリポジトリに保存する」という実用的なCI/CDパイプライン(自動処理の流れ)が完全実装されています。.github/workflows/ フォルダのYAMLファイルを読むだけで、自分のプロジェクトにそのまま転用できる自動化テンプレートとして活用できます。

インストール・使い方

方式A:URLをプレーヤーに貼るだけ(最速・ゼロ設定)

Step 1. IPTVプレーヤー(TiviMate、Perfect Player、IPTV Smarters Proなど)をスマートフォンやテレビにインストールして起動します。「プレイリスト追加」や「M3U URLを追加」といったメニューを開いてください。

Step 2. 完全版M3UのURLをコピー&ペーストして貼り付け、読み込みます。

https://raw.githubusercontent.com/CCSH/IPTV/refs/heads/main/live.m3u

地方局を除いた軽量版を使いたい場合は、URLの末尾を live_lite.m3u に変えてください。読み込みが速くなります。

Step 3. プレーヤーのEPG(電子番組表)設定に以下のURLを追加します。末尾の .gz は圧縮ファイルを表す拡張子で、通信量を大幅に減らせます。

https://raw.githubusercontent.com/CCSH/IPTV/refs/heads/main/e.xml.gz

Step 4. プレーヤーを再起動すると、チャンネルリストと台標(チャンネルロゴ)が自動で読み込まれます。これだけで視聴の準備は完了です。


方式B:Forkして自分専用リポジトリを作る

Step 1. GitHubにログインし、CCSH/IPTVリポジトリ右上の Fork ボタンをクリックします。自分のアカウントにリポジトリのコピーが作成されます。

Step 2. 自分のリポジトリの Actions タブを開き、ワークフロー(自動処理の設定)を有効にします。これにより毎日の自動更新が動くようになります。

Step 3. プレーヤーに設定するURLの CCSH/IPTV の部分を あなたのGitHubユーザー名/IPTV に書き換えると、自分専用のリストが完成します。

Step 4. .github/workflows/ 以下のYAMLファイルを編集することで、更新頻度・データソース・フィルタールールを自由にカスタマイズできます。


方式C:Pythonスクリプトをローカルで動かす

ターミナル(文字で命令を送る画面)を使って、自分のパソコン上でデータ収集スクリプトを実行する方法です。

Step 1. Python 3.12以上の環境を用意します。公式サイトからインストーラーをダウンロードしてインストールしてください(動作確認済みバージョン: 3.12.13)。

Step 2. 必要なライブラリをインストールします。opencc-python-reimplemented は中国語の簡体字と繁体字を相互変換するためのライブラリです。

pip install opencc-python-reimplemented requests

pip はPythonのパッケージ(部品)を追加・管理するためのツールです。このコマンドをターミナルにコピー&ペーストして実行してください。

Step 3. リポジトリをクローン(手元にコピー)してスクリプトを実行します。

git clone https://github.com/CCSH/IPTV.git
cd IPTV
python main.py

git clone でソースコードを取得し、cd でそのフォルダに移動し、python main.py でデータ収集を開始します。


動かしてみた

リポジトリのファイル構成を確認したところ、以下のようなデータがすでに生成・収録されていました。

./live.txt           # 全チャンネルの直播源(TXT形式・完全版)
./live_lite.m3u      # 精简版 M3Uプレイリスト
./地方台/广东频道.txt  # 広東省のローカルチャンネル一覧
./logo/-CCTV1.png    # CCTV1の台標(チャンネルロゴ)

地方台のデータは省ごとにファイルが整理されており、雲南・陝西・福建・湖南・安徽・天津・浙江・黒竜江・内蒙古・吉林・上海・寧夏・海南・広西・山東・四川・重慶・甘粛・河北・江西・貴州・河南・遼寧・江蘇・広東・新疆・北京・山西・青海・湖北の計 30省・直轄市・自治区分が収録されていることを確認できました。ランタイムはPython 3.12.13で、GitHub Actionsの標準環境での動作が確認されています。

ブラウザで試す

ブラウザ上でチャンネル名の検索や台標URLの生成をインタラクティブに試せるデモが用意されています。キーワードを入力してチャンネルを絞り込んだり、チャンネル名から台標画像のURLを一発生成したりすることができます。実際のプレーヤーに設定する前の動作確認や、どんなチャンネルが含まれているかを手軽に確認したいときに活用してください。

はじめの一歩:5分で試す実践ガイド

Androidスマートフォン+IPTV Smarters Proの組み合わせを例に、最短手順を紹介します。

  • Google Playから IPTV Smarters Pro をインストールして起動する
  • 「M3U URLを追加」を選択し、live.m3u のURLを貼り付けて保存する
  • 「番組表」設定に e.xml.gz のURLを追加する
  • アプリを再起動するとチャンネルリストが自動でロードされ、台標付きで一覧表示される
  • 地方台を除外したいときは live_lite.m3u に変更すると読み込みが速くなる
  • GitHubのRaw URLへの直接アクセスが遅いと感じたら、READMEに記載の「GitHubプロキシ加速」サービスを経由する方法も試してみる
  • Forkした自分専用リポジトリなら、ワークフローのスケジュールを編集して更新タイミングを自由に調整できる

活用アイデア

  • Plex/Jellyfinへの統合: セルフホスト型メディアサーバーのLive TV機能に live.m3u のURLを設定し、自宅サーバーから中国放送を視聴する。EPGも合わせて設定すれば番組表付きの視聴予約も可能になる。
  • 台標の一括ダウンロード: logo/{チャンネル名}.png という命名規則を活かし、必要なロゴだけをPythonや wget で一括取得してローカルに保存することで、オフライン環境でも使えるロゴ素材集を作れる。
  • EPGデータの解析と通知ボット: e.xml をPythonの xml.etree.ElementTree で解析し、特定番組の放映時間を検知してLINEやSlackへ自動通知するボットを作れる。好きな番組が始まる前に自動でお知らせが届く仕組みが実現できる。
  • GitHub Actions学習教材: 定時実行(schedule トリガー)・ファイルコミット(git push)・シークレット管理の実装パターンを、実際に動くリファレンス実装(手本となる実装)としてそのまま自分のプロジェクトに転用できる。
  • 家族や友人への手軽な共有: ForkしたリポジトリのURLを共有するだけで、同じチャンネルリストを複数人で使い回せる。更新も自動なので、管理する手間がほとんどかからない。

用語とポイント解説

直播源(ちょくはつげん) IPTVのライブストリームURLをまとめたプレイリストファイル全般を指す中国語の呼び名です。かんたんに言うと「どのURLにアクセスすればどのチャンネルが見られるかを一覧にしたファイル」のことです。本ツールでは .txt.m3u 形式で提供されます。

M3U(エムスリーユー) 動画プレーヤーが解釈できるプレイリスト形式のファイルです。かんたんに言うと「チャンネルのURL一覧が書かれたテキストファイル」で、拡張子は .m3u.m3u8 が使われます。多くのIPTVプレーヤーがこの形式に対応しており、読み込むだけでチャンネルリストが完成します。

EPG(イーピージー) Electronic Program Guide(電子番組表)の略です。かんたんに言うと「テレビの番組表をデータ化したもの」で、XML形式で番組タイトルや放映時間が記述されています。プレーヤーに設定すると、どのチャンネルで今何をやっているかが一目でわかるようになります。

台標(たいひょう) チャンネルロゴ画像のことを指す中国語です。かんたんに言うと「テレビ局のマーク・シンボル画像」のことで、M3Uファイルの tvg-logo という項目で参照されます。本ツールでは logo/ フォルダにPNG形式で保存されており、チャンネル名と紐づいて管理されています。

GitHub Actions(ギットハブアクションズ) GitHubが提供する自動処理(CI/CD)の仕組みです。かんたんに言うと「決まった時間や条件でプログラムを自動で動かしてくれるスケジューラー」のことです。本ツールではこの仕組みを使って毎日データを更新し、リポジトリに自動で保存しています。

opencc(オープンシーシー) 中国語の簡体字(中国大陸で主に使われる字体)と繁体字(台湾・香港で主に使われる字体)を相互変換するPythonライブラリです。かんたんに言うと「中国語の漢字の書き方の違いを自動で統一してくれるツール」です。チャンネル名の表記ゆれを正規化するために使われています。

TiviMate(ティビメイト) Android TV向けの高機能IPTVプレーヤーアプリです。かんたんに言うと「M3UとEPGを組み合わせて、番組表付きでテレビ局のチャンネルを視聴できるアプリ」のことです。チャンネルリストの管理や番組表表示に優れており、本ツールとの相性が良いとされています。

地方台(ちほうだい) 省・市レベルの地方放送局のことです。かんたんに言うと「全国放送ではなく、特定の地域向けに放送しているローカルテレビ局」のことです。本ツールでは省ごとに個別ファイルで管理されており、全国30省・直轄市・自治区のチャンネルが収録されています。

Fork(フォーク) GitHubで他の人のリポジトリを自分のアカウントにコピーする機能です。かんたんに言うと「元の作者のプロジェクトを自分のものとして使えるようにする機能」で、自由にカスタマイズや変更を加えられます。本ツールをForkすれば、自分専用の更新スケジュールや設定を持つIPTVリストをすぐに作れます。


ぜひTiviMateやIPTV Smarters Proなどのプレーヤーアプリへのチャンネルリスト導入や、GitHub Actionsを活用した自動化パイプラインの学習教材などに活用してみてはいかがでしょうか。