telegram-reader について
telegram-readerは、tdlでTelegramのチャンネルやグループを読み取る読み取り専用スキルです。金融ニュースや市場調査向けに、チャット検索、メッセージのエクスポート、情報整理を案内します。
主な機能
- 01tdlのインストールとログイン状態の確認
- 02チャットやチャンネルの一覧・絞り込み
- 03件数、日時、ID、トピックによるメッセージ出力
- 04出力したメッセージ内容の読み取り
- 05時刻と情報源を付けたニュース整理
活用シーン
- 01金融チャンネルの最近の投稿を確認
- 02指定期間のメッセージを出力
- 03複数のTelegramチャンネルの市場動向を比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ himself65/ finance-skills --skill telegram-readerインストール後、Claude Code で/telegram-readerを入力して読み込まれたか確認します。
同梱ファイルREADME.mdreferences/commands.md
詳細
Telegram News Skill(読み取り専用)
ホストが以下のシェルプローブをまだ実行していない場合(たとえば Codex)、セットアップ方法を選ぶ前に、シェルツールを使って ! で囲まれたコマンドを実行してください。実際の出力を使用し、シェルにアクセスできない場合は、その制約を報告してください。
tdl(Telegram CLI ツール)を使用して、金融ニュースや市場調査のために Telegram のチャンネルやグループを読み取ります。
このスキルは読み取り専用です。 金融調査向けに設計されており、チャンネルのメッセージの閲覧、金融ニュースチャンネルの監視、メッセージ履歴のエクスポートを行います。メッセージの送信、チャンネルへの参加・退出、書き込み操作には対応していません。
ステップ 1:tdl がインストールされていることを確認する
現在の環境の状態:
!`(command -v tdl && tdl version 2>&1 | head -3 || echo "TDL_NOT_INSTALLED") 2>/dev/null`
上記の状態にバージョン番号が表示されている場合、tdl はインストール済みです。ステップ 2 に進んでください。
TDL_NOT_INSTALLED の場合は、ユーザーのプラットフォームに応じて tdl をインストールします。
| プラットフォーム | インストールコマンド |
|---|---|
| macOS / Linux | curl -sSL https://docs.iyear.me/tdl/install.sh | sudo bash |
| macOS(Homebrew) | brew install telegram-downloader |
| Linux(Termux) | pkg install tdl |
| Linux(AUR) | yay -S tdl |
| Linux(Nix) | nix-env -iA nixos.tdl |
| Go(任意のプラットフォーム) | go install github.com/iyear/tdl@latest |
macOS では Homebrew を既定にします。Linux ではインストールスクリプトが sudo を実行するため、使用前にユーザーに確認するか、代わりにユーザーのパッケージマネージャーを提案してください。
ステップ 2:tdl が認証済みであることを確認する
現在の認証状態:
!`(tdl chat ls --limit 1 2>&1 >/dev/null && echo "AUTH_OK" || echo "AUTH_NEEDED") 2>/dev/null`
AUTH_OK の場合は、ステップ 3 に進んでください。
AUTH_NEEDED の場合は、ユーザーのログインを案内してください。ログインには対話形式の入力が必要です。ユーザー自身が電話番号と確認コードを入力する必要があります。
ログイン方法
方法 A:QR コード(推奨 — 最速)
tdl login -T qr
ターミナルに QR コードが表示されます。ユーザーは Telegram モバイルアプリでスキャンします(設定 > デバイス > デスクトップデバイスをリンク)。
方法 B:電話番号 + コード
tdl login -T code
ユーザーが電話番号を入力すると、Telegram アプリに送信された確認コードを入力します。
方法 C:Telegram Desktop からインポート
ユーザーが Telegram Desktop をインストールしてログイン済みの場合:
tdl login
既存のデスクトップクライアントからセッションをインポートします。デスクトップクライアントは公式ウェブサイトから入手したものである必要があります。App Store または Microsoft Store から入手したものは使用できません。
名前空間
既定では、tdl は default 名前空間を使用します。複数のアカウントを管理するには:
tdl login -n work -T qr # Login to "work" namespace
tdl chat ls -n work # Use "work" namespace for commands
ログインに関する重要な注意事項
- ログインは一度だけ行います。ログインが成功すると、セッションはディスクに保存されます。
- ログインに失敗した場合は、インターネット接続を確認して再試行するようユーザーに伝えてください。
- Telegram のパスワードや 2FA コードをプログラムから要求または取り扱わないでください。必ずユーザー自身が対話形式で入力するようにしてください。
ステップ 3:ユーザーのニーズを特定する
以下の読み取り操作のいずれかに、ユーザーのリクエストを対応させます。
| ユーザーのリクエスト | コマンド | 主なフラグ |
|---|---|---|
| すべてのチャット/チャンネルを一覧表示する | tdl chat ls | -o json、-f "FILTER" |
| チャンネルのみを一覧表示する | tdl chat ls -f "Type contains 'channel'" | -o json |
| 最近のメッセージをエクスポートする | tdl chat export -c CHAT -T last -i N | --all、--with-content |
| 指定した時間範囲のメッセージをエクスポートする | tdl chat export -c CHAT -T time -i START,END | --all、--with-content |
| 指定した ID 範囲のメッセージをエクスポートする | tdl chat export -c CHAT -T id -i FROM,TO | --all、--with-content |
| トピック/スレッドからエクスポートする | tdl chat export -c CHAT --topic TOPIC_ID | --all、--with-content |
| チャンネル名で検索する | tdl chat ls -f "VisibleName contains 'NAME'" | -o json |
チャット識別子
-c フラグでは、複数の形式を使用できます。
| 形式 | 例 |
|---|---|
| ユーザー名(@ 付き) | -c @channel_name |
| ユーザー名(@ なし) | -c channel_name |
| 数値のチャット ID | -c 123456789 |
| 公開リンク | -c https://t.me/channel_name |
| 電話番号 | -c "+1 123456789" |
| 保存済みメッセージ | -c ""(空) |
ステップ 4:コマンドを実行する
チャットの一覧表示
# List all chats
tdl chat ls
# JSON output for processing
tdl chat ls -o json
# Filter for channels only
tdl chat ls -f "Type contains 'channel'"
# Search by name
tdl chat ls -f "VisibleName contains 'Bloomberg'"
メッセージのエクスポート
テキストメッセージ(メディアのみではなく)を取得するには、必ず --all --with-content を使用してください。
# Last 20 messages from a channel
tdl chat export -c @channel_name -T last -i 20 --all --with-content -o /tmp/tdl-export.json
# Messages from a time range (Unix timestamps)
tdl chat export -c @channel_name -T time -i 1710288000,1710374400 --all --with-content -o /tmp/tdl-export.json
# Messages by ID range
tdl chat export -c @channel_name -T id -i 100,200 --all --with-content -o /tmp/tdl-export.json
主なルール
- まず認証を確認する — セッションが有効か確認するため、ほかのコマンドを実行する前に
tdl chat ls --limit 1を実行してください - メッセージを閲覧用にエクスポートするときは、必ず
--all --with-contentを使用する — これらのフラグを指定しないと、tdl はメディアメッセージしかエクスポートしません - エクスポートをファイルに保存するには
-o FILEを使用する — その後、JSON を読み取ってください。標準出力を解析するよりも確実です - 少量のエクスポートから始める — ユーザーから追加の指定がない限り、
-T last -i 20を使用してください chat lsでフィルターを使用する — エクスポートする前に、ユーザーが適切なチャンネルを見つけやすくなります- 読み取り専用 — メッセージを送信したり、チャンネルに参加または退出したり、何かを変更したりしないでください
- タイムスタンプを変換する — ユーザーが日付を指定した場合は、
-T timeフィルター用の Unix タイムスタンプに変換してください
エクスポートした JSON の操作
エクスポートした後、JSON ファイルを読み取り、関連情報を抽出してください。
# Export messages
tdl chat export -c @channel_name -T last -i 20 --all --with-content -o /tmp/tdl-export.json
# Read and process the export
cat /tmp/tdl-export.json
エクスポートした JSON には、id、date、message(テキストコンテンツ)、from_id、views、メディアメタデータなどのフィールドを含むメッセージオブジェクトが格納されています。
ステップ 5:結果を提示する
生データをそのまま示すのではなく、最も関連性の高いニュースや市場動向から提示してください。各メッセージにタイムスタンプとソースチャンネルを記載し、複数のチャンネルからのメッセージはテーマ(マクロ経済、決算、暗号資産)ごとにまとめ、速報、目標株価、決算の予想外の結果を取り上げてください。チャンネルの一覧では、名前、メンバー数、種類を表示してください。
ステップ 6:診断
問題が発生した場合:
| エラー | 原因 | 対処方法 |
|---|---|---|
not authorized またはセッションエラー | ログインしていないか、セッションの有効期限が切れています | tdl login -T qr を実行して再認証してください |
FLOOD_WAIT_X | Telegram によるレート制限 | X 秒待ってから再試行してください |
CHANNEL_PRIVATE | チャンネルへのアクセス権がありません | まずユーザーが Telegram アプリでチャンネルに参加する必要があります |
tdl: command not found | tdl がインストールされていません | ステップ 1 に従ってインストールしてください |
参考ファイル
references/commands.md— チャンネルの閲覧とメッセージのエクスポートに関する tdl コマンドの完全なリファレンス
コマンドの正確な構文やフラグの詳細な説明が必要な場合は、参考ファイルを参照してください。