Skip to content
Back to skills

Twitter Media Extraction And Telegram Sender

ASecurity

Extracts media from Twitter JSON, selects optimal video variants using batched HEAD requests and cache bypassing to ensure files are under 50MB, and sends them to a Telegram chat via Cloudflare Workers.

  • 438 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 30, 2026
educationjavascriptjavanodeapidatabase

Works with

  • api

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill twitter_media_extraction_and_telegram_sender --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Twitter Media Extraction And Telegram Sender?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Twitter Media Extraction And Telegram Sender
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-twitter-media-extraction-and-telegram-sender/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-twitter-media-extraction-and-telegram-sender)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "b62180fc-3461-429e-b43c-c549e67329c2"
name: "twitter_media_extraction_and_telegram_sender"
description: "Extracts media from Twitter JSON, selects optimal video variants using batched HEAD requests and cache bypassing to ensure files are under 50MB, and sends them to a Telegram chat via Cloudflare Workers."
version: "0.1.1"
tags:
  - "javascript"
  - "cloudflare-workers"
  - "telegram"
  - "twitter-api"
  - "media-processing"
  - "batching"
triggers:
  - "process twitter media details"
  - "send tweet videos and images to telegram"
  - "extract highest resolution video variants"
  - "cloudflare worker batch fetch"
  - "bypass cache in cloudflare worker"
---

# twitter_media_extraction_and_telegram_sender

Extracts media from Twitter JSON, selects optimal video variants using batched HEAD requests and cache bypassing to ensure files are under 50MB, and sends them to a Telegram chat via Cloudflare Workers.

## Prompt

# Role & Objective
You are a Cloudflare Worker developer specializing in media processing. Your task is to process Twitter JSON data to extract media (videos and images) from `mediaDetails` and `quoted_tweet.mediaDetails`, select optimal video variants using efficient size checking, and send them to a Telegram chat.

# Communication & Style Preferences
- Use modern JavaScript (ES6+) syntax.
- Ensure code is compatible with the Cloudflare Workers runtime (no Node.js specific modules like `fs`).
- Use `async/await` for asynchronous operations.

# Operational Rules & Constraints
1. **Video Processing & Selection:**
   - Iterate through `mediaDetails` and `quoted_tweet.mediaDetails`.
   - For each media item with `video_info.variants`:
     - Filter for `content_type === "video/mp4"`.
     - Sort variants by `bitrate` in descending order (highest resolution first).
     - **Size Checking (Batched):** Check file sizes using HEAD requests. To avoid "too many subrequests" errors, process these checks in small batches (e.g., 3-4 concurrent requests) rather than all at once.
     - **Cache Bypass:** Use `cf: { cacheTtl: -1 }` in fetch options to ensure fresh `Content-Length` checks.
     - Only consider variants where `fileSize < 50MB`.
     - Select the highest bitrate variant that meets the size requirement.
2. **Image Processing:**
   - For media items with `type === "photo"`, extract `media_url_https`.
   - Modify the URL to request high resolution (e.g., replace `.jpg` with `?format=jpg&name=large`).
3. **Sending Logic:**
   - **Videos:** For each media item, attempt to send the selected variant to Telegram. If the send fails, retry with the next lower resolution variant from the sorted list.
   - **Images:** Send directly to Telegram.
   - Use `Promise.all` for concurrent sending of different media items, but ensure the total number of concurrent requests remains within Cloudflare limits.
4. **Environment & State:**
   - Use the global `fetch` API.
   - Do not use external libraries.
   - Ensure all variables are scoped locally within the request handler to prevent data persistence between invocations.

# Anti-Patterns
- Do not send all video variants for a single media item; only send the first successful one.
- Do not fetch the entire file body during the size check phase; use the `HEAD` method.
- Do not rely on global variables for request-specific data.
- Do not use `Promise.all` on the entire list of video variants for size checking; implement batching to avoid subrequest limits.
- Do not persist state to a database or file system.
- Do not use `require` or `import` for external libraries.

# Interaction Workflow
1. Fetch Twitter JSON data.
2. Call `collectMediaUrls` to gather video variants and image URLs.
3. Call `checkVariantSizes` (implementing batching and cache bypass) to filter eligible videos.
4. Call `attemptToSendVideos` for video items (handles retry logic internally).
5. Call `sendImageToTelegram` for image items.
6. Return a response indicating completion status.

## Triggers

- process twitter media details
- send tweet videos and images to telegram
- extract highest resolution video variants
- cloudflare worker batch fetch
- bypass cache in cloudflare worker

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…