视频点播结果查询

一、接口描述

1. 功能描述

基于业界领先的人工智能技术,可对视频中的画面、字幕、弹幕、语音内容进行多模态智能审核,多维度全面把控内容安全,为各内容平台保驾护航。

2. 接口数据要求:

3. 接口使用:

平台为每个API提供试用体验服务,您在AI市场选择“免费试用”规格下单后,即可开始体验业内领先的人工智能API服务。 免费试用服务具有调用量、QPS限制,如需更高性能的API服务,可以提交咨询工单,联系京东AI扩容购买。

在获得使用权限后,您可使用已经封装好的SDK/参照接口鉴权规则进行相应开发,整体流程详见 接入流程

二、请求说明

1. 接口地址 :

https://aiapi.jd.com/jdai/censor/play_search

2. 请求方式:

 post

3. 请求参数

(1)query请求参数

公共请求参数

名称 类型 必填 示例值 描述
appkey String 80d2b762ecb86593f9668526920f46c 您的appkey,可在买家中心控制台中获取
timestamp long 1541491668060 请求的时间戳,精确到毫秒,timestamp有效期5分钟
sign String 2e148773a0337a8f2200ba90d445f083 签名,根据规则MD5(sectetkey+timestamp)

(2)header请求参数

业务请求参数

名称 类型 必填 示例值 描述
Content-Type String application/json 请求头格式

(3)body请求参数

视频直播流程

由于视频时间较长,数据较多,故而采用异步任务的方式进行审核。

  1. 创建视频点播任务,业务提供审核结果callback接收地址,该接口返回task_id。
  2. 视频审核完成后,会将审核结果同步推送至callback接收地址,只推送一次。
  3. 如果不能提供callback接收地址的,可以通过主动search查询接口(本接口),进行结果查询。

业务请求参数

名称 类型 必填 示例值 描述
taskId String 'fb1e065c4c40619' 视频任务id。

4、请求代码示例

建议您使用我们提供的SDK进行调用,SDK获取及调用方式详见本页一接口描述中的3接口使用

三、返回说明

1、返回参数

(1)公共返回参数

名称 类型 示例值 描述
code string 1000 参见下方错误码-系统级错误码
charge boolean false 或 true false:不扣费, true:扣费
remainTimes long 1305 剩余调用次数;免费api:每天剩余调用次数;收费api:剩余次数;无限制时为-1
remainSeconds long 1223456 剩余调用时间(s);免费api:-1;收费api:剩余调用时间;无限制时为-1
msg string 查询成功 参见下方错误码-系统级错误码
result object {...} 查询结果

(2)业务返回参数

result参数信息

字段名 类型 释义 范例值
taskId String 任务ID号 "fb1e065c4c40619"
taskStatus Int 任务状态 6.3 任务状态码附表
taskMessage String 任务信息说明 "Task finished"
requestId String 请求ID "c5721b2b7cdb488fafb1e065c4c40619"
status Int 状态码 200为正常
message String 对状态码的具体描述 "success"
videoUrl String 透传的视频url http://jdcloud.com/6494a1d1e06b1183.mp4
videoRiskLevel Int 风险等级,0:正常,1:低风险,2:高风险 0
videoSuggestion String pass:结果正常,无需进行其余操作。review:低风险,建议进行人工审核。block:结果违规,建议直接删除或者限制公开。 pass
results Array 审核结果,根据选择的scenes,进行结果返回。错误情况下,无此字段。
+timeInSeconds Int 违规第几秒,比如第121秒,表示02:01,以数值表示 101
+mediaUrl String 审核的物料存储路径 http://jdcloud.com/6494a1d1e06b1183.jpg
+target Map 审核结果,根据创建时选择的scenes,进行结果返回。错误或未完成情况下,无此字段。
++porn Map 以鉴黄举例
+++riskLevel Int 风险等级,0:正常,1:低风险,2:高风险 0
+++suggestion String pass:结果正常,无需进行其余操作。review:低风险,建议进行人工审核。block:结果违规,建议直接删除或者限制公开。 pass
+++data Array 返回多个分类下的筛选结果
++++mainType int 一级类别 1
++++mainTypeKey String 一级类别英文名称 sexy
++++mainTypeName string 一级类别名称 涉黄
++++subType int 二级类别 105
++++subTypeKey String 二级类别英文名称 cartoon_porn
++++subTypeName string 二级类别名称 卡通涉黄
++++content string 检测出来的对应信息内容 习大大
++++score Float64 置信度, 取值范围 [0,1],分数越高可能性越大 0.95
++++location Int Array 检测框坐标,顶点宽高 [x,y,width,height]。部分算法此字段无结果,可默认为空。 [412,217,62,73]
++politics Map 敏感人物场景结果。 同鉴黄方式结果。
++terror Map 暴恐场景结果。同鉴黄方式结果。
++prohibitions Map 违禁品场景结果。同鉴黄方式结果。

