telegram について
金融調査向けの読み取り専用 Telegram スキルです。tdl でチャットやチャンネルを確認し、メッセージを絞り込んで履歴をエクスポートします。送信などの書き込み操作には対応しません。
主な機能
- 01チャットとチャンネルの一覧・絞り込み
- 02件数・日時・IDによるメッセージ出力
- 03トピックと本文のエクスポート
- 04認証状態の確認とログイン案内
活用シーン
- 01金融ニュースチャンネルの更新確認
- 02期間を指定した調査メッセージの抽出
- 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 / 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 では 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
主なルール
- まず認証を確認します — ほかのコマンドを実行する前に
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 コマンドの完全なリファレンス
正確なコマンド構文やフラグの詳細な説明が必要な場合は、参照ファイルを読んでください。