Communitygithub.com

Pavan-makwana/My-Agentic-Skills

レンダリングされた1080x1920 Instagram Reel動画を、Telegram Bot APIを介してチャット、グループ、チャンネルに自動アップロード、ストリーミング、管理します。インタラクティブボットコマンド(/reels、/day1、/day2、/status)と自動配信フックを含みます。

My-Agentic-Skills とは?

このスキルは、スタジオ品質の縦型MP4動画(最大50MB)をTelegram Bot APIを使用して直接Telegramにアップロードおよびストリーミングする機能を提供します。外部のnpm依存関係は一切不要で、Node.js 18+のネイティブ`fetch`、`FormData`、`Blob`を活用します。主なユースケースは、レンダリングされたリール動画を即座にTelegramチャットに配信したり、ユーザーが/start、/day1、/reelsなどのコマンドでオンデemandでリールをリクエストできる対話型ボットを構築することです。`telegram_config.json`でボットトークンとチャットIDを設定し、`setup_telegram.js`スクリプトが自動リンクとチャットIDのキャプチャを処理します。ボットは`sendsVideo` APIエンドポイントを使用し、HTMLキャプション、ストリーミングサポート、解像度設定をサポートします。対応プラットフォームはTelegram(Bot API)、Node.js環境(Claude Code、Cursor、Codexなど)です。

対応~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/Pavan-makwana/My-Agentic-Skills/tree/HEAD/skills/telegram-reel-publisher

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Telegram Reel Publisher

スタジオ品質の縦型MP4動画(最大50MB)を、外部npm依存関係なしで、標準のTelegram Bot APIエンドポイントを使用してTelegramに直接アップロードおよびストリーミングする自動化ツールです。

flowchart LR
    A[レンダリング済みReel MP4] --> B[telegram_bot.js]
    B --> C[Telegram Bot API /sendVideo]
    C --> D[ユーザー/チャンネルチャット]
    D --> E[インタラクティブコマンド /reels, /day1, /status]

使用するタイミング

  • MP4動画(特に1080x1920 9:16縦型リール)をレンダリングし、すぐにTelegramに配信したい場合。
  • ユーザーがオンデマンドでリールをリクエストできる対話型Telegramボットを作りたい場合。
  • 動画レンダリング完了後に自動パイプライン配信を実現したい場合。

前提条件

  • Node.js 18+(ネイティブのfetch、FormData、Blobを使用)。
  • @BotFatherからのTelegram Botトークン。
  • ターゲットのchat_id(ユーザーが/startをクリックすると自動取得)。

設定: telegram_config.json

{
  "bot_token": "YOUR_BOT_TOKEN_HERE",
  "chat_id": "YOUR_CHAT_ID_HERE",
  "bot_name": "Peak Lyrics",
  "bot_username": "PeakLyricsBot",
  "auto_upload": true
}

セットアップと自動リンク

ボットトークンを指定してセットアップスクリプトを実行します:

node setup_telegram.js <YOUR_BOT_TOKEN>
  1. getMeでトークンを確認します。
  2. ボットリンク(https://t.me/<bot_username>)を表示します。
  3. ユーザーがTelegramで/startを押すのを待機します。
  4. chat_idを自動的にキャプチャし、telegram_config.jsonに保存します。
  5. 保留中のリールを即座に配信します。

直接APIアップロードワークフロー

const fs = require('fs');
const path = require('path');

async function sendReelVideo(videoPath, { day, songTitle }, chatId, botToken) {
  const blob = await fs.openAsBlob(videoPath);
  const form = new FormData();
  form.append('chat_id', chatId);
  form.append('video', blob, path.basename(videoPath));
  form.append('caption', `🎬 <b>Day ${day}</b>: <i>${songTitle}</i>\n✨ 1080x1920 スタジオ品質\n⏱ ワードバイワード同期`);
  form.append('parse_mode', 'HTML');
  form.append('supports_streaming', 'true');
  form.append('width', '1080');
  form.append('height', '1920');

  const res = await fetch(`https://api.telegram.org/bot${botToken}/sendVideo`, {
    method: 'POST',
    body: form
  });
  return await res.json();
}

インタラクティブボットリスナーの実行

node telegram_bot.js listen

以下のコマンドに応答します:

  • /start または /help - 概要とメニュー
  • /day1 - Day 1 リールを配信
  • /day2 - Day 2 リールを配信
  • /reels - 全シリーズコレクションを配信
  • /status - ボットのヘルスとチャットリンクステータス

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

関連スキル