video_action_recognition

video_action_recognition is a skill for Claude Code, Codex from fdueblab/Micro-Agent. It costs 0 tokens per session (1,769 once invoked), scanned A, original, MIT.

Technical guidance for recognizing human actions in video without training a new machine-learning model or using an LLM. It describes a pipeline that samples video frames, estimates body poses, measures movement, and assigns labels with rules.

In plain words
What is it for?
Use it to download videos, extract frames, track body keypoints, calculate movement features, and classify actions with a rule-based program.
Why use it?
It provides a repeatable way to classify actions from video when a trained model is not available or is not required.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to download videos, extract frames, track body keypoints, calculate movement features, and classify actions with a rule-based program.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/fdueblab/micro-agent/video_action_recognition
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add fdueblab/Micro-Agent --skill video_action_recognition
Clone the repo
git clone --depth 1 https://github.com/fdueblab/Micro-Agent

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for video_action_recognition

README.md
[![agentmods](https://agentmods.dev/badge/skills/fdueblab/micro-agent/video_action_recognition/github.svg)](https://agentmods.dev/skills/fdueblab/micro-agent/video_action_recognition)
Your own site
<a href="https://agentmods.dev/skills/fdueblab/micro-agent/video_action_recognition"><img src="https://agentmods.dev/badge/skills/fdueblab/micro-agent/video_action_recognition/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for video_action_recognition

Your own site · 80×15
<a href="https://agentmods.dev/skills/fdueblab/micro-agent/video_action_recognition"><img src="https://agentmods.dev/badge/skills/fdueblab/micro-agent/video_action_recognition.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,769 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.01769
Opus 5 $0.00000 $0.00885
Sonnet 5 $0.00000 $0.00354
Haiku 4.5 $0.00000 $0.00177

Measured 9d ago against content hash d120d6176c0f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

video_action_recognition scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

subprocess.run(cmd, check=True, capture_output=True, text=True)
workspace/skills/video_action_recognition/SKILL.md · 185 lines

How it starts

The opening of the file, as written. The whole thing — 185 lines — stays where its author put it; the contents beside it link to each section on GitHub.

视频动作识别技术指导

本技能为基于视频的人体动作识别算法提供技术规范与实现指导。 适用于需要从视频中检测和分类人体动作、且不依赖 LLM 或模型训练的场景。

技术路线总览

对于不需要训练的视频动作分类任务,推荐以下流水线:

视频获取 → 帧采样 → 人体姿态估计(预训练) → 关键点轨迹提取 → 运动学特征计算 → 规则分类器 → 输出标签

一、视频获取与预处理

1.1 从 YouTube 下载视频

使用 yt-dlpyoutube-dl 的活跃维护分支):

import subprocess, os

def download_video(url: str, output_dir: str = "videos") -> str:
    os.makedirs(output_dir, exist_ok=True)
    output_template = os.path.join(output_dir, "%(id)s.%(ext)s")
    cmd = [
        "yt-dlp",
        "-f", "bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]/best",
        "--merge-output-format", "mp4",
        "-o", output_template,
        url,
    ]
    subprocess.run(cmd, check=True, capture_output=True, text=True)
    video_id = url.split("v=")[-1].split("&")[0]
    return os.path.join(output_dir, f"{video_id}.mp4")

依赖:pip install yt-dlp

1.2 帧采样策略

  • 建议采样率:每秒 5-10 帧(fps=5~10)即可满足动作识别需求
  • 对于短视频(<60s),可使用均匀采样(如每隔 N 帧取 1 帧)
  • 对于长视频,可先做运动检测,只对有运动的片段进行分析
import cv2

def extract_frames(video_path: str, sample_fps: int = 5) -> list:
    cap = cv2.VideoCapture(video_path)
    original_fps = cap.get(cv2.CAP_PROP_FPS)
    frame_interval = max(1, int(original_fps / sample_fps))
    frames = []
    idx = 0
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        if idx % frame_interval == 0:
            frames.append(frame)
        idx += 1
    cap.release()
    return frames

二、人体姿态估计(MediaPipe Pose)

2.1 基本用法

MediaPipe Pose 提供 33 个人体关键点,无需训练,直接推理:

import mediapipe as mp
import numpy as np

mp_pose = mp.solutions.pose

def detect_pose_sequence(frames: list) -> list:
    pose = mp_pose.Pose(
        static_image_mode=False,
        model_complexity=1,
        min_detection_confidence=0.5,
        min_tracking_confidence=0.5,
    )
    keypoints_sequence = []
    for frame in frames:
        rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        results = pose.process(rgb)
        if results.pose_landmarks:
            kps = np.array([
                [lm.x, lm.y, lm.z, lm.visibility]
                for lm in results.pose_landmarks.landmark
            ])
            keypoints_sequence.append(kps)
        else:
            keypoints_sequence.append(None)
    pose.close()
    return keypoints_sequence

Read the full file on GitHub · 185 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 185 lines · 0 tokens per session scan A d120d6176c0f

Subscribe to this mod's changes

video_action_recognition is a skill published in the GitHub repository fdueblab/Micro-Agent (99 stars, last pushed 27d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,769 tokens. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

saelens

Train sparse autoencoders to interpret model features.

NousResearch/hermes-agent · 14 tokens

batch-processing-clinical-text

Run large-scale batch NER, PII extraction, or de-identification over many clinical notes on-device with OpenMed, with sharding, checkpointing, resumability, and append-only JSONL output. Use when the user needs to process a corpus or folder of notes, de-identify a dataset, run NER over thousands of documents, build a…

maziyarpanahi/openmed · 161 tokens

exporting-to-fhir

Convert OpenMed NER output (entities from openmed.analyzetext) into FHIR R4 resources — Condition, MedicationStatement, Observation — using OpenMed's built-in FHIR R4 export helpers in openmed.clinical.exporters. Covers the verified CodeableConcept builder (coding, codeableconcept, systemuri), deterministic fullUrl…

maziyarpanahi/openmed · 163 tokens

choosing-openmed-models

Discover and pick the right OpenMed model for a clinical or biomedical task, domain, or language. Use when the user asks which OpenMed model to use, wants to list model categories, find a Disease vs Oncology vs Privacy/PII model, get a PII model for a specific language, search models by size or task, or inspect a…

maziyarpanahi/openmed · 134 tokens

extracting-clinical-entities

Run clinical and biomedical named-entity recognition on medical text with OpenMed's analyzetext. Use when the user wants to extract diseases, drugs, anatomy, genes, or other biomedical entities from notes; needs NER output as dict/json/html/csv; wants to filter by confidence, group entities, toggle sentence detection…

maziyarpanahi/openmed · 118 tokens

loading-openmed-models

Load OpenMed clinical/biomedical NER models from the Hugging Face Hub or a local path and reuse them efficiently across calls. Use when the user wants to load an OpenMed model, control the model cache, run fully offline after a one-time download, reuse a ModelLoader to avoid reloading, set a cachedir or device, or…

maziyarpanahi/openmed · 118 tokens