← 返回 Skills 市场
namle-aioz

AIOZ Stream Toolkit

作者 namle-aioz · GitHub ↗ · v1.0.9 · MIT-0
cross-platform ⚠ suspicious
146
总下载
0
收藏
0
当前安装
10
版本数
在 OpenClaw 中安装
/install aioz-stream-toolkit
功能描述
Respond to user requests for AIOZ Stream API. Use provided scripts to upload videos, fetch analytics, manage media, and create livestreams.
使用说明 (SKILL.md)

AIOZ Stream Operations

Interact with AIOZ Stream API quickly with API key authentication. A suite of integrated bash scripts is provided to automatically call REST APIs.

When to use this skill

  • User wants to upload or create a video on AIOZ Stream
  • User mentions "upload video", "create video", "aioz stream video"
  • User wants to query analytics, livestream keys, or account balances
  • User wants to get an HLS/MP4 streaming link for their video
  • User wants to search/list media or find a video by name

Authentication

This skill uses API key authentication via environment variables:

  • STREAM_PUBLIC_KEY: Your AIOZ Stream public key (provided by the platform)
  • STREAM_SECRET_KEY: Your AIOZ Stream secret key (provided by the platform)

Credential-safe policy:

  • Prefer credentials from secure environment injection.
  • If missing, ask the user for credentials and set them as temporary environment variables.
  • Never hardcode keys in command examples, logs, or responses.
  • Avoid inline one-off commands that contain raw secrets.

If credentials are not present in the shell session, set them once before running scripts:

export STREAM_PUBLIC_KEY="YOUR_STREAM_PUBLIC_KEY"
export STREAM_SECRET_KEY="YOUR_STREAM_SECRET_KEY"

Header mapping used by scripts:

  • STREAM_PUBLIC_KEY -> stream-public-key header
  • STREAM_SECRET_KEY -> stream-secret-key header

This keeps credentials out of repeated command history and avoids accidental exposure.

Usage Options (Available Scripts)

When the user asks for a feature, use one of the bash scripts located in the scripts/ directory.

Script Routing Map (for Clawbot)

  • Upload local file to video: ./scripts/upload_video_file.sh FILE_PATH "TITLE"
  • Get media list (GET with optional query params): ./scripts/get_media_list.sh [SEARCH] [PAGE]
  • Get media list via POST body (search/page): ./scripts/get_total_media.sh [SEARCH] [PAGE]
  • Get all media via POST {}: ./scripts/get_video_list.sh
  • Search media by name via POST body: ./scripts/get_video_url_by_name.sh "VIDEO_NAME"
  • Create livestream key: ./scripts/create_livestream_key.sh "KEY_NAME"
  • Get account/user info and balance: ./scripts/get_balance.sh
  • Get usage data (fixed interval=hour): ./scripts/get_usage_data.sh FROM(dd/mm/yyyy) TO(dd/mm/yyyy)
  • Get aggregate analytics (watch_time + view_count): ./scripts/get_aggregate_metric.sh TYPE FROM(dd/mm/yyyy) TO(dd/mm/yyyy)
  • Get breakdown analytics (device/os/country/browser): ./scripts/get_breakdown_metric.sh TYPE FROM(dd/mm/yyyy) TO(dd/mm/yyyy)
  • Combined aggregate + breakdown report: ./scripts/analytic_data.sh TYPE FROM(dd/mm/yyyy) TO(dd/mm/yyyy)

1. Upload Video (Credential-Safe Default Flow)

Use this script to automatically create a video object, upload the file, and complete the flow:

./scripts/upload_video_file.sh "/path/to/video.mp4" "Video Title"

Actual behavior in script:

  • Accepts local file path only.
  • Validates video by extension (and by MIME where possible).
  • File must exist on the local system.

2. Analytics & Usage

