{
  "schemaVersion": 1,
  "is_test_data": true,
  "description": "CStudy 视频元数据测试种子（明确标记为测试数据，不可播放）：BV 号为虚构示例，仅用于离线展示与开发调试。真实视频由服务端 BilibiliProvider 返回（is_test_data=false）。客户端对 is_test_data=true 的条目一律按'示例不可播放'呈现。",
  "videos": [
    {
      "id": "v001",
      "title": "【C语言零基础】01 开发环境搭建与第一个程序",
      "platform": "bilibili",
      "author": "C语言小课堂",
      "duration_seconds": 780,
      "description": "手把手教你安装编译器、配置环境，写出第一个 Hello World 程序。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0001",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0001",
      "keywords": ["开发环境", "第一个程序", "Hello World"]
    },
    {
      "id": "v002",
      "title": "【C语言零基础】02 变量与数据类型详解",
      "platform": "bilibili",
      "author": "C语言小课堂",
      "duration_seconds": 960,
      "description": "int、double、char 三种类型，变量声明与初始化。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0002",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0002",
      "keywords": ["变量", "数据类型", "int"]
    },
    {
      "id": "v003",
      "title": "【C语言】scanf 输入输出完全指南",
      "platform": "bilibili",
      "author": "编程老王",
      "duration_seconds": 620,
      "description": "scanf 的格式符、取地址符与常见坑。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0003",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0003",
      "keywords": ["输入输出", "scanf", "printf"]
    },
    {
      "id": "v004",
      "title": "C 语言运算符：取余与整数除法陷阱",
      "platform": "bilibili",
      "author": "编程老王",
      "duration_seconds": 540,
      "description": "为什么 7/2=3？取余运算与浮点转换。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0004",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0004",
      "keywords": ["运算符", "取余", "除法"]
    },
    {
      "id": "v005",
      "title": "【C语言】if else 条件判断入门",
      "platform": "bilibili",
      "author": "C语言小课堂",
      "duration_seconds": 830,
      "description": "if/else if/else 与逻辑运算符，附实战练习。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0005",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0005",
      "keywords": ["条件判断", "if", "逻辑运算符"]
    },
    {
      "id": "v006",
      "title": "【C语言】for 循环从零到精通",
      "platform": "bilibili",
      "author": "CodeAcademy 中文",
      "duration_seconds": 1100,
      "description": "for/while/do-while 三种循环对比与嵌套循环。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0006",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0006",
      "keywords": ["循环", "for", "while"]
    },
    {
      "id": "v007",
      "title": "C 语言数组：一维与二维数组",
      "platform": "bilibili",
      "author": "CodeAcademy 中文",
      "duration_seconds": 950,
      "description": "数组声明、遍历、越界问题。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0007",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0007",
      "keywords": ["数组", "遍历"]
    },
    {
      "id": "v008",
      "title": "C 语言字符串：char 数组与库函数",
      "platform": "bilibili",
      "author": "编程老王",
      "duration_seconds": 880,
      "description": "strlen、strcpy、strcmp 等字符串函数。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0008",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0008",
      "keywords": ["字符串", "char", "strlen"]
    },
    {
      "id": "v009",
      "title": "【C语言】函数：定义、参数与返回值",
      "platform": "bilibili",
      "author": "C语言小课堂",
      "duration_seconds": 1020,
      "description": "函数的作用、声明与调用，值传递与引用传递。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0009",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0009",
      "keywords": ["函数", "参数", "返回值"]
    },
    {
      "id": "v010",
      "title": "C 语言指针入门：地址与解引用",
      "platform": "bilibili",
      "author": "CodeAcademy 中文",
      "duration_seconds": 1250,
      "description": "指针变量、& 与 *、指针与数组的关系。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0010",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0010",
      "keywords": ["指针", "地址", "解引用"]
    },
    {
      "id": "v011",
      "title": "C++ 面向对象：类与构造函数（预告）",
      "platform": "bilibili",
      "author": "C++ 进阶之路",
      "duration_seconds": 700,
      "description": "C++ 阶段预告：类、构造函数与析构函数。",
      "cover_url": null,
      "page_url": "https://www.bilibili.com/video/BV1CSTUDY0011",
      "embeddable": true,
      "embed_url": "//player.bilibili.com/player.html?bvid=BV1CSTUDY0011",
      "keywords": ["C++", "类", "构造函数"]
    },
    {
      "id": "v012",
      "title": "【外部平台示例】深入理解编译原理（不允许嵌入）",
      "platform": "youtube",
      "author": "Compiler Talks",
      "duration_seconds": 2400,
      "description": "示例：该平台视频不允许嵌入客户端，仅支持外部浏览器打开。",
      "cover_url": null,
      "page_url": "https://www.youtube.com/watch?v=EXAMPLE012",
      "embeddable": false,
      "embed_url": null,
      "keywords": ["编译原理", "链接器"]
    }
  ]
}
