mcpField
T
telegram-reader

telegram-reader

github.com/himself65生産性3.5k1.7k 回インストール3 日前に更新
リポジトリ

telegram-reader について

telegram-readerは、tdlでTelegramのチャンネルやグループを読み取る読み取り専用スキルです。金融ニュースや市場調査向けに、チャット検索、メッセージのエクスポート、情報整理を案内します。

主な機能

  1. 01tdlのインストールとログイン状態の確認
  2. 02チャットやチャンネルの一覧・絞り込み
  3. 03件数、日時、ID、トピックによるメッセージ出力
  4. 04出力したメッセージ内容の読み取り
  5. 05時刻と情報源を付けたニュース整理

活用シーン

  1. 01金融チャンネルの最近の投稿を確認
  2. 02指定期間のメッセージを出力
  3. 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 / Linuxcurl -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
主なルール
  1. まず認証を確認する — セッションが有効か確認するため、ほかのコマンドを実行する前に tdl chat ls --limit 1 を実行してください
  2. メッセージを閲覧用にエクスポートするときは、必ず --all --with-content を使用する — これらのフラグを指定しないと、tdl はメディアメッセージしかエクスポートしません
  3. エクスポートをファイルに保存するには -o FILE を使用する — その後、JSON を読み取ってください。標準出力を解析するよりも確実です
  4. 少量のエクスポートから始める — ユーザーから追加の指定がない限り、-T last -i 20 を使用してください
  5. chat ls でフィルターを使用する — エクスポートする前に、ユーザーが適切なチャンネルを見つけやすくなります
  6. 読み取り専用 — メッセージを送信したり、チャンネルに参加または退出したり、何かを変更したりしないでください
  7. タイムスタンプを変換する — ユーザーが日付を指定した場合は、-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_XTelegram によるレート制限X 秒待ってから再試行してください
CHANNEL_PRIVATEチャンネルへのアクセス権がありませんまずユーザーが Telegram アプリでチャンネルに参加する必要があります
tdl: command not foundtdl がインストールされていませんステップ 1 に従ってインストールしてください

参考ファイル

  • references/commands.md — チャンネルの閲覧とメッセージのエクスポートに関する tdl コマンドの完全なリファレンス

コマンドの正確な構文やフラグの詳細な説明が必要な場合は、参考ファイルを参照してください。

コメント