To get metrics or account usage:

  • Usage Data: ./scripts/get_usage_data.sh FROM(dd/mm/yyyy) TO(dd/mm/yyyy)
    • Calls GET /analytics/data?from=...&to=...&interval=hour
    • FROM/TO must be dd/mm/yyyy format (scripts convert to Unix timestamp)
  • Aggregate Metrics: ./scripts/get_aggregate_metric.sh TYPE FROM(dd/mm/yyyy) TO(dd/mm/yyyy)
    • Returns: Watch time sum + View count for selected media type
    • TYPE must be video or audio
  • Breakdown Metrics: ./scripts/get_breakdown_metric.sh TYPE FROM(dd/mm/yyyy) TO(dd/mm/yyyy)
    • Returns: Device type, Operating system, Country, Browser breakdowns (with total count and data array)
    • TYPE must be video or audio
  • All-in-one Analytics: ./scripts/analytic_data.sh TYPE FROM(dd/mm/yyyy) TO(dd/mm/yyyy)
    • Returns: Combined aggregate metrics + all breakdown metrics in one call
    • TYPE must be video or audio

Date format notes:

  • FROM and TO must be dd/mm/yyyy (scripts convert to Unix timestamp internally)

3. Media & Livestream Management

To search existing media, get balance, or create keys:

  • List Media: ./scripts/get_media_list.sh [SEARCH] [PAGE]
  • Total Media: ./scripts/get_total_media.sh [SEARCH] [PAGE]
  • Video List: ./scripts/get_video_list.sh
  • Search Video URL: ./scripts/get_video_url_by_name.sh "Video Name"
  • Livestream Key: ./scripts/create_livestream_key.sh "Key Name"
  • Balance: ./scripts/get_balance.sh

Notes:

  • get_video_list.sh currently returns all media (POST /media with empty body), not strictly video-only filtering.
  • get_video_url_by_name.sh currently returns search results JSON; it does not extract one URL field automatically.

Full Upload Flow (Common Operational Path)

For a typical upload lifecycle, use this sequence:

  1. Create media object
  2. Upload media part
  3. Complete upload
  4. Fetch media detail
  5. Print status and URLs (hls_player_url, hls_url, mp4_url)

If using manual curl, the core upload flow is the first 3 steps below.

Step 1: Create Video Object

curl -s -X POST 'https://api.aiozstream.network/api/media/create' \
  -H "stream-public-key: $STREAM_PUBLIC_KEY" \
  -H "stream-secret-key: $STREAM_SECRET_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "VIDEO_TITLE",
    "type": "video"
  }'

Response: extract data.id as VIDEO_ID for the next steps.

Step 2: Upload File Part

Upload the actual video file binary to the created video object. First, get the file size and compute the MD5 hash:

# Get file size (cross-platform compatible)
FILE_SIZE=$(stat -f%z /path/to/video.mp4 2>/dev/null || stat -c%s /path/to/video.mp4)
END_POS=$((FILE_SIZE - 1))

# Compute MD5 hash
HASH=$(md5sum /path/to/video.mp4 | awk '{print $1}')

Then upload via multipart form-data with the Content-Range header:

curl -s -X POST "https://api.aiozstream.network/api/media/VIDEO_ID/part" \
  -H "stream-public-key: $STREAM_PUBLIC_KEY" \
  -H "stream-secret-key: $STREAM_SECRET_KEY" \
  -H "Content-Range: bytes 0-$END_POS/$FILE_SIZE" \
  -F "file=@/path/to/video.mp4" \
  -F "index=0" \
  -F "hash=$HASH"

Important: The Content-Range header is required for the upload to succeed. Format: bytes {start}-{end}/{total_size}. Form-data fields:

  • file: the video file binary (use @/path/to/video.mp4)
  • index: 0 (for single-part upload)
  • hash: MD5 hash of the file part

Step 3: Complete Upload

After the file part is uploaded, call the complete endpoint to finalize:

curl -s -X GET "https://api.aiozstream.network/api/media/VIDEO_ID/complete" \
  -H 'accept: application/json' \
  -H "stream-public-key: $STREAM_PUBLIC_KEY" \
  -H "stream-secret-key: $STREAM_SECRET_KEY"

This triggers transcoding. The upload is now considered successful.

After Upload — Get Video Link

After completing the upload, fetch the video detail to get the streaming URL:

curl -s "https://api.aiozstream.network/api/media/VIDEO_ID" \
  -H "stream-public-key: $STREAM_PUBLIC_KEY" \
  -H "stream-secret-key: $STREAM_SECRET_KEY"

Parse the response to find the HLS or MP4 URL from the assets field and return it to the user.

Custom Upload Config Reference