2、返回示例

{
  "requestId": "c8554682-579a-6d50-0d83-58eb4576f335",
  "taskId": "3945617f-56db-81df-7092-c659dcd9eec6",
  "status": 200,
  "message": "请求成功",
  "taskStatus": 2,
  "taskMessage": "任务已完成",
  "videoUrl": "http://JZO3gA.com/hI5HlqOvcL.mp4",
  "videoRiskLevel": 2,
  "videoSuggestion": "结果违规,建议直接删除或者限制公开。",
  "results": [
    {
      "timeInSeconds": 10,
      "mediaUrl": "https://qQ6Rh.com/86a06zF8JopmXqMj.jpg",
      "target": {
        "porn": {
          "riskLevel": 2,
          "suggestion": "低风险,建议进行人工审核。",
          "data": [
            {
              "mainType": 2,
              "mainTypeKey": "vulgar",
              "mainTypeName": "低俗",
              "subType": 201,
              "subTypeKey": "hip",
              "subTypeName": "臀部低俗",
              "content": "",
              "score": 0.87,
              "location": [
                50,
                44,
                35,
                68
              ]
            },
            {
              "mainType": 3,
              "mainTypeKey": "sexy",
              "mainTypeName": "性感",
              "subType": 301,
              "subTypeKey": "f_underwear",
              "subTypeName": "女性普通内衣",
              "content": "",
              "score": 0.17,
              "location": [
                40,
                54,
                52,
                74
              ]
            }
          ]
        },
        "politics": {
          "riskLevel": 1,
          "suggestion": "结果违规,建议直接删除或者限制公开。",
          "data": [
            {
              "mainType": 1,
              "mainTypeKey": "politics",
              "mainTypeName": "涉政",
              "subType": 107,
              "subTypeKey": "dismissed_officials",
              "subTypeName": "落马官员",
              "content": "特朗普",
              "score": 0.34,
              "location": [
                57,
                55,
                75,
                81
              ]
            },
            {
              "mainType": 1,
              "mainTypeKey": "politics",
              "mainTypeName": "涉政",
              "subType": 102,
              "subTypeKey": "past_leaders",
              "subTypeName": "往届领导人",
              "content": "特朗普",
              "score": 0.45,
              "location": [
                13,
                72,
                14,
                77
              ]
            }
          ]
        },
        "terror": {
          "riskLevel": 2,
          "suggestion": "低风险,建议进行人工审核。",
          "data": [
            {
              "mainType": 4,
              "mainTypeKey": "bloodiness",
              "mainTypeName": "血腥",
              "subType": 403,
              "subTypeKey": "bloodiness_corpse_no",
              "subTypeName": "人体尸体不含血",
              "content": "",
              "score": 0.54,
              "location": [
                60,
                17,
                71,
                64
              ]
            }
          ]
        },
        "prohibitions": {
          "riskLevel": 0,
          "suggestion": "结果正常,无需进行其余操作。",
          "data": [
            {
              "mainType": 3,
              "mainTypeKey": "smoking",
              "mainTypeName": "吸烟",
              "subType": 301,
              "subTypeKey": "smoking",
              "subTypeName": "吸烟动作",
              "content": "",
              "score": 0.88,
              "location": [
                27,
                1,
                58,
                84
              ]
            },
            {
              "mainType": 4,
              "mainTypeKey": "drinking",
              "mainTypeName": "喝酒",
              "subType": 401,
              "subTypeKey": "drinking",
              "subTypeName": "喝酒动作",
              "content": "",
              "score": 0.4,
              "location": [
                29,
                61,
                34,
                85
              ]
            },
            {
              "mainType": 2,
              "mainTypeKey": "gun",
              "mainTypeName": "枪支",
              "subType": 202,
              "subTypeKey": "gun_in_hand",
              "subTypeName": "手持枪支",
              "content": "",
              "score": 0.01,
              "location": [
                76,
                26,
                20,
                54
              ]
            }
          ]
        },
        "ads": {
          "riskLevel": 1,
          "suggestion": "结果违规,建议直接删除或者限制公开。",
          "data": [
            {
              "mainType": 2,
              "mainTypeKey": "logo",
              "mainTypeName": "logo",
              "subType": 201,
              "subTypeKey": "brand_logo",
              "subTypeName": "品牌logo",
              "content": "全网最低价,加微信xoifjsdi",
              "score": 0.65,
              "location": [
                30,
                94,
                91,
                23
              ]
            },
            {
              "mainType": 3,
              "mainTypeKey": "advertisement",
              "mainTypeName": "广告",
              "subType": 301,
              "subTypeKey": "advertising_words",
              "subTypeName": "广告词",
              "content": "北京24小时开锁电话:150********",
              "score": 0.86,
              "location": [
                50,
                28,
                75,
                61
              ]
            },
            {
              "mainType": 3,
              "mainTypeKey": "advertisement",
              "mainTypeName": "广告",
              "subType": 302,
              "subTypeKey": "contact",
              "subTypeName": "联系方式",
              "content": "北京24小时开锁电话:150********",
              "score": 0.42,
              "location": [
                1,
                72,
                30,
                59
              ]
            }
          ]
        },
        "text": {
          "filterText": "替换敏感词后的文本",
          "riskLevel": 1,
          "suggestion": "低风险,建议进行人工审核。",
          "data": {
            "porn": {
              "label": 1,
              "sensitiveWords": "违规文本2",
              "score": 0.46
            },
            "politics": {
              "label": 1,
              "sensitiveWords": "违规文本4",
              "score": 0.92
            },
            "terror": {
              "label": 1,
              "sensitiveWords": "违规文本3",
              "score": 0.06
            },
            "abuse": {
              "label": 0,
              "sensitiveWords": "违规文本2",
              "score": 0.64
            },
            "ads": {
              "label": 0,
              "sensitiveWords": "违规文本4",
              "score": 0.79
            },
            "illegal": {
              "label": 2,
              "sensitiveWords": "违规文本4",
              "score": 0.55
            },
            "unuse": {
              "label": 2,
              "sensitiveWords": "违规文本2",
              "score": 0.85
            }
          }
        }
      }
    },
    {
      "timeInSeconds": 127,
      "mediaUrl": "https://OURHb.com/1bGAFaKDPrttjGNh.jpg",
      "target": {
        "porn": {
          "riskLevel": 1,
          "suggestion": "结果违规,建议直接删除或者限制公开。",
          "data": [
            {
              "mainType": 4,
              "mainTypeKey": "normal",
              "mainTypeName": "普通",
              "subType": 401,
              "subTypeKey": "normal",
              "subTypeName": "普通",
              "content": "",
              "score": 0.83,
              "location": [
                34,
                26,
                34,
                93
              ]
            },
            {
              "mainType": 2,
              "mainTypeKey": "vulgar",
              "mainTypeName": "低俗",
              "subType": 205,
              "subTypeKey": "breast_feeding",
              "subTypeName": "喂奶",
              "content": "",
              "score": 0.94,
              "location": [
                42,
                5,
                4,
                70
              ]
            },
            {
              "mainType": 1,
              "mainTypeKey": "porn",
              "mainTypeName": "涉黄",
              "subType": 104,
              "subTypeKey": "ass",
              "subTypeName": "臀部",
              "content": "",
              "score": 0.55,
              "location": [
                21,
                65,
                43,
                44
              ]
            }
          ]
        },
        "politics": {
          "riskLevel": 0,
          "suggestion": "低风险,建议进行人工审核。",
          "data": [
            {
              "mainType": 1,
              "mainTypeKey": "politics",
              "mainTypeName": "涉政",
              "subType": 106,
              "subTypeKey": "sensitive_leaders",
              "subTypeName": "敏感领导人",
              "content": "特朗普",
              "score": 0.29,
              "location": [
                63,
                24,
                58,
                85
              ]
            },
            {
              "mainType": 8,
              "mainTypeKey": "scientist",
              "mainTypeName": "科学家学者",
              "subType": 801,
              "subTypeKey": "scientist",
              "subTypeName": "科学家学者",
              "content": "拜登",
              "score": 0.94,
              "location": [
                36,
                94,
                57,
                46
              ]
            },
            {
              "mainType": 3,
              "mainTypeKey": "separatist_group",
              "mainTypeName": "分裂组织",
              "subType": 304,
              "subTypeKey": "Mongolian_independence",
              "subTypeName": "蒙独",
              "content": "拜登",
              "score": 0.21,
              "location": [
                70,
                74,
                13,
                75
              ]
            }
          ]
        },
        "terror": {
          "riskLevel": 2,
          "suggestion": "结果违规,建议直接删除或者限制公开。",
          "data": [
            {
              "mainType": 1,
              "mainTypeKey": "riot",
              "mainTypeName": "暴乱",
              "subType": 102,
              "subTypeKey": "crowd",
              "subTypeName": "聚众",
              "content": "",
              "score": 0.82,
              "location": [
                21,
                20,
                31,
                65
              ]
            },
            {
              "mainType": 3,
              "mainTypeKey": "flame",
              "mainTypeName": "爆炸火光",
              "subType": 302,
              "subTypeKey": "flame_art",
              "subTypeName": "艺术火",
              "content": "",
              "score": 0.82,
              "location": [
                54,
                36,
                2,
                71
              ]
            },
            {
              "mainType": 4,
              "mainTypeKey": "bloodiness",
              "mainTypeName": "血腥",
              "subType": 409,
              "subTypeKey": "bloodiness_games",
              "subTypeName": "游戏场景",
              "content": "",
              "score": 0.41,
              "location": [
                21,
                21,
                29,
                40
              ]
            }
          ]
        },
        "prohibitions": {
          "riskLevel": 2,
          "suggestion": "结果正常,无需进行其余操作。",
          "data": [
            {
              "mainType": 1,
              "mainTypeKey": "knife",
              "mainTypeName": "刀具",
              "subType": 102,
              "subTypeKey": "knife_in_hand",
              "subTypeName": "手持刀具",
              "content": "",
              "score": 0.05,
              "location": [
                87,
                51,
                63,
                29
              ]
            },
            {
              "mainType": 2,
              "mainTypeKey": "gun",
              "mainTypeName": "枪支",
              "subType": 201,
              "subTypeKey": "static_gun",
              "subTypeName": "静置枪支",
              "content": "",
              "score": 0.95,
              "location": [
                78,
                99,
                37,
                27
              ]
            },
            {
              "mainType": 2,
              "mainTypeKey": "gun",
              "mainTypeName": "枪支",
              "subType": 202,
              "subTypeKey": "gun_in_hand",
              "subTypeName": "手持枪支",
              "content": "",
              "score": 0.01,
              "location": [
                76,
                26,
                20,
                54
              ]
            }
          ]
        },
        "ads": {
          "riskLevel": 0,
          "suggestion": "低风险,建议进行人工审核。",
          "data": [
            {
              "mainType": 1,
              "mainTypeKey": "code",
              "mainTypeName": "条码类",
              "subType": 102,
              "subTypeKey": "bar_code",
              "subTypeName": "条形码",
              "content": "全网最低价,加微信xoifjsdi",
              "score": 0.2,
              "location": [
                58,
                11,
                59,
                93
              ]
            }
          ]
        },
        "text": {
          "filterText": "替换敏感词后的文本",
          "riskLevel": 0,
          "suggestion": "结果违规,建议直接删除或者限制公开。",
          "data": {
            "porn": {
              "label": 1,
              "sensitiveWords": "违规文本2",
              "score": 0.26
            },
            "politics": {
              "label": 0,
              "sensitiveWords": "违规文本1",
              "score": 0.59
            },
            "terror": {
              "label": 2,
              "sensitiveWords": "违规文本1",
              "score": 0.07
            },
            "abuse": {
              "label": 1,
              "sensitiveWords": "违规文本1",
              "score": 0.47
            },
            "ads": {
              "label": 2,
              "sensitiveWords": "违规文本4",
              "score": 0.2
            },
            "illegal": {
              "label": 0,
              "sensitiveWords": "违规文本3",
              "score": 0.61
            },
            "unuse": {
              "label": 2,
              "sensitiveWords": "违规文本3",
              "score": 0.93
            }
          }
        }
      }
    },
    {
      "timeInSeconds": 66,
      "mediaUrl": "https://Sf27v.com/jhl0hzBhOMBk.jpg",
      "target": {
        "porn": {
          "riskLevel": 0,
          "suggestion": "低风险,建议进行人工审核。",
          "data": [
            {
              "mainType": 4,
              "mainTypeKey": "normal",
              "mainTypeName": "普通",
              "subType": 402,
              "subTypeKey": "artwork",
              "subTypeName": "普通情趣用品",
              "content": "",
              "score": 0.68,
              "location": [
                50,
                87,
                48,
                92
              ]
            },
            {
              "mainType": 2,
              "mainTypeKey": "vulgar",
              "mainTypeName": "低俗",
              "subType": 205,
              "subTypeKey": "breast_feeding",
              "subTypeName": "喂奶",
              "content": "",
              "score": 0.94,
              "location": [
                42,
                5,
                4,
                70
              ]
            }
          ]
        },
        "politics": {
          "riskLevel": 2,
          "suggestion": "结果正常,无需进行其余操作。",
          "data": [
            {
              "mainType": 1,
              "mainTypeKey": "politics",
              "mainTypeName": "涉政",
              "subType": 109,
              "subTypeKey": "foreign_politicians",
              "subTypeName": "国外政要",
              "content": "拜登",
              "score": 0.86,
              "location": [
                71,
                26,
                11,
                45
              ]
            }
          ]
        },
        "terror": {
          "riskLevel": 2,
          "suggestion": "低风险,建议进行人工审核。",
          "data": [
            {
              "mainType": 4,
              "mainTypeKey": "bloodiness",
              "mainTypeName": "血腥",
              "subType": 401,
              "subTypeKey": "bloodiness_skin",
              "subTypeName": "人体皮肤血腥",
              "content": "",
              "score": 0.64,
              "location": [
                21,
                47,
                30,
                31
              ]
            }
          ]
        },
        "prohibitions": {
          "riskLevel": 2,
          "suggestion": "低风险,建议进行人工审核。",
          "data": [
            {
              "mainType": 2,
              "mainTypeKey": "gun",
              "mainTypeName": "枪支",
              "subType": 202,
              "subTypeKey": "gun_in_hand",
              "subTypeName": "手持枪支",
              "content": "",
              "score": 0.01,
              "location": [
                76,
                26,
                20,
                54
              ]
            },
            {
              "mainType": 1,
              "mainTypeKey": "knife",
              "mainTypeName": "刀具",
              "subType": 102,
              "subTypeKey": "knife_in_hand",
              "subTypeName": "手持刀具",
              "content": "",
              "score": 0.05,
              "location": [
                87,
                51,
                63,
                29
              ]
            }
          ]
        }
      }
    }
  ]
}

