{
  "spec_version": "0.2",
  "namespace": "mona_kk",
  "app_name": "youtube-account-list",
  "app_id": "app_ce761c0d8e89",
  "status": "published",
  "open_to": "public",
  "accepting_runs": true,
  "source_locale": "zh-CN",
  "identity": {
    "app_name": "youtube-account-list",
    "name": "YouTube 账号列表采集",
    "summary": "给一个 YouTube 账号或频道标识，返回其公开内容及关联账号资料",
    "type": "data",
    "version": "0.1.0"
  },
  "discovery": {
    "capability": "data-acquisition",
    "keywords": [
      "YouTube",
      "账号",
      "频道",
      "视频",
      "公开内容"
    ],
    "boundary": "单次任务处理 1 个 YouTube 账号或频道标识，最多采集 1000 条公开内容记录。"
  },
  "input": {
    "schema": {
      "type": "object",
      "properties": {
        "account": {
          "type": "string",
          "title": "账号或频道标识",
          "description": "要采集的 YouTube 账号名或频道标识，每次任务只处理一个；长度不得超过 512 个字符",
          "prefill": "ulanzi"
        },
        "crawl_num": {
          "type": "integer",
          "title": "采集数量",
          "description": "本次任务最多采集多少条公开内容记录，取值 1–1000",
          "minimum": 1,
          "maximum": 1000,
          "prefill": 1
        }
      },
      "required": [
        "account",
        "crawl_num"
      ],
      "additionalProperties": false
    }
  },
  "output": {
    "id_field": "content_id",
    "schema": {
      "type": "object",
      "properties": {
        "account_badges": {
          "type": "string",
          "title": "账号徽章",
          "description": "账号公开徽章列表的原始文本"
        },
        "account_display_id": {
          "type": "string",
          "title": "展示标识",
          "description": "账号对外展示的频道标识或短名称"
        },
        "account_id": {
          "type": "string",
          "title": "账号编号",
          "description": "YouTube 账号或频道的公开标识"
        },
        "account_name": {
          "type": "string",
          "title": "账号名称",
          "description": "账号对外展示的名称"
        },
        "article_type": {
          "type": "string",
          "title": "内容类型",
          "description": "公开内容的类型"
        },
        "biz_id": {
          "type": "string",
          "title": "业务编号",
          "description": "上游记录的业务标识"
        },
        "channel_description_links": {
          "type": "string",
          "title": "频道链接",
          "description": "频道简介中公开链接列表的原始文本"
        },
        "channel_thumbnails": {
          "type": "string",
          "title": "频道头像",
          "description": "频道公开头像列表的原始文本"
        },
        "co_creator_info": {
          "type": "string",
          "title": "共创信息",
          "description": "内容共同创作者信息的原始文本"
        },
        "content_badges": {
          "type": "string",
          "title": "内容徽章",
          "description": "公开内容徽章列表的原始文本"
        },
        "content_id": {
          "type": "string",
          "title": "内容编号",
          "description": "YouTube 公开内容的唯一标识"
        },
        "content_rich_thumbnails": {
          "type": "string",
          "title": "内容丰富缩略图",
          "description": "内容丰富缩略图列表的原始文本"
        },
        "content_status": {
          "type": "string",
          "title": "内容状态",
          "description": "公开内容在采集时的状态"
        },
        "content_text": {
          "type": "string",
          "title": "内容正文",
          "description": "公开内容附带的正文文本"
        },
        "content_title": {
          "type": "string",
          "title": "内容标题",
          "description": "公开内容的标题"
        },
        "content_url": {
          "type": "string",
          "title": "内容链接",
          "description": "公开内容的访问链接"
        },
        "cover_images": {
          "type": "string",
          "title": "封面图片",
          "description": "内容封面图片列表的原始文本"
        },
        "crawl_time": {
          "type": "string",
          "title": "采集时间",
          "description": "本条公开内容被采集的时间"
        },
        "is_collaboration": {
          "type": "boolean",
          "title": "是否共创",
          "description": "该内容是否为共同创作内容"
        },
        "is_verified": {
          "type": "boolean",
          "title": "是否认证",
          "description": "关联账号是否带有 YouTube 认证标识"
        },
        "is_verified_artist": {
          "type": "boolean",
          "title": "艺术家认证",
          "description": "关联账号是否为 YouTube 官方认证艺术家"
        },
        "keyword": {
          "type": "string",
          "title": "采集关键词",
          "description": "本条记录对应的采集关键词"
        },
        "keyword_type": {
          "type": "string",
          "title": "关键词类型",
          "description": "采集关键词的类型"
        },
        "publish_time": {
          "type": "string",
          "title": "发布时间",
          "description": "公开内容的标准化发布时间文本"
        },
        "raw_duration": {
          "type": "string",
          "title": "原始时长",
          "description": "公开内容展示的原始时长文本"
        },
        "raw_publish_time": {
          "type": "string",
          "title": "原始发布时间",
          "description": "公开内容展示的原始发布时间文本"
        },
        "source_item": {
          "type": "string",
          "title": "来源标识",
          "description": "本条记录对应的原始账号或频道标识"
        },
        "no_data": {
          "type": "boolean",
          "title": "是否无数据",
          "description": "该来源标识是否没有采集到公开内容"
        },
        "video_duration": {
          "type": "string",
          "title": "视频时长值",
          "description": "视频时长的原始数值文本"
        },
        "view_count": {
          "type": "string",
          "title": "观看数",
          "description": "公开内容观看次数的数值文本"
        },
        "view_count_text": {
          "type": "string",
          "title": "观看数文本",
          "description": "公开页面展示的观看次数文本"
        }
      },
      "required": [],
      "additionalProperties": false
    }
  },
  "execution": {
    "mode": "async",
    "timeout_seconds": 1860,
    "cancel_notify": false,
    "recovers_partial_on_cancel": false
  },
  "knowledge": {
    "when_to_use": [
      "需要按账号名或频道标识获取 YouTube 公开内容列表时",
      "需要整理视频标题、发布时间、观看数与关联账号资料时"
    ],
    "when_not_to_use": [
      "需要私密内容、账号后台数据或登录后可见信息时——本 App 仅覆盖公开数据",
      "需要视频评论、字幕或音频转写时——本 App 不提供这些明细"
    ],
    "failure_handling": [
      "返回空结果通常表示标识无匹配账号或账号没有可见公开内容，可核对账号名或频道标识后重试",
      "任务提交结果不明时不要连续重复提交，避免产生重复任务",
      "鉴权失败属不可重试错误，需先检查执行环境中的 API Key 配置"
    ]
  },
  "pricing": {
    "events": [
      {
        "event": "start",
        "label": "提交一次公开内容采集",
        "unit_price": 0.001,
        "qty_from": "",
        "unit_size": null
      },
      {
        "event": "record",
        "label": "返回一条公开内容记录",
        "unit_price": 0.015,
        "qty_from": "",
        "unit_size": 30
      }
    ]
  },
  "examples": [
    {
      "id": "basic",
      "goal": "采集 Ulanzi 的 YouTube 公开内容列表",
      "input": {
        "account": "ulanzi",
        "crawl_num": 1
      },
      "use_as_test": true
    }
  ],
  "published_at": "2026-08-31T03:19:26.446461+00:00",
  "publisher": {
    "id": "mona_kk",
    "name": "mona_kk"
  },
  "maintainers": [
    {
      "id": "mona_kk",
      "name": "mona_kk"
    }
  ],
  "trust_tier": "community",
  "readme": "按账号名或频道标识获取 YouTube 公开内容列表，并把视频信息与关联账号资料整理成可分析的记录。结果以内容编号为主键，适合持续采集后的去重、对比和归档。\n\n除标题、链接和发布时间外，每条记录还保留观看数、视频时长、内容状态、共创标识、账号认证状态及采集来源。\n\n## 数据说明\n\n数据来自 YouTube 公开可见的账号、频道与内容页面，按接口定义默认以发布时间倒序返回，并按内容编号去重。发布时间、观看数、内容状态和账号资料均为采集时快照；接口文档未声明发布时间文本的时区，跨地区分析前应统一口径。观看数同时提供数值文本与页面展示文本，图片、徽章和链接列表保留上游原始文本。私密、受限、已删除或无法公开访问的内容不在结果中。\n\n## 结果长什么样\n\n每条记录代表一个去重后的 YouTube 公开内容：\n\n| 内容编号 | 内容标题 | 账号名称 | 发布时间 | 观看数 | 视频时长 |\n|---|---|---|---|---|---|\n| 8L98e7c56sQ | NEW RELEASE! Ulanzi VF01 Waist Level Viewfinder | Ulanzi | 2025-10-31T09:44:43 | 18000 | 0:19 |\n| ca9OIFNiUU8 | Short Film Camera Rig Setup | Ulanzi | 2026-07-28T14:06:33 | 707 | 0:37 |\n\n此外还会返回内容链接、正文、封面、徽章、内容状态、共创信息、账号编号、认证状态、关键词、原始发布时间和采集时间等字段。\n\n## 应用场景\n\n- 做内容表现分析时，结合「发布时间」「观看数」「视频时长」比较不同内容的传播表现。\n- 做账号内容盘点时，按「账号名称」「账号编号」聚合内容，并用认证字段补充账号背景。\n- 做内容资产巡检时，比对「内容状态」「内容链接」「采集时间」，发现公开状态变化。\n- 做共创内容筛选时，使用「是否共创」「共创信息」定位合作内容，再按内容编号关联内部台账。\n",
  "favorite_count": 0,
  "labels": {
    "industry": [
      {
        "slug": "social_media",
        "label": "社交媒体"
      }
    ],
    "platform": [
      {
        "slug": "youtube",
        "label": "YouTube"
      }
    ],
    "content": [
      {
        "slug": "video",
        "label": "视频"
      }
    ]
  },
  "display_locale": "zh-CN",
  "translation_origin": null,
  "version": "0.1.0"
}