(Applicable if implementing custom logic via API directly)

Quality Presets (resolution field):

  • standard — Standard quality
  • good — Good quality
  • highest — Highest quality
  • lossless — Lossless quality

Streaming Formats (type field):

  • hls — HTTP Live Streaming (container: mpegts or mp4)
  • dash — Dynamic Adaptive Streaming (container: fmp4)

Response Handling

  1. Run the appropriate script from the scripts/ directory.
  2. Media/Search scripts return raw JSON: get_video_list, get_video_url_by_name, get_total_media, get_media_list
  3. Metrics scripts return structured output:
    • get_aggregate_metric.sh: Two labeled outputs (Watch Time Sum, View Count)
    • get_breakdown_metric.sh: Four labeled JSON blocks (=== device_type ===, === operator_system ===, === country ===, === browser ===)
    • analytic_data.sh: Combined aggregate + breakdown output
    • get_usage_data.sh: Raw JSON response with pretty-printed format
  4. Upload/Management scripts: upload_video_file.sh prints step-by-step status with final URLs
  5. Return useful fields explicitly (IDs, status, URLs, totals). If upload status is transcoding or URLs are empty, inform the user to check again later.

Error Handling

  • 401: Invalid API keys. Ask user to verify STREAM_PUBLIC_KEY and STREAM_SECRET_KEY.
  • Missing Parameters: Scripts validate arguments; pass exactly what they require.
  • 404: Resource not found (invalid media ID or livestream ID).
  • 500: Server error; suggest retrying.
  • Connection timeout/refused: API endpoint may be unavailable; retry and verify https://api.aiozstream.network/api/ accessibility.

Example Interaction Flow

  1. User: "Upload my video to AIOZ Stream"
  2. Ensure STREAM_PUBLIC_KEY and STREAM_SECRET_KEY exist in environment (ask user only if missing)
  3. Ask for the video file path and title
  4. Execute: ./scripts/upload_video_file.sh "FILE_PATH" "TITLE"
  5. Extract the outputted HLS/MP4 link
  6. Return the video link to the user