3、审核结果各级label

3.1 鉴黄labels

一级类别 一级类别中文名 一级类别英文名 二级类别 二级类别中文名 二级类别英文名
1 涉黄 porn 101 女胸 f_breasts
1 涉黄 porn 102 女下体 f_pussy
1 涉黄 porn 103 男下体 penis
1 涉黄 porn 104 臀部 ass
1 涉黄 porn 105 卡通色情 cartoon_porn
1 涉黄 porn 106 其他色情 other_porn
2 低俗 vulgar 201 臀部低俗 hip
2 低俗 vulgar 202 裆部低俗 crotch
2 低俗 vulgar 203 胸部低俗 f_exposed
2 低俗 vulgar 204 高仿真情趣用品 sex_toy_organs
2 低俗 vulgar 205 喂奶 breast_feeding
2 低俗 vulgar 206 其他低俗 other_vulgar
3 性感 sexy 301 女性普通内衣 f_underwear
3 性感 sexy 302 女性性感 f_sexy
3 性感 sexy 303 男性内衣 m_sexy
3 性感 sexy 304 亲吻 kiss
3 性感 sexy 305 其他性感 sexy
4 普通 normal 401 普通 normal
4 普通 normal 402 普通情趣用品 artwork

3.2 敏感人物labels

一级类别 一级类别中文名 一级类别英文名 二级类别 二级类别中文名 二级类别英文名
1 涉政 politics 101 在任领导人 incumbent_leaders
1 涉政 politics 102 往届领导人 past_leaders
1 涉政 politics 103 省市区领导人 provincial_and_municipal_leaders
1 涉政 politics 104 香港官员 HK_officials
1 涉政 politics 105 民族、英烈、爱国人士 nationality_heroes_and_patriots
1 涉政 politics 106 敏感领导人 sensitive_leaders
1 涉政 politics 107 落马官员 dismissed_officials
1 涉政 politics 108 反动人物 reactionary_figures
1 涉政 politics 109 国外政要 foreign_politicians
2 六四反动 6-4_reactionary_group 201 六四民运分子 6-4_reactionary_group
3 分裂组织 separatist_group 301 港独 HK_independence
3 分裂组织 separatist_group 302 藏独 Tibetan_independence
3 分裂组织 separatist_group 303 疆独 Xinjiang_independence
3 分裂组织 separatist_group 304 蒙独 Mongolian_independence
3 分裂组织 separatist_group 305 台独 Taiwan_independence
3 分裂组织 separatist_group 306 沪独 Shanghai_independence
4 邪教组织 cult_group 401 国内邪教 domestic_cult_group
4 邪教组织 cult_group 402 国外邪教 foreign_cults_group
5 反动媒体 reactionary_media 501 反动媒体 reactionary_media
6 暴恐组织 terrorist 601 恐怖组织 terrorist_group
6 暴恐组织 terrorist 602 独裁 dictator
7 明星网红 star 701 劣迹明星网红 stat_with_problems
7 明星网红 star 702 体育明星 athletic_star
7 明星网红 star 703 艺人 actor
8 科学家学者 scientist 801 科学家学者 scientist
9 其他 other 901 正面人物 decent_personage
9 其他 other 902 反面人物 villain
10 白名单 whitelist 1001 白名单人物 whitelist

