agentsclimarketplace

Twitter media extraction and telegram sender

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/twitter_media_extraction_and_telegram_sender

AutoSkill: Experience-Driven Lifelong Learning via Skill Self-Evolution

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill twitter_media_extraction_and_telegram_sender

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

4.1 KB, as published. Nobody here has run it

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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.