安全使用建议
This toolkit appears to implement the advertised AIOZ Stream actions, but before installing or running it you should: 1) Resolve the metadata mismatch — confirm whether the skill really requires STREAM_PUBLIC_KEY and STREAM_SECRET_KEY (SKILL.md and scripts do require them). 2) Prefer supplying credentials via your platform's secure secret injection rather than pasting them into an interactive shell or chat. 3) Review the upload script (upload_video_file.sh) yourself if you will upload files from a sensitive host — it reads local files and posts them to api.aiozstream.network. 4) Run the scripts in a sandbox or isolated account/keys first, and limit/rotate the API keys you provide. 5) If you see the registry claim 'no env vars required' in the UI, treat that as a red flag and ask the publisher to correct metadata before trusting the skill.
能力评估
Purpose & Capability
The name, description, SKILL.md, scripts, and reference all align: the bundle implements upload, media listing, analytics, balance, and livestream-key flows against api.aiozstream.network. Required binaries (curl, jq, md5sum, file, stat, date) are appropriate for the shell scripts. However, the top-level registry metadata provided to the scanner lists no required environment variables while SKILL.md (and the scripts) clearly require STREAM_PUBLIC_KEY and STREAM_SECRET_KEY; that mismatch is an inconsistency to resolve.
Instruction Scope
The SKILL.md and included bash scripts only reference local files (for uploads), the declared STREAM_PUBLIC_KEY/SECRET, and the documented AIOZ API endpoints. There are no hidden endpoints or attempts to read unrelated system files. The SKILL.md instructs the agent to request credentials when missing and to set temporary environment variables; that is expected for an API-key based tool but should be handled carefully to avoid credential exposure.
Install Mechanism
There is no install spec and no network downloads — the package is script-based and runs using standard system tools. This is low-risk from an installer perspective because nothing external is fetched or extracted at install time.
Credentials
The scripts legitimately need two API keys (STREAM_PUBLIC_KEY and STREAM_SECRET_KEY) to call the AIOZ Stream API, which is proportionate. The concern is that the registry-level metadata (presented above) lists 'Required env vars: none' while SKILL.md requires both keys (STREAM_PUBLIC_KEY marked as primaryCredential). That inconsistency could cause the agent to run without appropriate platform-managed secret injection and instead prompt the user to paste keys into the session, increasing risk of accidental exposure.
Persistence & Privilege
The skill is user-invocable, not forced-always, and the scripts do not modify other skills or system-wide configuration. They do not request elevated privileges or persistent presence beyond using provided environment variables at runtime.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install aioz-stream-toolkit
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /aioz-stream-toolkit 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.9
**Credential safety improvements and minor metadata changes.** - Environment variable configuration for credentials (`envVars` with descriptions) replaces `credentials` block. - Added additional binary requirements in metadata: `file`, `stat`, `date`. - Scripts no longer require user to inline secrets in command examples; recommend using `export` statements for keys. - Guidance emphasizes never exposing sensitive credentials in sample commands, logs, or responses. - Usage instructions, header mapping, and routing flows updated for better security and clarity.
v1.0.8
Version 1.0.8 of aioz-stream-toolkit - No file or documentation changes detected in this release. - Functionality, scripts, and usage remain unchanged from the previous version.
v1.0.7
Version 1.0.7 of aioz-stream-toolkit - No file changes detected in this release. - Functionality, documentation, and API usage remain unchanged.
v1.0.6
- Initial release of aioz-stream-toolkit. - Provides scripts to upload videos, fetch analytics, manage media, and create livestream keys using AIOZ Stream API. - Supports API key authentication via environment variables for security. - Includes bash scripts for uploading, listing, searching media, retrieving analytics, and getting account info. - No code or functionality changes detected in this version.
v1.0.5
aioz-stream-toolkit 1.0.5 - No file or documentation changes detected in this release. - No new features, bug fixes, or updates introduced.
v1.0.4
- Now uses environment variables for passing API credentials instead of positional script arguments for improved security. - Updated documentation to reflect the new authentication method and credential handling. - Updated script usage examples throughout to match the environment variable approach. - Added credential requirements metadata for better integration with credential management systems. - Removed redundant _meta.json file.
v1.0.3
- Initial release with 47 files added. - Provides bash scripts to upload videos, manage media, fetch analytics, and create livestreams via the AIOZ Stream API. - Upload functionality now only supports local file paths (remote URL uploads removed). - Usage documentation updated to reflect local file upload requirements. - All core API interaction flows and script routes included for video upload, analytics, media listing, and livestream management.
v1.0.2
aioz-stream-toolkit v1.0.2 - Updated documentation to clarify required date formats for analytics scripts (`FROM`/`TO` as `dd/mm/yyyy`). - Expanded descriptions of analytics scripts to include expected return fields and type requirements. - No functional or code changes; documentation updates only.
v1.0.1
Initial release. - Added all core scripts for interacting with the AIOZ Stream API: video uploads, media management, analytics, livestream key creation, and account info. - Provided detailed documentation and usage instructions for each operation. - Scripts support both local file and remote video URL uploads. - Includes error handling guidance and examples for manual API interaction. - Removed legacy or redundant references, analytic helper scripts, and internal documentation files.
v1.0.0
aioz-stream-toolkit 1.0.0 - Initial release with comprehensive toolkit for interacting with the AIOZ Stream API via bash scripts. - Supports video upload (local file or URL), livestream key creation, media listing/search, and analytics retrieval. - Requires user to provide public and secret API keys for authentication. - Script endpoints provided for workflows like uploading, querying analytics, and fetching account details. - Basic response and error handling guidance included.
元数据
Slug aioz-stream-toolkit
版本 1.0.9
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 10
常见问题

AIOZ Stream Toolkit 是什么?

Respond to user requests for AIOZ Stream API. Use provided scripts to upload videos, fetch analytics, manage media, and create livestreams. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 146 次。

如何安装 AIOZ Stream Toolkit?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install aioz-stream-toolkit」即可一键安装,无需额外配置。

AIOZ Stream Toolkit 是免费的吗?

是的,AIOZ Stream Toolkit 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

AIOZ Stream Toolkit 支持哪些平台?

AIOZ Stream Toolkit 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 AIOZ Stream Toolkit?

由 namle-aioz(@namle-aioz)开发并维护,当前版本 v1.0.9。

💬 留言讨论