mcpField
T
telegram

telegram

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

telegram について

金融調査向けの読み取り専用 Telegram スキルです。tdl でチャットやチャンネルを確認し、メッセージを絞り込んで履歴をエクスポートします。送信などの書き込み操作には対応しません。

主な機能

  1. 01チャットとチャンネルの一覧・絞り込み
  2. 02件数・日時・IDによるメッセージ出力
  3. 03トピックと本文のエクスポート
  4. 04認証状態の確認とログイン案内

活用シーン

  1. 01金融ニュースチャンネルの更新確認
  2. 02期間を指定した調査メッセージの抽出
  3. 03チャンネルの検索と発信元の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/himself65/finance-skills --skill telegram

インストール後、Claude Code で/telegramを入力して読み込まれたか確認します。

同梱ファイルREADME.mdreferences/commands.md

詳細

Telegram ニューススキル(読み取り専用)

Telegram の CLI ツールである tdl を使って、金融ニュースや市場調査のために 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 では curl スクリプトをデフォルトにします。


ステップ 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:結果を提示する

データを取得したら、金融調査に役立つよう、わかりやすく提示します。

  1. 重要なメッセージを要約します — 最も関連性の高いニュースや市場の最新情報を取り上げます
  2. タイムスタンプを含めます — 各メッセージの投稿日時を示します
  3. トピックごとに分類します — 複数のチャンネルがある場合は、テーマ(マクロ、決算、暗号資産など)ごとに整理します
  4. 行動につながる情報に印を付けます — 速報、目標株価、決算サプライズに注意を促します
  5. チャンネルの背景情報を添えます — 各メッセージの発信元チャンネル/グループを記載します
  6. チャンネル一覧の場合は、チャンネル名、メンバー数、種類を示します

ステップ 6:診断

問題が発生した場合:

エラー原因解決策
not authorized またはセッションエラーログインしていないか、セッションの有効期限が切れていますtdl login -T qr を実行して再認証します
FLOOD_WAIT_XTelegram によるレート制限ですX 秒待ってから、再試行します
CHANNEL_PRIVATEチャンネルへのアクセス権がありません先にユーザーが Telegram アプリでチャンネルに参加する必要があります
tdl: command not foundtdl がインストールされていませんステップ 1 に従ってインストールします

参照ファイル

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

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

コメント