LibTV API Skills

agent-im 会话技能 - 通过 OpenAPI 创建会话、发送生图/生视频等消息,并查询会话进展。当用户需要生图、生视频或查询当前会话消息时激活此技能。

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 17 · 0 current installs · 0 all-time installs
byFrank (Haofan) Wang@haofanwang
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
技能名/描述(通过 OpenAPI 创建会话、发送生图/生视频并查询进度)与实际文件一致。所需项目仅为 python3 和 LIBTV_ACCESS_KEY,均合理且与功能直接相关。
Instruction Scope
SKILL.md 指示运行脚本、设置 LIBTV_ACCESS_KEY,并可选覆盖 IM 主机(OPENAPI_IM_BASE 或 IM_BASE_URL)。脚本仅执行 HTTP 请求并打印 JSON,不访问其他系统文件或凭据。
Install Mechanism
无安装脚本或外部二进制下载,脚本为纯 Python 标准库实现。风险较低(无需写盘或执行来自不明远端的二进制)。
Credentials
仅要求 LIBTV_ACCESS_KEY(已声明为 primaryEnv),与功能相符。提示:可选环境变量 OPENAPI_IM_BASE / IM_BASE_URL 可重定向请求到其它主机——这是合理的可配置性,但用户应确认这些环境变量不会被设置为不受信任的地址。
Persistence & Privilege
不要求常驻(always: false),也不修改其他技能或系统配置。脚本只在被调用时运行。
Assessment
这是一个内部一致的技能:它会把你设置的 LIBTV_ACCESS_KEY 放到 HTTP Authorization: Bearer <key> 头并发送到 IM_BASE(默认 https://im.liblib.tv)。在安装前请确认: - 你信任接收方(im.liblib.tv 或你显式设置的 OPENAPI_IM_BASE/IM_BASE_URL)。 - 不要在不可信环境下暴露或复用该 access key;如泄露请立即撤销/更换。 - 代码中有一处重复定义的 change_project 函数(代码质量问题,但不是安全问题)。 总体上该技能看起来与其声称用途一致,没有发现不成比例的权限或隐藏外联。

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

Current versionv1.0.0
Download zip
latestvk97dx9a1jdg4pwjrtar2txgpad831gnm

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

💬 Clawdis
Binspython3
EnvLIBTV_ACCESS_KEY
Primary envLIBTV_ACCESS_KEY

SKILL.md

agent-im 会话(生图 / 生视频)

通过 agent-im 的 OpenAPI 创建会话、发送消息(生图、生视频等),并查询会话消息进展。

功能

  1. 创建会话 / 发消息 - 创建新会话或向已有会话发送一条消息(如「生一个动漫视频」)
  2. 查询会话进展 - 根据 sessionId 拉取该会话的消息列表,用于轮询生图/生视频结果
  3. 切换项目 - 将当前 accessKey 绑定的项目切换到新项目,后续 create_session 将使用新 projectUuid

前置要求

export LIBTV_ACCESS_KEY="your-access-key"

可选:OPENAPI_IM_BASEIM_BASE_URL,默认 https://im.liblib.tv

无需安装额外依赖,仅使用 Python 标准库。

使用方法

1. 创建会话 / 发送消息

# 创建新会话并发送「生一个动漫视频」
python3 {baseDir}/scripts/create_session.py "生一个动漫视频"

# 向已有会话发送消息
python3 {baseDir}/scripts/create_session.py "再生成一张风景图" --session-id SESSION_ID

# 只创建/绑定会话,不发消息
python3 {baseDir}/scripts/create_session.py

2. 查询会话进展

# 查询会话消息列表
python3 {baseDir}/scripts/query_session.py SESSION_ID

# 增量拉取(只返回 seq 大于 N 的消息)
python3 {baseDir}/scripts/query_session.py SESSION_ID --after-seq 5

# 附带项目地址(传入 create_session 返回的 projectUuid,结果中带 projectUrl)
python3 {baseDir}/scripts/query_session.py SESSION_ID --project-id PROJECT_UUID

3. 切换项目

# 切换当前 accessKey 绑定的项目(后续创建会话将使用新项目)
python3 {baseDir}/scripts/change_project.py

输出格式

create_session 返回:

{
  "projectUuid": "aa3ba04c5044477cb7a00a9e5bf3b4d0",
  "sessionId": "90f05e0c-...",
  "projectUrl": "https://www.liblib.tv/canvas?projectId=aa3ba04c5044477cb7a00a9e5bf3b4d0"
}

query_session 返回:

{
  "messages": [
    {"id": "msg-xxx", "role": "user", "content": "生一个动漫视频"},
    {"id": "msg-yyy", "role": "assistant", "content": "..."}
  ],
  "projectUrl": "https://www.liblib.tv/canvas?projectId=..."
}

projectUrl 仅在传入 --project-id 时存在)

change_project 返回:

{
  "projectUuid": "新项目UUID",
  "projectUrl": "https://www.liblib.tv/canvas?projectId=新项目UUID"
}

最终向用户展示时(OpenClaw)

  • 视频地址:来自 query_session 返回的 messages 中 assistant 消息的 content 或结果里的视频/图片 URL,即「返回的结果」。
  • 项目地址:使用 create_session 返回的 projectUrl,或自行拼接 https://www.liblib.tv/canvas?projectId= + projectUuid。查询进展时若传入 --project-id PROJECT_UUIDquery_session 会直接返回 projectUrl,便于一并展示。

建议在任务完成或用户询问进展时,同时给出:视频/图片结果链接 + 项目画布链接(projectUrl)

注意事项

  • 鉴权方式为请求头 Authorization: Bearer <LIBTV_ACCESS_KEY>
  • 创建会话时若不传 message,仅创建/绑定会话,不会调用 SendMessage
  • 查询会话时可用 --after-seq 做增量拉取,便于轮询新消息(含 assistant 回复与生图/生视频结果)
  • 项目画布地址固定为:https://www.liblib.tv/canvas?projectId= + projectUuid
  • 切换项目后,Redis 缓存会更新,下次 create_session 将使用新的 projectUuid

Files

5 total
Select a file
Select a file to preview.

Comments

Loading comments…