無料IPTV自動収集ツール「IPTV Scraper Zilla」— 数千チャンネルのM3Uプレイリストを毎時自動更新
bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。
(macOS / Linux 環境が必要) 無料IPTV自動収集ツール「IPTV Scraper Zilla」— 数千チャンネルのM3Uプレイリストを毎時自動更新
このソフトで何ができる?
IPTV Scraper Zilla は、インターネット上に散らばっている無料テレビチャンネルのリンクを自動で集め、1つのファイルにまとめてくれるPythonツールです。まとめた結果は M3U形式(メディアプレイヤーが読み込めるチャンネルリスト)のファイルとして、1時間ごとに自動で更新されます。PlutoTV・Tubi・Samsung TV+・Plex・Rokuといった「無料で合法的に使えるストリーミングサービス」を中心に、スポーツ・映画・アニメ・ニュースなど多様なジャンルのチャンネルを集約しています。VLC・Kodi・OTT Navigatorといった主要なメディアプレイヤーで、URLをコピーするだけですぐ利用でき、インストールは不要です。
こんな人におすすめ
- VLCやKodiで動画を楽しんでいる方: メディアプレイヤーにURLを貼り付けるだけで、数千チャンネルにアクセスできます。毎回チャンネルリンクを探す手間が省けます。
- Pythonのスクレイピングを学んでいる方: 複数のFASTサービスを横断してリンクを集める実装例として、スクリプトの書き方を参照できます。「実際に動くコードで学びたい」という学習者や学生にぴったりです。
- 自分でIPTVプレイリストを管理したい方: 複数サービスのM3Uファイルをまとめて扱いたい方や、GitHub Actionsを使った「決まった時間に自動実行する仕組み」を研究したい方にもおすすめです。
インストール・使い方
このツールの最大の特長は、インストールしなくてもすぐ使える点です。スクリプトを実行した結果のM3Uファイルが、そのままGitHub上に公開されています。URLをコピーしてプレイヤーに貼り付けるだけで利用できます。
Step 1: プレイリストのURLをコピーする
次のURLが、すべてのチャンネルをまとめた統合プレイリストです。
https://raw.githubusercontent.com/abusaeeidx/IPTV-Scraper-Zilla/main/combined-playlist.m3u
このURLをコピーしておきます。ターミナル(文字で命令を送る画面)もブラウザも不要です。
Step 2: IPTVプレイヤーに貼り付ける
お使いのアプリに合わせて次のように操作します。
- VLC Media Player(パソコン): メニューから「メディア」→「ネットワークストリームを開く」を選び、URLを貼り付けて「再生」をクリックします。
- OTT Navigator(Android TV): アプリを開き、「プレイリストを追加」→「URLから追加」を選んでURLを貼り付けます。
- Network Stream Player(スマートフォン): 「ネットワーク再生」の入力欄にURLを貼り付けるだけです。
特定のサービスだけ使いたい場合は、サービスごとの個別ファイルも用意されています。統合プレイリストのURLの末尾のファイル名を次のいずれかに変えて使います。
PlutoTV-All.m3u
Plex-All.m3u
SamsungTVPlus-All.m3u
Roku-All.m3u
tubi_playlist.m3u
JapanTV.m3u8 (日本向けチャンネル)
Step 3: スクリプトをパソコンで直接動かす場合(上級者向け)
Pythonが得意な方は、スクリプトをローカル(自分のパソコン)で実行することもできます。ターミナルを開いて、次のコマンドをコピー&ペーストしてください。
git clone https://github.com/abusaeeidx/IPTV-Scraper-Zilla.git
cd IPTV-Scraper-Zilla
python3 --version # Python 3.12 以上を推奨
python3 pxs.py
git clone はリポジトリ(ソースコードの置き場)をまるごとダウンロードするコマンドです。python3 pxs.py でメインスクリプトが動き、M3Uファイルが手元に生成されます。依存パッケージの情報はスクリプト内に記述されています。
ブラウザで試す
ブラウザ上でM3Uプレイリストの中身を確認できるデモ機能があります。M3U形式のテキストを貼り付けると、チャンネル名・グループ・TVG ID・ストリームURLが一覧で表示されます。サンプルテキストがあらかじめ入力されているため、ボタンを押すだけで動作を確認できます。インストール不要で手軽に試せるので、「M3Uってどんなファイル?」と気になっている方の最初の一歩としておすすめです。
動かしてみた
Python 3.12の環境でリポジトリの構成を確認しました。次のファイルが正しく存在することを確認できています。
./combined-playlist.m3u # 全サービス統合プレイリスト
./PlutoTV-All.m3u # Pluto TV チャンネル
./Plex-All.m3u # Plex TV チャンネル
./SamsungTVPlus-All.m3u # Samsung TV+ チャンネル
./Roku-All.m3u # Roku チャンネル
./tubi_playlist.m3u # Tubi TV チャンネル
./JapanTV.m3u8 # 日本向けチャンネル
./xumo_epg.xml.gz # EPG(電子番組表)データ
./tubi_epg.xml # Tubi の EPG データ
./pxs.py # メインスクリプト
./file/tvpass.py # サブスクリプト
combined-playlist.m3u に全サービスのチャンネルがまとまっており、サービスごとの個別ファイルも揃っています。EPG(電子番組表)のデータとして xumo_epg.xml.gz と tubi_epg.xml も付属しており、番組表つきの視聴環境を整えやすい構成です。日本向けのプレイリスト JapanTV.m3u8 も収録されているのが大きな特長です。
実践のコツ — はじめて使うときにやってみること
すぐ試せるアクションを中心にまとめました。
- まず
combined-playlist.m3uのURLをVLCに貼ってみる: チャンネル一覧が表示されれば成功です。グループ名でフィルタリングするとジャンルを絞り込めます。 - サービスごとのファイルで読み込みを軽くする: 全部まとめたファイルが重いと感じたら、
PlutoTV-All.m3uなど個別ファイルを試してみましょう。チャンネル数が減るぶん読み込みが速くなります。 - EPGを設定して番組表を表示する: KodiやOTT Navigatorで
tubi_epg.xmlをEPGプロバイダとして設定すると、番組名と放送時間がプレイヤー上に表示されます。 - M3Uファイルをテキストエディタで開いてみる: 中身は普通のテキストです。チャンネル名を書き換えたり不要な行を削除したりして、自分好みにカスタマイズできます。
- 日本向けチャンネルを確認する:
JapanTV.m3u8を別途読み込むと、日本向けチャンネルだけをまとめて確認できます。海外からアクセスする場合にも役立ちます。 - GitHub Actionsのワークフローファイルを読む: リポジトリの
.github/workflows/フォルダにあるYAMLファイルを見ると、毎時自動更新の仕組みがどう動いているかがわかります。自分のスクレイパープロジェクトに応用するヒントが得られます。
用語とポイント解説
IPTV(アイピーティービー) インターネット経由でテレビ放送を受信して見る仕組みのことです。かんたんに言うと「ネット回線を使ってテレビチャンネルを見る方式」です。ケーブルや衛星放送の代わりに、インターネットで映像が届きます。スマートフォン・パソコン・テレビ端末など幅広いデバイスで視聴できます。
M3Uプレイリスト
複数のストリームURLをまとめて書いたテキストファイルの形式です。かんたんに言うと「チャンネルの住所一覧をまとめたリスト」です。拡張子は .m3u または .m3u8 で、VLCやKodiなどのメディアプレイヤーが読み込めます。テキストエディタで開いて直接編集することもできます。
FAST(ファスト) Free Ad-Supported Streaming TV の略で、「広告付きの無料ストリーミングテレビ」のことです。かんたんに言うと「テレビCMが流れる代わりに無料で見られるネット動画サービス」です。PlutoTV・Tubi・Samsung TV+・Plex・Rokuなどが代表的なサービスで、登録不要で利用できるものも多いです。
GitHub Actions GitHubが提供する「決まったタイミングで自動的に処理を実行する」仕組みです。かんたんに言うと「ロボットが代わりにプログラムを動かしてくれるスケジュール機能」です。IPTV Scraper Zillaはこれを使って毎時1回スクレイピングを実行し、M3Uファイルを自動で更新しています。自分のプロジェクトでも応用できます。
EPG(電子番組表) Electronic Program Guide の略で、テレビの番組表をデータ化したものです。かんたんに言うと「何時に何の番組が放送されるかをプレイヤーに教えるデータファイル」です。XML形式で提供されることが多く、KodiやOTT NavigatorなどのIPTVアプリがこのデータを読み込んで番組一覧を表示します。
スクレイピング Webページから必要な情報を自動で収集するプログラム技術のことです。かんたんに言うと「ロボットがWebサイトを巡回して情報を集めてくる作業」です。IPTV Scraper Zillaでは各FASTサービスからチャンネルURLを収集するために使われており、Pythonが得意とする処理の1つです。
ストリームURL 動画や音声をリアルタイムに受け取るための「住所」のようなものです。かんたんに言うと「このURLにアクセスすると映像が流れてくるリンク」です。M3Uファイルには各チャンネルのストリームURLが1行ずつ書かれており、URLが変わるとチャンネルが見られなくなるため定期的な更新が重要です。
TVG ID
M3Uファイルの中でチャンネルを識別するための固有の名前(ID)です。かんたんに言うと「チャンネルにつけられた管理番号のようなもの」です。EPGデータと照合してチャンネルに番組表を紐づけるときに使われます。ファイル内では tvg-id="PlutoTV.US" のように記述されています。
OTT(オーティーティー) Over The Top の略で、インターネット回線を通じてコンテンツを配信するサービス全般を指します。かんたんに言うと「ケーブルや衛星を使わずネットだけで見るサービス」のことです。NetflixやYouTubeもOTTの一種で、「OTT Navigator」のようなIPTVアプリもこのカテゴリに含まれます。
活用例
- 自宅のメディアサーバーで多チャンネル視聴: JellyfinやEmbyといったホームメディアサーバーにM3UプレイリストのURLを登録すると、テレビのようにチャンネルを切り替えながら視聴できる環境が作れます。サービスごとのM3Uファイルを組み合わせてチャンネルラインナップをカスタマイズすることも可能です。
- EPGと組み合わせた番組表付き視聴: 付属の
xumo_epg.xml.gzやtubi_epg.xmlをEPGプロバイダとして設定すると、KodiやOTT Navigatorで番組名と放送時間が表示されるようになります。「今何の番組をやっているか」が一目でわかる視聴体験が実現します。 - PythonスクレイピングのOJT(実践学習):
pxs.pyとfile/tvpass.pyのコードを読むことで、複数のWebサービスを横断してデータを収集するスクレイピングの実装パターンが学べます。「動くコードを読みながら学ぶ」教材として学習者や学生に活用できます。 - GitHub Actionsによる自動化の学習素材: 毎時自動更新のワークフローは、スケジュール実行やCI/CDパイプラインの入門サンプルとして参考になります。自分のスクレイパープロジェクトに同じパターンを応用する出発点として使えます。
- 日本語チャンネルの視聴環境整備:
JapanTV.m3u8を読み込むと、日本向けのチャンネルをまとめて確認できます。海外在住で日本のコンテンツを探している方にとっても試しやすい構成です。 - カスタムプレイリストの作成練習: M3Uはテキスト形式なので、複数ファイルを組み合わせたり不要なチャンネルを削除したりして自分専用のプレイリストを作れます。M3Uの構造を理解することが、独自のIPTV管理システム構築への第一歩になります。
まとめ
IPTV Scraper Zillaは、PlutoTV・Tubi・Samsung TV+・Plex・Rokuなど合法的な無料ストリーミングサービスのチャンネルリンクを自動収集し、M3U形式でまとめて提供するPythonベースのツールです。エンドユーザーはURLをコピーするだけで数千チャンネルにアクセスでき、開発者はPythonスクリプトを参照してIPTVスクレイピングの技術を学べます。EPGデータも付属しているため、番組表つきの視聴環境を比較的簡単に整備できる点が大きな特長です。日本向けプレイリスト(JapanTV.m3u8)も収録されており、国内ユーザーにも試しやすい構成になっています。利用にあたっては、各コンテンツプロバイダの利用規約および著作権法を必ず確認してください。
ぜひ自宅のメディアサーバー構築や、Pythonスクレイピングの学習素材などに活用してみてはいかがでしょうか。