3.3 暴恐labels

一级类别 一级类别中文名 一级类别英文名 二级类别 二级类别中文名 二级类别英文名
1 暴乱 riot 101 游行示威 demonstration
1 暴乱 riot 102 聚众 crowd
1 暴乱 riot 103 群众暴乱 rioters
1 暴乱 riot 104 民警冲突 conflict
2 武装部队 forces 201 警察部队 police_force
2 武装部队 forces 202 武装人员 armed_people
3 爆炸火光 flame 301 真实爆炸火光 flame_real
3 爆炸火光 flame 302 艺术火 flame_art
3 爆炸火光 flame 303 烟花 fireworks
4 血腥 bloodiness 401 人体皮肤血腥 bloodiness_skin
4 血腥 bloodiness 402 人体尸体含血 bloodiness_corpse
4 血腥 bloodiness 403 人体尸体不含血 bloodiness_corpse_no
4 血腥 bloodiness 404 动物血腥 bloodiness_animal
4 血腥 bloodiness 405 动物尸体 bloodiness_carcass
4 血腥 bloodiness 406 服饰血迹 bloodiness_clothes
4 血腥 bloodiness 407 场景血迹 bloodiness_bloodstain
4 血腥 bloodiness 408 卡通血腥 bloodiness_carton
4 血腥 bloodiness 409 游戏场景 bloodiness_games
5 武器弹药 weapon 501 子弹特写 bullet
5 武器弹药 weapon 502 装甲车 tank
5 武器弹药 weapon 504 飞机 airplane
5 武器弹药 weapon 505 战舰 warship
6 纹身 tattoo 601 皮肤纹身特写 tattoo_skin

3.4 违禁品labels

一级类别 一级类别中文名 一级类别英文名 二级类别 二级类别中文名 二级类别英文名
1 刀具 knife 101 静置刀具 static_knife
1 刀具 knife 102 手持刀具 knife_in_hand
2 枪支 gun 201 静置枪支 static_gun
2 枪支 gun 202 手持枪支 gun_in_hand
3 吸烟 smoking 301 吸烟动作 smoking
4 喝酒 drinking 401 喝酒动作 drinking

四、错误码

1.系统级错误码

详见返回码

2.业务错误码

status状态码

错误号 错误信息 说明
200 success 成功
400 Bad request 参数缺失或创建任务失败或不合法的json入参
500 Internal error 内部错误
Copyright © JD AI Platform all right reserved,powered by GitbookFile Modify: 2021-05-21 22:10:38

results matching ""

    No results matching ""