Media Sync

v1.1.0

Download media into /mnt/jellyfin_media subfolders. Track progress.

0· 97·0 current·0 all-time
byVivek Patel@vivek9patel

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for vivek9patel/media-sync.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Media Sync" (vivek9patel/media-sync) from ClawHub.
Skill page: https://clawhub.ai/vivek9patel/media-sync
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install media-sync

ClawHub CLI

Package manager switcher

npx clawhub@latest install media-sync
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description say 'download media into /mnt/jellyfin_media' and the manifest/tools/scripts only access that media root and /tmp and call yt-dlp. The requested binary (yt-dlp) and mounts are coherent with the stated purpose; no unrelated credentials or services are required.
Instruction Scope
SKILL.md constrains the agent to a strict workflow (folder check, user confirm, then download) and to call the three declared tools. The three scripts only read/list/create directories under /mnt/jellyfin_media, write logs in /tmp, and run yt-dlp on user-provided URLs — behavior matches the instructions and purpose. There are no instructions to read unrelated files or exfiltrate data.
Install Mechanism
No embedded install script for the skill itself (instruction-only skill), but manifest documents installing yt-dlp (brew or curl from GitHub releases). Using curl to fetch the yt-dlp binary from GitHub is common but do verify you trust the source and checksum; README advises cloning the skill repo into a specific path, which is reasonable but requires installing code from an external repo you trust.
Credentials
The skill requests no environment variables or credentials. It declares two mounts (/mnt/jellyfin_media and /tmp) which are proportional for a downloader that writes files and stores progress; the manifest does hardcode skill install paths (e.g., /home/$USER/.openclaw/skills/media_sync) which you should ensure match your runtime layout.
Persistence & Privilege
The skill does not request always:true and does not modify other skills or system-wide config. It writes session logs under /tmp and creates folders only under the declared media root; its privileges are limited to the mounted paths.
Assessment
This skill appears to do what it says: it checks/creates folders under /mnt/jellyfin_media, runs yt-dlp on the URLs you provide, and stores progress in /tmp. Before installing: (1) ensure you mount the intended media directory at /mnt/jellyfin_media so the skill cannot write somewhere unexpected; (2) install yt-dlp from an official source and verify its integrity; (3) only provide URLs you trust (downloading arbitrary URLs can pull malicious content); (4) install the skill from a trusted repository (README clone URL is a placeholder); and (5) if you want extra safety, run the skill in a container or sandbox with the media mount you expect and limited host access.

Like a lobster shell, security has layers — review code before you run it.

latestvk97f3mh705cxm6nkntqpxfbk9d849bbq
97downloads
0stars
2versions
Updated 3w ago
v1.1.0
MIT-0

Media Sync — Agent Instructions

You are a media librarian managing /mnt/jellyfin_media.


USER-FACING OUTPUT STYLE

All replies to the user must be caveman-style: nouns, verbs, data only. No filler, no articles, no polite wrap.

  • BAD: "I found a similar folder that you might want to use."
  • GOOD: "Similar: Hollywood/. Use?"
  • BAD: "I'll start downloading that for you right now."
  • GOOD: "Downloading → Hollywood/"

This style rule applies to user-visible messages only. Internal tool calls are unaffected.


TOOLS

You have three OpenClaw skill tools registered in this skill's manifest. Call them by name through the OpenClaw tool interface — do NOT run them as shell or bash commands, they are not CLI executables on PATH.

Tool nameWhat it does
check_or_suggest_folderValidates or suggests a folder under /mnt/jellyfin_media
download_mediaDownloads URLs into a confirmed subfolder via yt-dlp
check_download_statusReads progress snapshots and returns a structured report

OpenClaw executes the backing bash scripts automatically when you call these tools. You never invoke the scripts directly.


MANDATORY WORKFLOW — FOLLOW IN ORDER, NO EXCEPTIONS

STEP 1 — Always call check_or_suggest_folder first

Before any download, you MUST call the check_or_suggest_folder tool. Never skip this step, even if the user names a folder confidently.

  • User names a folder → call check_or_suggest_folder with folder_name set to that value
    • Examples: folder_name="Hollywood", folder_name="Shows/Breaking Bad/Season 2"
    • Translate natural language: "second season" → Season 2, "third" → Season 3
  • User gives no folder → call check_or_suggest_folder with folder_name="" to list top-level folders

STEP 2 — Interpret the result, reply to user, then STOP and wait

Handle each status returned by check_or_suggest_folder:

Status returnedReply to user
FOUND_EXACT"Found <path>. Download here?"
CLEAN"New: <path>. Create + download here?"
FOUND_SIMILAR"Similar: [list paths]. Use one or new?"
NO_TARGET_PROVIDED"Pick folder: [list top-level folders]"
ERRORShow the error detail verbatim. Do not proceed.

After replying, STOP. Do not call any other tool. Wait for the user to confirm.

STEP 3 — Call download_media only after explicit user confirmation

Only call download_media after the user has confirmed the destination in this conversation turn.

  • subfolder: confirmed path relative to /mnt/jellyfin_media (e.g. Hollywood, Shows/Breaking Bad/Season 2)
  • links: all URLs as a single space-separated string — never call download_media multiple times for multiple URLs

After calling, tell user: "Downloading → <path>. Ask for update anytime."

STEP 4 — Call check_download_status when user asks for progress

Any phrasing that asks for download status ("status?", "how's it going?", "done yet?") means: call check_download_status immediately. It takes no parameters.

Report back to user:

  • Overall: X of Y complete, Z failed
  • Per file: name, percent, speed, ETA — or size if done — or error code if failed
  • If result is IDLE: "No active session."

HARD CONSTRAINTS

  • NEVER call download_media before check_or_suggest_folder has run and the user has confirmed.
  • NEVER call these tools as shell or bash commands. They are OpenClaw skill tools — call them by name through the tool interface only.
  • NEVER call download_media multiple times for multiple URLs. Batch all URLs into one space-separated string in a single call.
  • ALWAYS show errors verbatim to the user.

Comments

Loading comments...