3260 lines
109 KiB
JSON
3260 lines
109 KiB
JSON
{
|
|
"generated_at": "2026-05-17T13:49:06+08:00",
|
|
"max_workers": 16,
|
|
"total_duration_ms": 26114.437,
|
|
"summary": {
|
|
"total": 83,
|
|
"success": 66,
|
|
"failed": 17,
|
|
"success_rate": 0.7952,
|
|
"stage_failures": {
|
|
"module_load": 0,
|
|
"init": 0,
|
|
"home": 2,
|
|
"category": 4,
|
|
"detail": 1,
|
|
"player": 0,
|
|
"url_check": 3,
|
|
"unexpected": 7
|
|
}
|
|
},
|
|
"results": [
|
|
{
|
|
"spider": "4K指南",
|
|
"file": "4K指南.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 563.389,
|
|
"init": 0.001,
|
|
"home": 0.012,
|
|
"category": 746.243,
|
|
"detail": 534.897,
|
|
"player": 0.016,
|
|
"url_check": 207.587,
|
|
"total": 2081.609
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 50,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "zuixin",
|
|
"vod_id": "18385",
|
|
"flag": "夸克网盘4k原盘",
|
|
"play_id": "push://https://pan.quark.cn/s/386badc811b3"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.quark.cn/s/386badc811b3",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.quark.cn/s/386badc811b3",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "6V磁力",
|
|
"file": "6V磁力.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 547.722,
|
|
"init": 0.018,
|
|
"home": 0.005,
|
|
"category": 744.602,
|
|
"detail": 655.719,
|
|
"player": 0.004,
|
|
"url_check": 0.089,
|
|
"total": 1950.225
|
|
},
|
|
"counts": {
|
|
"classes": 12,
|
|
"category_videos": 18,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "dianshiju/guoju",
|
|
"vod_id": "/dianshiju/guoju/28754.html",
|
|
"flag": "01-07.1080p.HD国语中字无水印.mkv",
|
|
"play_id": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07",
|
|
"valid": true,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "magnet:?xt=urn:btih:179e2e96aecc2ff52e16b81e3b3c1e89a6010b05&dn=%E4%B8%BB%E8%A7%9201-07",
|
|
"reason": "非 HTTP 地址,按协议格式通过"
|
|
}
|
|
},
|
|
{
|
|
"spider": "AAZ音乐",
|
|
"file": "AAZ音乐.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 550.022,
|
|
"init": 0.004,
|
|
"home": 654.33,
|
|
"category": 194.379,
|
|
"detail": 202.214,
|
|
"player": 169.3,
|
|
"url_check": 329.591,
|
|
"total": 2101.336
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 60,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "new",
|
|
"vod_id": "song:e0f3c77fa564632f924f77fc5943ba7e",
|
|
"flag": "AAZ音乐",
|
|
"play_id": "song:e0f3c77fa564632f924f77fc5943ba7e"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://s.5bb3.com/m4a/3374e5b4a4d9d8e8f967976747b5c2ca.m4a",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://lv-sycdn.kuwo.cn/56c04682bf0c0d7733ae1824d4b6dba3/6a0956d5/resource/1307392909/trackmedia/C200000W91kQ0efKLA.m4a?from=vip",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "PPnix",
|
|
"file": "PPnix.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 621.395,
|
|
"init": 0.0,
|
|
"home": 0.001,
|
|
"category": 582.586,
|
|
"detail": 396.109,
|
|
"player": 0.009,
|
|
"url_check": 359.721,
|
|
"total": 1960.447
|
|
},
|
|
"counts": {
|
|
"classes": 2,
|
|
"category_videos": 24,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "movie/8169.html",
|
|
"flag": "PPnix",
|
|
"play_id": "8169|1080P"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://www.ppnix.com/info/m3u8/8169/1080P.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://www.ppnix.com/info/m3u8/8169/1080P.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "QQ音乐",
|
|
"file": "QQ音乐.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 561.723,
|
|
"init": 0.018,
|
|
"home": 0.007,
|
|
"category": 425.231,
|
|
"detail": 459.622,
|
|
"player": 244.382,
|
|
"url_check": 135.719,
|
|
"total": 1850.001
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "playlist",
|
|
"vod_id": "playlist:9495798654",
|
|
"flag": "QQ音乐",
|
|
"play_id": "qqmusic:001Zxgfp1Tu1gH:649285246|人生路漫漫 - 白小白"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://isure.stream.qqmusic.qq.com/F000001Zxgfp1Tu1gH.flac?guid=c3ccb7dc2128054e0475b6082604a2bb&vkey=A223465819B0AB33C58A56E699C205265BFD8897F062F880F28102D22A847DEA35CDD63BA9CACD4D09B38B67566C5B3368B76C47606ACD03__v2b9ab6c4&uin=896389745&fromtag=119114&redirect=1",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://isure.stream.qqmusic.qq.com/F000001Zxgfp1Tu1gH.flac?guid=c3ccb7dc2128054e0475b6082604a2bb&vkey=A223465819B0AB33C58A56E699C205265BFD8897F062F880F28102D22A847DEA35CDD63BA9CACD4D09B38B67566C5B3368B76C47606ACD03__v2b9ab6c4&uin=896389745&fromtag=119114&redirect=1",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "YouTube",
|
|
"file": "YouTube.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 522.177,
|
|
"init": 0.011,
|
|
"home": 0.184,
|
|
"category": 709.11,
|
|
"detail": 1483.871,
|
|
"player": 0.028,
|
|
"url_check": 804.842,
|
|
"total": 3521.486
|
|
},
|
|
"counts": {
|
|
"classes": 28,
|
|
"category_videos": 11,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "cat_recommend",
|
|
"vod_id": "yt:video:jvY_RhyQBEo",
|
|
"flag": "YouTube",
|
|
"play_id": "yt:video:jvY_RhyQBEo"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://www.youtube.com/watch?v=jvY_RhyQBEo",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://www.youtube.com/watch?v=jvY_RhyQBEo",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "libvio",
|
|
"file": "libvio.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 534.381,
|
|
"init": 0.003,
|
|
"home": 0.003,
|
|
"category": 235.546,
|
|
"detail": 204.41,
|
|
"player": 0.005,
|
|
"url_check": 129.523,
|
|
"total": 1105.621
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 48,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "index",
|
|
"vod_id": "714893307",
|
|
"flag": "夸克",
|
|
"play_id": "https://pan.quark.cn/s/f32bbba8a8d1"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.quark.cn/s/f32bbba8a8d1",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.quark.cn/s/f32bbba8a8d1",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "youknow",
|
|
"file": "youknow.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 559.504,
|
|
"init": 0.004,
|
|
"home": 0.002,
|
|
"category": 1890.25,
|
|
"detail": 1759.307,
|
|
"player": 4055.696,
|
|
"url_check": 901.265,
|
|
"total": 9193.303
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 220,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "index",
|
|
"vod_id": "134958",
|
|
"flag": "YouKnowTV",
|
|
"play_id": "eyJ2b2RfaWQiOiIxMzQ5NTgiLCJlcGlzb2RlX2luZGV4IjoxLCJ0aXRsZSI6IuesrDAx6ZuGIiwiY2FuZGlkYXRlcyI6W3sic291cmNlIjoi57q_6LevMSIsInNvdXJjZV9pZCI6IjQiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8xMzQ5NTgtNC0xLyJ9LHsic291cmNlIjoi57q_6LevMiIsInNvdXJjZV9pZCI6IjQiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8xMzQ5NTgtNC0xLyJ9LHsic291cmNlIjoi57q_6LevMTc1Iiwic291cmNlX2lkIjoiMiIsImVwaXNvZGVfdXJsIjoiaHR0cHM6Ly93d3cueW91a25vdy50di9wLzEzNDk1OC0yLTEvIn0seyJzb3VyY2UiOiLnur_ot68xNzYiLCJzb3VyY2VfaWQiOiIyIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMTM0OTU4LTItMS8ifSx7InNvdXJjZSI6Iue6v-i3rzM0NiIsInNvdXJjZV9pZCI6IjEiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8xMzQ5NTgtMS0xLyJ9LHsic291cmNlIjoi57q_6LevMzQ3Iiwic291cmNlX2lkIjoiMSIsImVwaXNvZGVfdXJsIjoiaHR0cHM6Ly93d3cueW91a25vdy50di9wLzEzNDk1OC0xLTEvIn0seyJzb3VyY2UiOiLnur_ot680OTQiLCJzb3VyY2VfaWQiOiIzIiwiZXBpc29kZV91cmwiOiJodHRwczovL3d3dy55b3Vrbm93LnR2L3AvMTM0OTU4LTMtMS8ifSx7InNvdXJjZSI6Iue6v-i3rzQ5NSIsInNvdXJjZV9pZCI6IjMiLCJlcGlzb2RlX3VybCI6Imh0dHBzOi8vd3d3LnlvdWtub3cudHYvcC8xMzQ5NTgtMy0xLyJ9XX0"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://tyyszywvod1.com/videos/202603/18/69b7c980bfd7a6057fc4ea2c/96e2f6/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://tyyszywvod1.com/videos/202603/18/69b7c980bfd7a6057fc4ea2c/96e2f6/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "七味",
|
|
"file": "七味.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 550.153,
|
|
"init": 0.02,
|
|
"home": 0.005,
|
|
"category": 547.131,
|
|
"detail": 1023.961,
|
|
"player": 0.003,
|
|
"url_check": 1208.146,
|
|
"total": 3359.716
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 42,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "492461",
|
|
"flag": "百度1",
|
|
"play_id": "https://pan.baidu.com/s/1MZa4NhXR02WdMOXlmINHCA?pwd=Yu66"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/1MZa4NhXR02WdMOXlmINHCA?pwd=Yu66",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=MZa4NhXR02WdMOXlmINHCA&pwd=Yu66",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "不太灵",
|
|
"file": "不太灵.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 547.498,
|
|
"init": 0.003,
|
|
"home": 717.291,
|
|
"category": 963.582,
|
|
"detail": 601.304,
|
|
"player": 0.013,
|
|
"url_check": 1135.508,
|
|
"total": 5399.91
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 25,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "2",
|
|
"vod_id": "36310054",
|
|
"flag": "百度",
|
|
"play_id": "https://pan.baidu.com/s/18_BEUEFJ_WmP3DaJIsxUfQ?pwd=Yu66"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/18_BEUEFJ_WmP3DaJIsxUfQ?pwd=Yu66",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=8_BEUEFJ_WmP3DaJIsxUfQ&pwd=Yu66",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "世纪音乐",
|
|
"file": "世纪音乐.txt",
|
|
"success": false,
|
|
"failed_stage": "detail",
|
|
"error": "详情缺少播放源或播放列表",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 558.613,
|
|
"init": 0.001,
|
|
"home": 136.58,
|
|
"category": 0.006,
|
|
"detail": 114.488,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 943.133
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 3,
|
|
"detail_videos": 1,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "rank_list",
|
|
"vod_id": "rank:rise",
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "两个BT",
|
|
"file": "两个BT.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 567.676,
|
|
"init": 0.001,
|
|
"home": 0.003,
|
|
"category": 394.742,
|
|
"detail": 351.859,
|
|
"player": 665.596,
|
|
"url_check": 415.5,
|
|
"total": 2415.787
|
|
},
|
|
"counts": {
|
|
"classes": 14,
|
|
"category_videos": 24,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "zgjun",
|
|
"vod_id": "ch455phy4",
|
|
"flag": "两个BT",
|
|
"play_id": "eyJwaWQiOiIvcGxheS9jaDQ1NXBoeTQiLCJzaWQiOiJjaDQ1NXBoeTQiLCJuYW1lIjoiMSJ9"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://zijieapi.douyinbyte.com/m3u8/b8f2c4edf01a7ddd816b999ed947a251.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://zijieapi.douyinbyte.com/m3u8/b8f2c4edf01a7ddd816b999ed947a251.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "乌云影视",
|
|
"file": "乌云影视.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 540.8,
|
|
"init": 0.003,
|
|
"home": 269.572,
|
|
"category": 332.081,
|
|
"detail": 1031.371,
|
|
"player": 0.018,
|
|
"url_check": 2089.938,
|
|
"total": 4267.453
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 24,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "movie",
|
|
"vod_id": "483203",
|
|
"flag": "乌云影视",
|
|
"play_id": "eyJtZWRpYUlkIjogIjQ4MzIwMyIsICJzZWFzb25ObyI6IDEsICJlcE5vIjogMSwgInZpZGVvSWQiOiAxNTc2MjgzMiwgInBsYXlVcmwiOiAiaHR0cHM6Ly9kMWpkbm1rYzFuNWNuNC5jbG91ZGZyb250Lm5ldC9nZW5fb3ZlcnNlYXMvaHR0cHM6Ly9zMi5iZmxsdmlwLmNvbS92aWRlby95YW54aWF4aW5nL2E2ZWY4NTRjMGMxZi9pbmRleC5tM3U4IiwgIm5hbWUiOiAi56ysMembhiDpq5jmuIUifQ"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://d1jdnmkc1n5cn4.cloudfront.net/gen_overseas/https://s2.bfllvip.com/video/yanxiaxing/a6ef854c0c1f/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://d1jdnmkc1n5cn4.cloudfront.net/hls_overseas/5b52f84da1f048d0208d23dee1cd8fcf2525c1ee.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "乐兔",
|
|
"file": "乐兔.txt",
|
|
"success": false,
|
|
"failed_stage": "category",
|
|
"error": "分类视频列表为空",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 542.908,
|
|
"init": 0.003,
|
|
"home": 0.003,
|
|
"category": 211.307,
|
|
"detail": 0.0,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 1010.775
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 0,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "2",
|
|
"vod_id": null,
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "二小",
|
|
"file": "二小.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 548.682,
|
|
"init": 0.003,
|
|
"home": 0.005,
|
|
"category": 597.259,
|
|
"detail": 437.12,
|
|
"player": 0.003,
|
|
"url_check": 1049.67,
|
|
"total": 2669.313
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 72,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "12381",
|
|
"flag": "百度#二小",
|
|
"play_id": "https://pan.baidu.com/s/1DzV_kWGZPB0aQr6g9ShjfA?pwd=2rqf"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/1DzV_kWGZPB0aQr6g9ShjfA?pwd=2rqf",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=DzV_kWGZPB0aQr6g9ShjfA&pwd=2rqf",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "人人电影",
|
|
"file": "人人电影.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 543.895,
|
|
"init": 0.002,
|
|
"home": 0.003,
|
|
"category": 461.952,
|
|
"detail": 386.765,
|
|
"player": 0.028,
|
|
"url_check": 1325.556,
|
|
"total": 2720.808
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 10,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "movie/list_2",
|
|
"vod_id": "/movie/2026/0516/59204.html",
|
|
"flag": "baidu",
|
|
"play_id": "https://pan.baidu.com/s/1n6AIYm7rmLiULlMrrvWaAg?pwd=kuq2"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/1n6AIYm7rmLiULlMrrvWaAg?pwd=kuq2",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=n6AIYm7rmLiULlMrrvWaAg&pwd=kuq2",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "人人视频",
|
|
"file": "人人视频.txt",
|
|
"success": false,
|
|
"failed_stage": "url_check",
|
|
"error": "HTTP 403",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 17.595,
|
|
"init": 0.002,
|
|
"home": 166.319,
|
|
"category": 258.132,
|
|
"detail": 254.317,
|
|
"player": 398.607,
|
|
"url_check": 398.5,
|
|
"total": 2628.998
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "MOVIE",
|
|
"vod_id": "57046",
|
|
"flag": "人人专线",
|
|
"play_id": "57046@382015"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://a3fkpcuj0vitsro.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/c074943c4e6d71f18ed75017f0e90402/df3c0578d329457b9265317e359bce4a-0839441ca402de22c840b03b4e64e0d2-ld.mp4?auth_key=1779011350-ecfc7a3211de019cecf9548e7880f21e-0-a2e28dd7fced03f2cb0a1dd63b00707f&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=5bb0eac3fdc54a2e80416333ec952f26&hevc=false&seasonId=57046",
|
|
"valid": false,
|
|
"reachable": false,
|
|
"status_code": 403,
|
|
"final_url": "https://a3fkpcuj0vitsro.302.fledgecloud.com:56782/zj-302-cdn.bwcgee.cn/c074943c4e6d71f18ed75017f0e90402/df3c0578d329457b9265317e359bce4a-0839441ca402de22c840b03b4e64e0d2-ld.mp4?auth_key=1779011350-ecfc7a3211de019cecf9548e7880f21e-0-a2e28dd7fced03f2cb0a1dd63b00707f&clientType=web_pc&clientVersion=1.0.0&parseUsage=PLAY&uid=0&rk=5bb0eac3fdc54a2e80416333ec952f26&hevc=false&seasonId=57046",
|
|
"reason": "HTTP 403"
|
|
}
|
|
},
|
|
{
|
|
"spider": "优酷",
|
|
"file": "优酷.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 7.949,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 287.917,
|
|
"detail": 568.342,
|
|
"player": 0.002,
|
|
"url_check": 275.584,
|
|
"total": 1140.403
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 23,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "电视剧",
|
|
"vod_id": "show:afcb2d65c6a34b798d77",
|
|
"flag": "优酷",
|
|
"play_id": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html"
|
|
},
|
|
"player": {
|
|
"parse": 1,
|
|
"url": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://v.youku.com/v_show/id_XNjUzNDA5NDEwNA==.html",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "低端影视",
|
|
"file": "低端影视.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 17.442,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 1040.067,
|
|
"detail": 718.708,
|
|
"player": 0.008,
|
|
"url_check": 904.59,
|
|
"total": 2682.111
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 24,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "series",
|
|
"vod_id": "movie/untamed-season-1",
|
|
"flag": "播放源 1 (1080P)",
|
|
"play_id": "https://v.cdnlz22.com/20250717/19912_440037b1/index.m3u8"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://v.cdnlz22.com/20250717/19912_440037b1/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://v.cdnlz22.com/20250717/19912_440037b1/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "修罗",
|
|
"file": "修罗.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 16.892,
|
|
"init": 0.0,
|
|
"home": 0.001,
|
|
"category": 1112.622,
|
|
"detail": 985.418,
|
|
"player": 1490.323,
|
|
"url_check": 1048.461,
|
|
"total": 4654.936
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 24,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "movie",
|
|
"vod_id": "kongbu/3777",
|
|
"flag": "修罗直连",
|
|
"play_id": "play/3777-0"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://v.xlys.ltd.ua/obj/BD7F13FD72C6EDC3FF0322085DF7723FF28BE6D18C84A32CF9C51251691291B9",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://lf26-imcloud-file-sign.bytetos.com/ad-penny-bucket/o0EEIAAAt4uBCWDq8FAdfNTiQIzRVEAgCeOhCd?x-expires=1779000198&x-signature=sLHuV13wTq0z0ACtgX3zIetmF9g%3D",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "凡客TV",
|
|
"file": "凡客TV.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 6.724,
|
|
"init": 0.001,
|
|
"home": 0.0,
|
|
"category": 1153.101,
|
|
"detail": 1226.135,
|
|
"player": 2082.137,
|
|
"url_check": 2580.782,
|
|
"total": 7049.409
|
|
},
|
|
"counts": {
|
|
"classes": 8,
|
|
"category_videos": 32,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "d0371b7920b771c7",
|
|
"flag": "高速线路",
|
|
"play_id": "{\"movie_id\":\"d0371b7920b771c7\",\"link_id\":\"f0dacbe7a99090ebe53eff7947f06d1a\",\"line_id\":\"line1\",\"line_name\":\"高速线路\",\"episode_name\":\"1080p\",\"type\":\"switch\",\"page\":\"https://fktv.me/movie/detail/d0371b7920b771c7\"}"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://fktv.me/ysapi/m3u8/p/4289d7d402339efc8019c0b1c1dbb1ca.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://fktv.me/ysapi/m3u8/p/4289d7d402339efc8019c0b1c1dbb1ca.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "剧圈圈",
|
|
"file": "剧圈圈.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 7.547,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 792.496,
|
|
"detail": 630.156,
|
|
"player": 1878.216,
|
|
"url_check": 627.221,
|
|
"total": 3937.897
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 16,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "dianying",
|
|
"vod_id": "63034",
|
|
"flag": "FF备用",
|
|
"play_id": "play/63034-1-1"
|
|
},
|
|
"player": {
|
|
"parse": 1,
|
|
"url": "https://www.jqqzx.cc/play/63034-1-1.html",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://www.jqqzx.one/play/63034-1-1.html",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "剧迷",
|
|
"file": "剧迷.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 93.118,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 215.226,
|
|
"detail": 405.716,
|
|
"player": 391.107,
|
|
"url_check": 1166.035,
|
|
"total": 2272.391
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 150,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "443094",
|
|
"flag": "高清线路 ᴴᴰ",
|
|
"play_id": "443094-11-1"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://play.phimgood.com/20260511/26651_2f4d94b1/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://play.phimgood.com/20260511/26651_2f4d94b1/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "博看听书",
|
|
"file": "博看听书.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 77.555,
|
|
"init": 0.001,
|
|
"home": 12661.773,
|
|
"category": 271.958,
|
|
"detail": 744.431,
|
|
"player": 0.002,
|
|
"url_check": 193.427,
|
|
"total": 13949.873
|
|
},
|
|
"counts": {
|
|
"classes": 11,
|
|
"category_videos": 24,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1319",
|
|
"vod_id": "902849",
|
|
"flag": "博看听书",
|
|
"play_id": "http://audio.bookan.com.cn/video1/audio/20200706001/aache64_133068a2.m4a"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "http://audio.bookan.com.cn/video1/audio/20200706001/aache64_133068a2.m4a",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "http://audio.bookan.com.cn/video1/audio/20200706001/aache64_133068a2.m4a",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "双星",
|
|
"file": "双星.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 23.841,
|
|
"init": 401.493,
|
|
"home": 0.009,
|
|
"category": 186.727,
|
|
"detail": 200.628,
|
|
"player": 0.01,
|
|
"url_check": 180.945,
|
|
"total": 995.905
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 15,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "ju",
|
|
"vod_id": "/ju/10461.html",
|
|
"flag": "夸克",
|
|
"play_id": "https://pan.quark.cn/s/9e546b70dcfd"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.quark.cn/s/9e546b70dcfd",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.quark.cn/s/9e546b70dcfd",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "听书",
|
|
"file": "听书.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 12.765,
|
|
"init": 86.166,
|
|
"home": 0.005,
|
|
"category": 157.682,
|
|
"detail": 3046.974,
|
|
"player": 268.624,
|
|
"url_check": 122.974,
|
|
"total": 3696.401
|
|
},
|
|
"counts": {
|
|
"classes": 11,
|
|
"category_videos": 10,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "6",
|
|
"vod_id": "63",
|
|
"flag": "直链",
|
|
"play_id": "2926931|||63"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=ad93ed7d95a9697b73b07ddd3c7e0554&buy_key=FM&token=1162×tamp=1778996953&duration=453",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "http://audiopay.cos.tx.xmcdn.com/download/1.0.0/storages/b817-audiopay/16/AA/GKwRIaIGGaRGADgE-gEx_hMS-aacv2-48K.m4a?sign=ad93ed7d95a9697b73b07ddd3c7e0554&buy_key=FM&token=1162×tamp=1778996953&duration=453",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "听友FM",
|
|
"file": "听友FM.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 27.921,
|
|
"init": 0.001,
|
|
"home": 397.129,
|
|
"category": 252.863,
|
|
"detail": 1268.506,
|
|
"player": 435.889,
|
|
"url_check": 139.83,
|
|
"total": 2524.856
|
|
},
|
|
"counts": {
|
|
"classes": 8,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "46",
|
|
"vod_id": "9783312385",
|
|
"flag": "听友FM",
|
|
"play_id": "9783312385|1"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778994583&sign=e4ede115bd8f3b04aa42c085703e04a0",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://file.hgeuz.cn/stream/eJwANwDI_wJVZgVKIIrU0ECux-GJ1PSt38ahythCqsH-r9TAQ4rj5F94rOjbQKjk063xyIX2z3hfeGcIHF4BAAD__5DtISY.?ts=1778994583&sign=e4ede115bd8f3b04aa42c085703e04a0",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "咕咕动漫",
|
|
"file": "咕咕动漫.txt",
|
|
"success": false,
|
|
"failed_stage": "unexpected",
|
|
"error": "HTTPSConnectionPool(host='www.gugu3.com', port=443): Read timed out. (read timeout=10)",
|
|
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 534, in _make_request\n response = conn.getresponse()\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 571, in getresponse\n httplib_response = super().getresponse()\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 1450, in getresponse\n response.begin()\n ~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 336, in begin\n version, status, reason = self._read_status()\n ~~~~~~~~~~~~~~~~~^^\n File \"/home/harold/.local/share/uv/python/cpython-3.14.3-linux-x86_64-gnu/lib/python3.14/http/client.py\", line 297, in _read_status\n line = str(self.fp.readline(_MAXLINE + 1), \"iso-8859-1\")\n ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^\nTimeoutError: The read operation timed out\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 490, in increment\n raise reraise(type(error), error, _stacktrace)\n ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/util.py\", line 39, in reraise\n raise value\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\nurllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.gugu3.com', port=443): Read timed out. (read timeout=10)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 467, in _validate_from_tid\n player_result = _run_timed(result[\"timings_ms\"], \"player\", spider.playerContent, clock, play[\"flag\"], play[\"play_id\"], [])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/咕咕动漫.txt\", line 222, in playerContent\n File \"/home/harold/workspace/tvbox-resources/py/咕咕动漫.txt\", line 774, in _request_vod_parse\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.gugu3.com', port=443): Read timed out. (read timeout=10)\n",
|
|
"timings_ms": {
|
|
"module_load": 11.807,
|
|
"init": 0.005,
|
|
"home": 354.634,
|
|
"category": 453.03,
|
|
"detail": 405.183,
|
|
"player": 10139.292,
|
|
"url_check": 0.0,
|
|
"total": 11373.917
|
|
},
|
|
"counts": {
|
|
"classes": 3,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "6",
|
|
"vod_id": "4868",
|
|
"flag": "咕咕新线(国内高速)",
|
|
"play_id": "parse_api=a2796a09189261bcaf3cc4542d7c5ac2&url=lP2R+fQhIhERka2gIaipagHQsWKazkceP23lb9jG0yeOhUKQ437rokxlEtXsJd2U&token=|勇者之屑|1"
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "四万影视",
|
|
"file": "四万影视.txt",
|
|
"success": false,
|
|
"failed_stage": "unexpected",
|
|
"error": "HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))",
|
|
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 796, in connect\n sock_and_verified = _ssl_wrap_socket_and_match_hostname(\n sock=sock,\n ...<14 lines>...\n assert_fingerprint=self.assert_fingerprint,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 975, in _ssl_wrap_socket_and_match_hostname\n ssl_sock = ssl_wrap_socket(\n sock=sock,\n ...<8 lines>...\n tls_in_tls=tls_in_tls,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/ssl_.py\", line 483, in ssl_wrap_socket\n ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)\nssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 488, in _make_request\n raise new_e\nurllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 535, in increment\n raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nurllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/四万影视.txt\", line 238, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/四万影视.txt\", line 212, in _api_get\nrequests.exceptions.SSLError: HTTPSConnectionPool(host='40000.me', port=443): Max retries exceeded with url: /api/maccms?ac=detail&t=20&pg=1&by=time (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate (_ssl.c:1081)')))\n",
|
|
"timings_ms": {
|
|
"module_load": 15.494,
|
|
"init": 0.002,
|
|
"home": 0.003,
|
|
"category": 356.599,
|
|
"detail": 0.0,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 383.046
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 0,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "20",
|
|
"vod_id": null,
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "在线之家",
|
|
"file": "在线之家.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 15.049,
|
|
"init": 0.001,
|
|
"home": 0.002,
|
|
"category": 568.936,
|
|
"detail": 933.878,
|
|
"player": 5679.531,
|
|
"url_check": 220.558,
|
|
"total": 7419.213
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 12,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "4601",
|
|
"flag": "zxzj",
|
|
"play_id": "vodplay/4601-1-1.html"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://media-sxty-fy-corp.sx3oss.ctyunxs.cn/CORPCLOUD/f076ccf5-a095-45a2-b086-cbf66f4aa40d.mp4?response-content-disposition=attachment%3Bfilename%3D%22%E9%93%81%E8%A1%80%E6%88%98%E5%A3%AB%E6%9D%80%E6%88%AE%E4%B9%8B%E5%9C%B02025HD1080P.mp4%22%3Bfilename*%3DUTF-8%27%27%25E9%2593%2581%25E8%25A1%2580%25E6%2588%2598%25E5%25A3%25AB%25E6%259D%2580%25E6%2588%25AE%25E4%25B9%258B%25E5%259C%25B02025HD1080P.mp4&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=CORP&x-amz-CLIENTTYPEIN=UNKNOWN&Signature=SeoV6FEQBcLB8985gSbTI5OHqTg%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778998571&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://media-sxty-fy-corp.sx3oss.ctyunxs.cn/CORPCLOUD/f076ccf5-a095-45a2-b086-cbf66f4aa40d.mp4?response-content-disposition=attachment%3Bfilename%3D%22%E9%93%81%E8%A1%80%E6%88%98%E5%A3%AB%E6%9D%80%E6%88%AE%E4%B9%8B%E5%9C%B02025HD1080P.mp4%22%3Bfilename*%3DUTF-8%27%27%25E9%2593%2581%25E8%25A1%2580%25E6%2588%2598%25E5%25A3%25AB%25E6%259D%2580%25E6%2588%25AE%25E4%25B9%258B%25E5%259C%25B02025HD1080P.mp4&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=CORP&x-amz-CLIENTTYPEIN=UNKNOWN&Signature=SeoV6FEQBcLB8985gSbTI5OHqTg%3D&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&Expires=1778998571&x-amz-limitrate=102400&response-content-type=video/mp4&x-amz-FSIZE=2183471772&x-amz-UID=10000004591358&x-amz-UFID=31374317010337932",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "多多",
|
|
"file": "多多.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 23.25,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 412.19,
|
|
"detail": 361.981,
|
|
"player": 0.003,
|
|
"url_check": 974.619,
|
|
"total": 1772.979
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 72,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "9461",
|
|
"flag": "百度#多多",
|
|
"play_id": "https://pan.baidu.com/s/1pwIj24HVw6lpAUcUrJE-QQ?pwd=yyds"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/1pwIj24HVw6lpAUcUrJE-QQ?pwd=yyds",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=pwIj24HVw6lpAUcUrJE-QQ&pwd=yyds",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "如意资源",
|
|
"file": "如意资源.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 14.555,
|
|
"init": 0.001,
|
|
"home": 0.005,
|
|
"category": 684.794,
|
|
"detail": 338.689,
|
|
"player": 0.007,
|
|
"url_check": 1787.372,
|
|
"total": 2826.524
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "77365",
|
|
"flag": "rym3u8",
|
|
"play_id": "https://svip.ryiplay18.com/20260515/6453_8cf2f155/index.m3u8"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://svip.ryiplay18.com/20260515/6453_8cf2f155/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://svip.ryiplay18.com/20260515/6453_8cf2f155/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "寻川4K",
|
|
"file": "寻川4K.txt",
|
|
"success": false,
|
|
"failed_stage": "home",
|
|
"error": "分类列表为空",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 7.756,
|
|
"init": 10011.787,
|
|
"home": 0.014,
|
|
"category": 0.0,
|
|
"detail": 0.0,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 10019.894
|
|
},
|
|
"counts": {
|
|
"classes": 0,
|
|
"category_videos": 0,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": null,
|
|
"vod_id": null,
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "布布影视",
|
|
"file": "布布影视.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 12.946,
|
|
"init": 0.002,
|
|
"home": 0.002,
|
|
"category": 821.591,
|
|
"detail": 638.094,
|
|
"player": 1000.738,
|
|
"url_check": 328.553,
|
|
"total": 2802.828
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 24,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "69765",
|
|
"flag": "JD蓝光(1)",
|
|
"play_id": "JD4K@1@JD-5f4f247d6dfbc0b5d5cb1efeaa2303790"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://c167-obsdaz-ykj-01.obs.dualstack.cidc-rp-2006.joint.cmecloud.cn/1810c8ff2a78456b9348fadfe7ab0fd0086?response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%274K.mp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260517T054234Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260517%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=457e1a6e8050c2e9bdcf84f54c3a114a853d0f6b58cbbd4da397fca2bbf05078",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://c167-obsdaz-ykj-01.obs.dualstack.cidc-rp-2006.joint.cmecloud.cn/1810c8ff2a78456b9348fadfe7ab0fd0086?response-content-disposition=attachment%3B%20filename%2A%3DUTF-8%27%274K.mp4&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20260517T054234Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=AH4RWOMWLEL7ROYSF2S5%2F20260517%2Fcidc-rp-2006%2Fs3%2Faws4_request&t=2&u=1261698636582652615&ot=family&oi=1263000283947275586&f=FibTFWRt8ncqZsYDWQP5LF5BI3oB5_LXK&ext=eyJ1dCI6MX0%3D&X-Amz-Signature=457e1a6e8050c2e9bdcf84f54c3a114a853d0f6b58cbbd4da397fca2bbf05078",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "微观短剧",
|
|
"file": "微观短剧.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 4.802,
|
|
"init": 0.015,
|
|
"home": 169.074,
|
|
"category": 236.886,
|
|
"detail": 361.657,
|
|
"player": 0.006,
|
|
"url_check": 405.443,
|
|
"total": 1180.119
|
|
},
|
|
"counts": {
|
|
"classes": 30,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "都市",
|
|
"vod_id": "110000044555935694",
|
|
"flag": "1080P",
|
|
"play_id": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778996951&sign=7d653339a5fe413df7c4692579d83396"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778996951&sign=7d653339a5fe413df7c4692579d83396",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://tv-video.cdn.drama.9ddm.com/22/A0/22A0BFFF46651CC23355B115F6307653.mp4?timestamp=1778996951&sign=7d653339a5fe413df7c4692579d83396",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "新韩剧网",
|
|
"file": "新韩剧网.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 11.51,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 568.716,
|
|
"detail": 429.994,
|
|
"player": 401.708,
|
|
"url_check": 985.297,
|
|
"total": 2398.475
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 16,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "3559",
|
|
"flag": "在线云播",
|
|
"play_id": "3559_1_1"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://cdn.yzzyvip-29.com/20260201/16425_49d7d186/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://cdn.yzzyvip-29.com/20260201/16425_49d7d186/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "星星短剧",
|
|
"file": "星星短剧.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 14.596,
|
|
"init": 0.002,
|
|
"home": 0.002,
|
|
"category": 466.745,
|
|
"detail": 648.368,
|
|
"player": 0.01,
|
|
"url_check": 126.654,
|
|
"total": 1257.355
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 10,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1287",
|
|
"vod_id": "422599939194881@@穿越诡计爱上你@@苏清韵为了给妹妹治病,卖身富豪被卓熙辰所救,答应卓熙辰的契约婚姻。苏清韵受到了爱慕卓熙辰的上官溪玲的疯狂攻击与算计,导致妹妹离世。苏清韵误会记恨卓熙辰因此拿刀伤了他,自己也被判入狱五年。",
|
|
"flag": "星星短剧",
|
|
"play_id": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://img.novel.wsljf.xyz/shortPlay-mp4/420424102051841/EvnIm1746774634078/abc6208e-390b-4533-a1a4-b9e5741cc384/540x960/output.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "晚禾4K",
|
|
"file": "晚禾4K.txt",
|
|
"success": false,
|
|
"failed_stage": "unexpected",
|
|
"error": "'NoneType' object has no attribute 'get'",
|
|
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 428, in _validate_from_tid\n detail_result = _run_timed(result[\"timings_ms\"], \"detail\", spider.detailContent, clock, [vod_id])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/晚禾4K.txt\", line 469, in detailContent\nAttributeError: 'NoneType' object has no attribute 'get'\n",
|
|
"timings_ms": {
|
|
"module_load": 10.25,
|
|
"init": 100.552,
|
|
"home": 253.606,
|
|
"category": 443.987,
|
|
"detail": 113.657,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 924.745
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 20,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "27912",
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "木偶",
|
|
"file": "木偶.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 21.021,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 258.952,
|
|
"detail": 220.734,
|
|
"player": 0.02,
|
|
"url_check": 225.442,
|
|
"total": 727.061
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 72,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "25",
|
|
"vod_id": "7920",
|
|
"flag": "115#木偶",
|
|
"play_id": "https://115cdn.com/s/swf2d3336dh?password=if81"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://115cdn.com/s/swf2d3336dh?password=if81",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://115cdn.com/s/swf2d3336dh?password=if81",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "枕霜4K",
|
|
"file": "枕霜4K.txt",
|
|
"success": false,
|
|
"failed_stage": "unexpected",
|
|
"error": "'NoneType' object has no attribute 'get'",
|
|
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 428, in _validate_from_tid\n detail_result = _run_timed(result[\"timings_ms\"], \"detail\", spider.detailContent, clock, [vod_id])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/枕霜4K.txt\", line 469, in detailContent\nAttributeError: 'NoneType' object has no attribute 'get'\n",
|
|
"timings_ms": {
|
|
"module_load": 16.413,
|
|
"init": 194.932,
|
|
"home": 157.539,
|
|
"category": 81.052,
|
|
"detail": 66.308,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 519.235
|
|
},
|
|
"counts": {
|
|
"classes": 9,
|
|
"category_videos": 20,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "1099248",
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "栖鹤4K",
|
|
"file": "栖鹤4K.txt",
|
|
"success": false,
|
|
"failed_stage": "unexpected",
|
|
"error": "'NoneType' object has no attribute 'get'",
|
|
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 428, in _validate_from_tid\n detail_result = _run_timed(result[\"timings_ms\"], \"detail\", spider.detailContent, clock, [vod_id])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/栖鹤4K.txt\", line 469, in detailContent\nAttributeError: 'NoneType' object has no attribute 'get'\n",
|
|
"timings_ms": {
|
|
"module_load": 17.826,
|
|
"init": 238.823,
|
|
"home": 268.44,
|
|
"category": 124.2,
|
|
"detail": 119.187,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 771.61
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 20,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "20",
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "樱花动漫",
|
|
"file": "樱花动漫.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 4.802,
|
|
"init": 0.001,
|
|
"home": 0.0,
|
|
"category": 1837.726,
|
|
"detail": 1312.579,
|
|
"player": 1338.417,
|
|
"url_check": 498.14,
|
|
"total": 4992.243
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 36,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "guoman",
|
|
"vod_id": "18554",
|
|
"flag": "高清",
|
|
"play_id": "/play/18554-1-1/"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://v.lzcdn27.com/20260215/5293_35f4e89c/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://v.lzcdn27.com/20260215/5293_35f4e89c/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "橘子TV",
|
|
"file": "橘子TV.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 24.011,
|
|
"init": 389.618,
|
|
"home": 340.267,
|
|
"category": 353.869,
|
|
"detail": 457.574,
|
|
"player": 1112.343,
|
|
"url_check": 971.858,
|
|
"total": 3651.219
|
|
},
|
|
"counts": {
|
|
"classes": 8,
|
|
"category_videos": 18,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "50",
|
|
"vod_id": "399092",
|
|
"flag": "一起看APP",
|
|
"play_id": "25430680"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://usaydd.5gwcft9h.com/m3u87/share/7434749/7628489/20260514/154832/1080/index.m3u8?sign=c249e9d59aa241cfd1795b106009a0b3&t=1778996955",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://usaydd.5gwcft9h.com/m3u87/share/7434749/7628489/20260514/154832/1080/index.m3u8?sign=c249e9d59aa241cfd1795b106009a0b3&t=1778996955",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "欧歌",
|
|
"file": "欧歌.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 23.134,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 223.941,
|
|
"detail": 192.256,
|
|
"player": 0.009,
|
|
"url_check": 183.68,
|
|
"total": 623.595
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 72,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "30030",
|
|
"flag": "夸克",
|
|
"play_id": "https://pan.quark.cn/s/f1cd6eb05cc0"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.quark.cn/s/f1cd6eb05cc0",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.quark.cn/s/f1cd6eb05cc0",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "沐辞4K",
|
|
"file": "沐辞4K.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 15.65,
|
|
"init": 114.551,
|
|
"home": 196.701,
|
|
"category": 160.213,
|
|
"detail": 126.837,
|
|
"player": 114.674,
|
|
"url_check": 113.049,
|
|
"total": 842.421
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "398492",
|
|
"flag": "🔥蓝光🔥",
|
|
"play_id": "YYNB-03d250f5f587db3cd9229d2024013ef9@@@YYNB"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://fffan.wki8.com/hls/443ce69a856be3af59a4fbac9117e498.m3u8?token=8852aad60f716a10f142e9b35931953d&time=1778996954&YYNB.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://fffan.wki8.com/hls/443ce69a856be3af59a4fbac9117e498.m3u8?token=8852aad60f716a10f142e9b35931953d&time=1778996954&YYNB.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "河马短剧",
|
|
"file": "河马短剧.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 6.835,
|
|
"init": 0.001,
|
|
"home": 340.186,
|
|
"category": 617.16,
|
|
"detail": 1151.955,
|
|
"player": 0.092,
|
|
"url_check": 110.81,
|
|
"total": 2228.11
|
|
},
|
|
"counts": {
|
|
"classes": 10,
|
|
"category_videos": 10,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "462",
|
|
"vod_id": "41000188058",
|
|
"flag": "河马剧场",
|
|
"play_id": "https://dzzt-video.cbread.cn/a584a56e298ec4e6509687588f544534/6a0a8ec0/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://dzzt-video.cbread.cn/a584a56e298ec4e6509687588f544534/6a0a8ec0/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://dzzt-video.cbread.cn/a584a56e298ec4e6509687588f544534/6a0a8ec0/81/8x5/85x0/850x8/85088100014/612504118_1/612504118.720p.narrowv3.mp4",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "清沅4K",
|
|
"file": "清沅4K.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 5.614,
|
|
"init": 250.721,
|
|
"home": 263.742,
|
|
"category": 127.069,
|
|
"detail": 127.134,
|
|
"player": 1955.808,
|
|
"url_check": 614.238,
|
|
"total": 3345.616
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "164006",
|
|
"flag": "qq",
|
|
"play_id": "https://v.qq.com/x/cover/mzc00200enkg8d1/z41024zjmma.html@@@qq"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://apd-vlive.apdcdn.tc.qq.com/defaultts.tc.qq.com/B_iuPg00OvL_yhK6OLlGgQHQROuozDp9gitJq8Ukd9FjRaih3qt7k33SDUzYtWip7BN9c_gSh5sU_vylyFtmuF38VVmeDufYo9wCO8htVS8EMsVDv5w0Rero-MlVAU_4kRUSdOo6SRgDTodCi9bY_UgQ/svp_50112/zFBzxOy4kw14P7l0sAwtwG_9m5RfJ5PnjM0lbQtd6-XnIO2R4Qtep6BH1lPWHQRLO_4J3IGQkRGcjH-fqc45xxLuWR7_bE05Oja5JsmH-aJz93cjr3xV-SPb2_Trlns7dW0xYGeKzhkyZ7Ru-R1A_uzZwZVCMfYAMZlZET-bmWJcaVZiUIlX-PuwmIw-J3aJUXMDnqzMVpw/0325_gzc_1000102_0b53u4aksaaahuaedhqfsrvmbj6dvgvqblka.f322363.ts.m3u8?ver=4",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://apd-vlive.apdcdn.tc.qq.com/defaultts.tc.qq.com/B_iuPg00OvL_yhK6OLlGgQHQROuozDp9gitJq8Ukd9FjRaih3qt7k33SDUzYtWip7BN9c_gSh5sU_vylyFtmuF38VVmeDufYo9wCO8htVS8EMsVDv5w0Rero-MlVAU_4kRUSdOo6SRgDTodCi9bY_UgQ/svp_50112/zFBzxOy4kw14P7l0sAwtwG_9m5RfJ5PnjM0lbQtd6-XnIO2R4Qtep6BH1lPWHQRLO_4J3IGQkRGcjH-fqc45xxLuWR7_bE05Oja5JsmH-aJz93cjr3xV-SPb2_Trlns7dW0xYGeKzhkyZ7Ru-R1A_uzZwZVCMfYAMZlZET-bmWJcaVZiUIlX-PuwmIw-J3aJUXMDnqzMVpw/0325_gzc_1000102_0b53u4aksaaahuaedhqfsrvmbj6dvgvqblka.f322363.ts.m3u8?ver=4",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "滴答影视",
|
|
"file": "滴答影视.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 4.126,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 205.22,
|
|
"detail": 179.355,
|
|
"player": 0.004,
|
|
"url_check": 1088.714,
|
|
"total": 1477.993
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 48,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "3034",
|
|
"flag": "百度",
|
|
"play_id": "https://pan.baidu.com/s/1iUOPtAOz3ypj2nyY7Wv9Ww?pwd=969e"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/1iUOPtAOz3ypj2nyY7Wv9Ww?pwd=969e",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=iUOPtAOz3ypj2nyY7Wv9Ww&pwd=969e",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "潮流APP",
|
|
"file": "潮流APP.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 3.982,
|
|
"init": 0.002,
|
|
"home": 87.104,
|
|
"category": 93.762,
|
|
"detail": 135.968,
|
|
"player": 226.721,
|
|
"url_check": 104.119,
|
|
"total": 652.234
|
|
},
|
|
"counts": {
|
|
"classes": 10,
|
|
"category_videos": 12,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "10",
|
|
"vod_id": "75722",
|
|
"flag": "线路二 (点击换线)",
|
|
"play_id": "75722@@0@@0"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "http://43.248.100.143:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778996954187&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "http://43.248.100.143:9090/nby/m3u8/getM3u8?name=jx.91by.top&time=1778996954187&url=NBY-e84585334a25c5b49078dfac81549a0b.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "爱奇艺",
|
|
"file": "爱奇艺.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 35.368,
|
|
"init": 0.017,
|
|
"home": 3603.75,
|
|
"category": 455.58,
|
|
"detail": 534.704,
|
|
"player": 0.001,
|
|
"url_check": 111.102,
|
|
"total": 10676.691
|
|
},
|
|
"counts": {
|
|
"classes": 11,
|
|
"category_videos": 65,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "pcw:2",
|
|
"vod_id": "pcw:2$8000501352879101",
|
|
"flag": "爱奇艺",
|
|
"play_id": "http://www.iqiyi.com/v_273nwjut4mk.html"
|
|
},
|
|
"player": {
|
|
"parse": 1,
|
|
"url": "http://www.iqiyi.com/v_273nwjut4mk.html",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://www.iqiyi.com/v_273nwjut4mk.html",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "独播库",
|
|
"file": "独播库.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 11.117,
|
|
"init": 0.001,
|
|
"home": 0.0,
|
|
"category": 350.987,
|
|
"detail": 370.073,
|
|
"player": 324.591,
|
|
"url_check": 195.11,
|
|
"total": 1252.492
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 48,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "index",
|
|
"vod_id": "143470",
|
|
"flag": "独播库",
|
|
"play_id": "143470-1-1"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://vid.dbokutv.com/20260411/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsnsRsGlR7XgBJ8nSsfaQcPoBJ0nBJ0oCJaqD4CrCIvjS34/chunklist.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://vid.dbokutv.com/20260411/ppotb62-S71lT2yliZApDBSvkYzBsrmD3fpCJ4nBsnsRsGlR7XgBJ8nSsfaQcPoBJ0nBJ0oCJaqD4CrCIvjS34/chunklist.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "猫猫4K",
|
|
"file": "猫猫4K.txt",
|
|
"success": false,
|
|
"failed_stage": "url_check",
|
|
"error": "HTTP 403",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 12.005,
|
|
"init": 199.875,
|
|
"home": 270.406,
|
|
"category": 129.103,
|
|
"detail": 138.144,
|
|
"player": 138.872,
|
|
"url_check": 1136.768,
|
|
"total": 3613.757
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "2",
|
|
"vod_id": "188833",
|
|
"flag": "火猫备用T",
|
|
"play_id": "https://vip.dytt-see.com/20260515/38828_1bbe51d5/index.m3u8@@@dyttm3u8"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://vip.dytt-see.com/20260515/38828_1bbe51d5/index.m3u8",
|
|
"valid": false,
|
|
"reachable": false,
|
|
"status_code": 403,
|
|
"final_url": "https://vip.dytt-see.com/20260515/38828_1bbe51d5/index.m3u8",
|
|
"reason": "HTTP 403"
|
|
}
|
|
},
|
|
{
|
|
"spider": "玩偶哥哥",
|
|
"file": "玩偶哥哥.txt",
|
|
"success": false,
|
|
"failed_stage": "category",
|
|
"error": "分类视频列表为空",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 5.113,
|
|
"init": 0.0,
|
|
"home": 0.001,
|
|
"category": 123.986,
|
|
"detail": 0.0,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 256.949
|
|
},
|
|
"counts": {
|
|
"classes": 8,
|
|
"category_videos": 0,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "2",
|
|
"vod_id": null,
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "玩偶聚合",
|
|
"file": "玩偶聚合.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 10.181,
|
|
"init": 0.001,
|
|
"home": 0.095,
|
|
"category": 257.984,
|
|
"detail": 230.907,
|
|
"player": 0.005,
|
|
"url_check": 209.413,
|
|
"total": 709.017
|
|
},
|
|
"counts": {
|
|
"classes": 10,
|
|
"category_videos": 72,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "site_muou",
|
|
"vod_id": "site:muou:/index.php/vod/detail/id/7920.html",
|
|
"flag": "115#木偶",
|
|
"play_id": "https://115cdn.com/s/swf2d3336dh?password=if81"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://115cdn.com/s/swf2d3336dh?password=if81",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://115cdn.com/s/swf2d3336dh?password=if81",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "瓜子",
|
|
"file": "瓜子.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 5.2,
|
|
"init": 0.001,
|
|
"home": 0.019,
|
|
"category": 548.507,
|
|
"detail": 741.237,
|
|
"player": 340.226,
|
|
"url_check": 119.506,
|
|
"total": 1755.564
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "128782",
|
|
"flag": "1080",
|
|
"play_id": "vod_d_id=128782&vurl_id=3323715&domain_type=8&resolution=1080&type=play"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://vd.hxcztech.com/ddaf00f684b64f4da9a972d07862c157/20260517134915/decry/vd/20260311/MjYwZjE1YTRkO/172631/1998_1080/aac/h264/hls/decrypt/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://app.xn--55qx2ai23bz99b.cn/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "疏舟4K",
|
|
"file": "疏舟4K.txt",
|
|
"success": false,
|
|
"failed_stage": "unexpected",
|
|
"error": "'NoneType' object has no attribute 'get'",
|
|
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 428, in _validate_from_tid\n detail_result = _run_timed(result[\"timings_ms\"], \"detail\", spider.detailContent, clock, [vod_id])\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/疏舟4K.txt\", line 469, in detailContent\nAttributeError: 'NoneType' object has no attribute 'get'\n",
|
|
"timings_ms": {
|
|
"module_load": 4.85,
|
|
"init": 83.172,
|
|
"home": 830.926,
|
|
"category": 665.671,
|
|
"detail": 402.538,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 1988.2
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 20,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "337750",
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "百度短剧",
|
|
"file": "百度短剧.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 3.403,
|
|
"init": 0.001,
|
|
"home": 456.854,
|
|
"category": 283.129,
|
|
"detail": 571.71,
|
|
"player": 226.418,
|
|
"url_check": 71.621,
|
|
"total": 1613.815
|
|
},
|
|
"counts": {
|
|
"classes": 29,
|
|
"category_videos": 9,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "3",
|
|
"vod_id": "10284595040762396431",
|
|
"flag": "百度短剧",
|
|
"play_id": "4723147730512611191|||10284595040762396431"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "http://vd3.bdstatic.com/mda-rgu31fx13xnschwc/1080p/mv_cae264_backtrack_1080p_normal/1753858859061604699/mda-rgu31fx13xnschwc.mp4?v_from_s=haokan-ui-video-hna",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "http://vd3.bdstatic.com/mda-rgu31fx13xnschwc/1080p/mv_cae264_backtrack_1080p_normal/1753858859061604699/mda-rgu31fx13xnschwc.mp4?v_from_s=haokan-ui-video-hna",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "盘Ta",
|
|
"file": "盘Ta.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 3.779,
|
|
"init": 0.001,
|
|
"home": 333.053,
|
|
"category": 262.754,
|
|
"detail": 294.094,
|
|
"player": 0.029,
|
|
"url_check": 241.374,
|
|
"total": 1135.721
|
|
},
|
|
"counts": {
|
|
"classes": 8,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "?tagId=39765285016165",
|
|
"vod_id": "264430",
|
|
"flag": "移动",
|
|
"play_id": "https://yun.139.com/shareweb/%23/w/i/2sUfBKpu5QBqz"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://yun.139.com/shareweb/#/w/i/2sUfBKpu5QBqz",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://yun.139.com/shareweb/#/w/i/2sUfBKpu5QBqz",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "盘聚",
|
|
"file": "盘聚.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 6.941,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 161.017,
|
|
"detail": 180.734,
|
|
"player": 163.674,
|
|
"url_check": 1250.435,
|
|
"total": 1764.91
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "/",
|
|
"vod_id": "117684",
|
|
"flag": "百度1",
|
|
"play_id": "push://https://www.seedhub.cc/link_start/?redirect_to=pan_id_576185&movie_title=▶️▶️▶️【挽救计划】【4K 1080P】更新于 ✅ 今天"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/1e6bRvilOqU11I0aregqndA?pwd=ojmk",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=e6bRvilOqU11I0aregqndA&pwd=ojmk",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "盘链",
|
|
"file": "盘链.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 8.172,
|
|
"init": 0.024,
|
|
"home": 0.001,
|
|
"category": 931.47,
|
|
"detail": 212.167,
|
|
"player": 0.008,
|
|
"url_check": 1209.92,
|
|
"total": 2362.855
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "0",
|
|
"vod_id": "75716",
|
|
"flag": "百度",
|
|
"play_id": "push://https://pan.baidu.com/s/1rbhXV3rLNKd1wVta_hMYnw?pwd=8888"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/1rbhXV3rLNKd1wVta_hMYnw?pwd=8888",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=rbhXV3rLNKd1wVta_hMYnw&pwd=8888",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "知予4K",
|
|
"file": "知予4K.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 5.097,
|
|
"init": 7577.307,
|
|
"home": 265.045,
|
|
"category": 126.077,
|
|
"detail": 132.238,
|
|
"player": 1205.975,
|
|
"url_check": 128.162,
|
|
"total": 9441.164
|
|
},
|
|
"counts": {
|
|
"classes": 8,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "708689",
|
|
"flag": "瓜子自建",
|
|
"play_id": "GZYS-a56c6c369615a395e38bc5b7f0561ec8d23e6e8a7a9c9e40c876a49d6b385c47e02892d3b9a0375e74ac2f7ec3daf6d19133d3a807f51879bcaf7e5e493acec166044b95c5a0bf3222757eec4eed2fa2@@@GZYS"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://vd.hxcztech.com/378eef5685e1dcd46d89871f46197395/20260517134925/decry/vd/20260517/ZThmMTNjNGE3Y/111210/1920_1080/aac/h264/hls/decrypt/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://app.xn--55qx2ai23bz99b.cn/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "知年4K",
|
|
"file": "知年4K.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 5.753,
|
|
"init": 234.908,
|
|
"home": 168.751,
|
|
"category": 84.75,
|
|
"detail": 87.859,
|
|
"player": 77.544,
|
|
"url_check": 125.808,
|
|
"total": 786.455
|
|
},
|
|
"counts": {
|
|
"classes": 8,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "184854",
|
|
"flag": "线路☆蓝光",
|
|
"play_id": "guangya-234ea250ea2f120d64b1444c49b6c1920@@@yazi"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://kuyun2.cokey.xyz/hi168-25872-5902d4gz/uploads/107/5baab77d-944f-4ae4-82a0-f82a91f07bb3_duanjuwang.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=7FRXS8Z0QXC1SEJOST4T%2F20260330%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20260330T135546Z&X-Amz-Expires=3599&X-Amz-SignedHeaders=host&X-Amz-Signature=b63f9cbe5e51ee9aeb6da0c854e8f09ee0b6810a4a68950a2ecfe119655c3266",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://kuyun2.cokey.xyz/hi168-25872-5902d4gz/uploads/107/5baab77d-944f-4ae4-82a0-f82a91f07bb3_duanjuwang.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=7FRXS8Z0QXC1SEJOST4T%2F20260330%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20260330T135546Z&X-Amz-Expires=3599&X-Amz-SignedHeaders=host&X-Amz-Signature=b63f9cbe5e51ee9aeb6da0c854e8f09ee0b6810a4a68950a2ecfe119655c3266",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "短剧优选",
|
|
"file": "短剧优选.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 27.244,
|
|
"init": 487.625,
|
|
"home": 0.318,
|
|
"category": 392.053,
|
|
"detail": 326.372,
|
|
"player": 0.005,
|
|
"url_check": 91.8,
|
|
"total": 1326.938
|
|
},
|
|
"counts": {
|
|
"classes": 11,
|
|
"category_videos": 74,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "七猫",
|
|
"vod_id": "七猫@24333",
|
|
"flag": "七猫短剧",
|
|
"play_id": "https://cdn-vod-playlet.wtzw.com/asset/b936eac78f199fd865afbe3c5b707e7f/play_multi_video/6f7310c287644b7c813ab8e2eb7a4a0c/f1223068052dd7f1bc88718af4b2c0e4.m3u8"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://cdn-vod-playlet.wtzw.com/asset/b936eac78f199fd865afbe3c5b707e7f/play_multi_video/6f7310c287644b7c813ab8e2eb7a4a0c/f1223068052dd7f1bc88718af4b2c0e4.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://cdn-vod-playlet.wtzw.com/asset/b936eac78f199fd865afbe3c5b707e7f/play_multi_video/6f7310c287644b7c813ab8e2eb7a4a0c/f1223068052dd7f1bc88718af4b2c0e4.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "短剧网",
|
|
"file": "短剧网.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 4.559,
|
|
"init": 0.001,
|
|
"home": 0.0,
|
|
"category": 249.489,
|
|
"detail": 219.718,
|
|
"player": 0.019,
|
|
"url_check": 216.07,
|
|
"total": 690.769
|
|
},
|
|
"counts": {
|
|
"classes": 2,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "https://sm3.cc/?id=50869",
|
|
"flag": "夸克",
|
|
"play_id": "https://pan.quark.cn/s/4ba23c32d016"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.quark.cn/s/4ba23c32d016",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.quark.cn/s/4ba23c32d016",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "糯米",
|
|
"file": "糯米.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 14.138,
|
|
"init": 0.001,
|
|
"home": 673.215,
|
|
"category": 819.994,
|
|
"detail": 130.276,
|
|
"player": 284.295,
|
|
"url_check": 378.057,
|
|
"total": 2301.427
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 81,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "/vod-type-id-1-pg-1.html",
|
|
"vod_id": "90063",
|
|
"flag": "uvw",
|
|
"play_id": "/vod-play-id-90063-src-1-num-1.html"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://vip.123pan.cn/1853039965/dy/东北往事极恶不赦.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://vip.123pan.cn/1853039965/dy/%E4%B8%9C%E5%8C%97%E5%BE%80%E4%BA%8B%E6%9E%81%E6%81%B6%E4%B8%8D%E8%B5%A6.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "网易云音乐",
|
|
"file": "网易云音乐.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 6.645,
|
|
"init": 0.001,
|
|
"home": 415.601,
|
|
"category": 387.953,
|
|
"detail": 0.005,
|
|
"player": 8085.541,
|
|
"url_check": 61.402,
|
|
"total": 8958.831
|
|
},
|
|
"counts": {
|
|
"classes": 62,
|
|
"category_videos": 100,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "/discover/toplist?id=19723756",
|
|
"vod_id": "3378820676@Still Freestylin'@BIG Naughty👉MP3",
|
|
"flag": "网易云音乐",
|
|
"play_id": "3378820676"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://iot102.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260517141424/53c7845d4eea1cb168534d42229e3617/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/80051642439/3765/201f/3ffa/6db7d90f5ad4d1d73ae205fab7bc1552.mp3",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://iot102.music.126.net/Yml6PWlvdCZjaGFubmVsPW5ldGVhc2Umc2NlbmU9YW5kcmNhcg/20260517141424/53c7845d4eea1cb168534d42229e3617/jdymusic/obj/wo3DlMOGwrbDjj7DisKw/80051642439/3765/201f/3ffa/6db7d90f5ad4d1d73ae205fab7bc1552.mp3",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "耐视点播",
|
|
"file": "耐视点播.txt",
|
|
"success": false,
|
|
"failed_stage": "category",
|
|
"error": "分类视频列表为空",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 10.201,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 1329.119,
|
|
"detail": 0.0,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 2899.864
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 0,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "2",
|
|
"vod_id": null,
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "腾讯视频",
|
|
"file": "腾讯视频.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 12.714,
|
|
"init": 0.001,
|
|
"home": 134.047,
|
|
"category": 276.64,
|
|
"detail": 928.62,
|
|
"player": 0.003,
|
|
"url_check": 205.651,
|
|
"total": 1559.146
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 12,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "choice",
|
|
"vod_id": "choice$mzc002009g0nh88",
|
|
"flag": "腾讯视频",
|
|
"play_id": "https://v.qq.com/x/cover/mzc002009g0nh88/w4102d4f4ur.html"
|
|
},
|
|
"player": {
|
|
"parse": 1,
|
|
"url": "https://v.qq.com/x/cover/mzc002009g0nh88/w4102d4f4ur.html",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://v.qq.com/x/cover/mzc002009g0nh88/w4102d4f4ur.html",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "至臻",
|
|
"file": "至臻.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 19.659,
|
|
"init": 0.002,
|
|
"home": 0.002,
|
|
"category": 308.455,
|
|
"detail": 232.21,
|
|
"player": 0.022,
|
|
"url_check": 231.506,
|
|
"total": 792.679
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 72,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "20436",
|
|
"flag": "夸克#至臻",
|
|
"play_id": "https://pan.quark.cn/s/76aa8cdbc04e"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.quark.cn/s/76aa8cdbc04e",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.quark.cn/s/76aa8cdbc04e",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "茶杯狐",
|
|
"file": "茶杯狐.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 23.119,
|
|
"init": 0.001,
|
|
"home": 1014.473,
|
|
"category": 884.558,
|
|
"detail": 675.366,
|
|
"player": 1382.712,
|
|
"url_check": 1118.804,
|
|
"total": 5099.713
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 35,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "detail/video/113726",
|
|
"flag": "FF有广",
|
|
"play_id": "play/113726-1-1"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://vip.ffzy-play9.com/20260517/41455_299d8968/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://vip.ffzy-play9.com/20260517/41455_299d8968/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "虎斑",
|
|
"file": "虎斑.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 14.87,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 4401.167,
|
|
"detail": 3995.838,
|
|
"player": 0.031,
|
|
"url_check": 214.51,
|
|
"total": 8627.296
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 72,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "/index.php/vod/detail/id/457549.html",
|
|
"flag": "夸克#虎斑",
|
|
"play_id": "https://pan.quark.cn/s/7a0c72c885de"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.quark.cn/s/7a0c72c885de",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.quark.cn/s/7a0c72c885de",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "蜡笔",
|
|
"file": "蜡笔.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 18.199,
|
|
"init": 0.002,
|
|
"home": 0.001,
|
|
"category": 557.478,
|
|
"detail": 342.282,
|
|
"player": 0.006,
|
|
"url_check": 982.132,
|
|
"total": 1900.827
|
|
},
|
|
"counts": {
|
|
"classes": 7,
|
|
"category_videos": 72,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "29",
|
|
"vod_id": "9231",
|
|
"flag": "百度#蜡笔",
|
|
"play_id": "https://pan.baidu.com/s/1LZC9v0B6ETfpQWooAqqxJA?pwd=jcx5"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://pan.baidu.com/s/1LZC9v0B6ETfpQWooAqqxJA?pwd=jcx5",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://pan.baidu.com/share/init?surl=LZC9v0B6ETfpQWooAqqxJA&pwd=jcx5",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "袋鼠影视",
|
|
"file": "袋鼠影视.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 12.96,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 614.462,
|
|
"detail": 215.046,
|
|
"player": 207.831,
|
|
"url_check": 949.919,
|
|
"total": 2001.526
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 36,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "414893",
|
|
"flag": "蓝光专线4",
|
|
"play_id": "play/414893-1-0"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://play.phimgood.com/20260516/26886_f6f20ada/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://play.phimgood.com/20260516/26886_f6f20ada/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "视界",
|
|
"file": "视界.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 7.446,
|
|
"init": 0.001,
|
|
"home": 376.972,
|
|
"category": 198.084,
|
|
"detail": 206.546,
|
|
"player": 464.808,
|
|
"url_check": 321.357,
|
|
"total": 1576.544
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "20",
|
|
"vod_id": "58032",
|
|
"flag": "HD2K源①",
|
|
"play_id": "parse_api=d9f9042eda382ed2f70e1768a99bb4dd&url=XVgP91nhDYjtbBTtMLsXszZufgvi/fjSDTVBq0DaT+0h9YKOxWGxk8i6xy6oASjC&token=617bff387b0770180a5ec58b5422572f|给你爱情处方|1"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://media-bjcy-fy-person01.bjoss.ctyunxs.cn/PERSONCLOUD/b2f2a0ae-95ad-4425-843e-ce655549e99f.m3u8?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=51200&x-amz-UID=269636103&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%2201.m3u8%22%3Bfilename*%3DUTF-8%27%2701.m3u8&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=FL%2BLOL4TggS1Xp/V7yAF%2BvzHtRU%3D&Expires=1778997179&x-amz-FSIZE=105195&x-amz-UFID=125281235925525184",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://media-bjcy-fy-person01.bjoss.ctyunxs.cn/PERSONCLOUD/b2f2a0ae-95ad-4425-843e-ce655549e99f.m3u8?x-amz-CLIENTTYPEIN=UNKNOWN&AWSAccessKeyId=0Lg7dAq3ZfHvePP8DKEU&x-amz-userLevel=0&x-amz-limitrate=51200&x-amz-UID=269636103&x-amz-APPID=828221&response-content-disposition=attachment%3Bfilename%3D%2201.m3u8%22%3Bfilename*%3DUTF-8%27%2701.m3u8&x-amz-CLIENTNETWORK=UNKNOWN&x-amz-CLOUDTYPEIN=PERSON&Signature=FL%2BLOL4TggS1Xp/V7yAF%2BvzHtRU%3D&Expires=1778997179&x-amz-FSIZE=105195&x-amz-UFID=125281235925525184",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "路漫漫",
|
|
"file": "路漫漫.txt",
|
|
"success": false,
|
|
"failed_stage": "unexpected",
|
|
"error": "HTTPSConnectionPool(host='www.lmm85.com', port=443): Read timed out. (read timeout=15)",
|
|
"traceback": "Traceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 464, in _make_request\n self._validate_conn(conn)\n ~~~~~~~~~~~~~~~~~~~^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 1093, in _validate_conn\n conn.connect()\n ~~~~~~~~~~~~^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 796, in connect\n sock_and_verified = _ssl_wrap_socket_and_match_hostname(\n sock=sock,\n ...<14 lines>...\n assert_fingerprint=self.assert_fingerprint,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connection.py\", line 975, in _ssl_wrap_socket_and_match_hostname\n ssl_sock = ssl_wrap_socket(\n sock=sock,\n ...<8 lines>...\n tls_in_tls=tls_in_tls,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/ssl_.py\", line 483, in ssl_wrap_socket\n ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)\nTimeoutError: _ssl.c:1063: The handshake operation timed out\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/requests/adapters.py\", line 645, in send\n resp = conn.urlopen(\n method=request.method,\n ...<9 lines>...\n chunked=chunked,\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 841, in urlopen\n retries = retries.increment(\n method, url, error=new_e, _pool=self, _stacktrace=sys.exc_info()[2]\n )\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/retry.py\", line 490, in increment\n raise reraise(type(error), error, _stacktrace)\n ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/util/util.py\", line 39, in reraise\n raise value\n File \"/home/harold/workspace/atv-spiders/py/.venv/lib/python3.14/site-packages/urllib3/connectionpool.py\", line 787, in urlopen\n response = self._make_request(\n conn,\n ...<10 lines>...\n **response_kw,\n )\nurllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.lmm85.com', port=443): Read timed out. (read timeout=15)\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 716, in validate_spider_file\n _validate_from_tid(\n ~~~~~~~~~~~~~~~~~~^\n spider=spider,\n ^^^^^^^^^^^^^^\n ...<6 lines>...\n logger=logger,\n ^^^^^^^^^^^^^^\n )\n ^\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 412, in _validate_from_tid\n category_result = _run_timed(result[\"timings_ms\"], \"category\", spider.categoryContent, clock, tid, \"1\", False, {})\n File \"/home/harold/workspace/atv-spiders/py/validate_spiders.py\", line 291, in _run_timed\n return func(*args, **kwargs)\n File \"/home/harold/workspace/tvbox-resources/py/路漫漫.txt\", line 122, in categoryContent\n File \"/home/harold/workspace/tvbox-resources/py/路漫漫.txt\", line 80, in _get_html\nrequests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.lmm85.com', port=443): Read timed out. (read timeout=15)\n",
|
|
"timings_ms": {
|
|
"module_load": 4.534,
|
|
"init": 0.0,
|
|
"home": 0.0,
|
|
"category": 15018.202,
|
|
"detail": 0.0,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 15029.15
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 0,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "6",
|
|
"vod_id": null,
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "酷我听书",
|
|
"file": "酷我听书.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 10.523,
|
|
"init": 0.001,
|
|
"home": 390.069,
|
|
"category": 92.569,
|
|
"detail": 3710.173,
|
|
"player": 157.958,
|
|
"url_check": 42.213,
|
|
"total": 4405.232
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 21,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "2",
|
|
"vod_id": "13492273",
|
|
"flag": "酷我听书",
|
|
"play_id": "free|94448942"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "http://lv.sycdn.kuwo.cn/e1cff4b72866635459879dafe1d264aa/6a0956e2/resource/30106/trackmedia/long/M500002ZiI9a1sctnS.mp3?bitrate$128&format$mp3&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "http://lv.sycdn.kuwo.cn/e1cff4b72866635459879dafe1d264aa/6a0956e2/resource/30106/trackmedia/long/M500002ZiI9a1sctnS.mp3?bitrate$128&format$mp3&source$kwplayerhd_ar_4.3.0.8_tianbao_T1A_qirui.apk&type$convert_url_with_sign&user$&loginUid$",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "酷狗音乐",
|
|
"file": "酷狗音乐.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 36.921,
|
|
"init": 450.495,
|
|
"home": 275.081,
|
|
"category": 241.221,
|
|
"detail": 263.218,
|
|
"player": 308.738,
|
|
"url_check": 38.531,
|
|
"total": 1617.993
|
|
},
|
|
"counts": {
|
|
"classes": 12,
|
|
"category_videos": 15,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "recommend",
|
|
"vod_id": "715773182",
|
|
"flag": "酷狗音乐",
|
|
"play_id": "715773182"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "http://fsdg360.hw.kugou.com/202605171349/de70652dd26d12ace274a439251110ea/v3/be84f84c55d0d1b458158092272cc3a8/yp/p_0_960127/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx715773182_qu128_s1653288551.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "http://fsdg360.hw.kugou.com/202605171349/de70652dd26d12ace274a439251110ea/v3/be84f84c55d0d1b458158092272cc3a8/yp/p_0_960127/ap1013_us0_mic85f71c379c462618de1399950957c33_pi6101_mx715773182_qu128_s1653288551.mp3?ft=car_203559_10049&fts=b05bb02d44717442054bac7624ed9a29&ext=.mp3",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "金牌",
|
|
"file": "金牌.txt",
|
|
"success": false,
|
|
"failed_stage": "url_check",
|
|
"error": "HTTP 403",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 12.656,
|
|
"init": 0.001,
|
|
"home": 1637.76,
|
|
"category": 191.096,
|
|
"detail": 189.546,
|
|
"player": 200.895,
|
|
"url_check": 103.798,
|
|
"total": 3065.385
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "2",
|
|
"vod_id": "141585",
|
|
"flag": "金牌线路",
|
|
"play_id": "141585@1258194"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a098112&whip=212.107.29.200&sign=559e393abfb221cc406508ef9047dd378184c2ee",
|
|
"valid": false,
|
|
"reachable": false,
|
|
"status_code": 403,
|
|
"final_url": "https://ppvod01.kqgfbs.com/splitOut/20260103/1226906/V20260103184854978121226906/index.m3u8?t=6a098112&whip=212.107.29.200&sign=559e393abfb221cc406508ef9047dd378184c2ee",
|
|
"reason": "HTTP 403"
|
|
}
|
|
},
|
|
{
|
|
"spider": "闪电",
|
|
"file": "闪电.txt",
|
|
"success": false,
|
|
"failed_stage": "category",
|
|
"error": "分类视频列表为空",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 15.807,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 1290.377,
|
|
"detail": 0.0,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 2564.621
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 0,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": "2",
|
|
"vod_id": null,
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "飞快TV",
|
|
"file": "飞快TV.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 3.978,
|
|
"init": 0.001,
|
|
"home": 0.0,
|
|
"category": 943.677,
|
|
"detail": 951.179,
|
|
"player": 965.695,
|
|
"url_check": 1771.723,
|
|
"total": 4637.813
|
|
},
|
|
"counts": {
|
|
"classes": 4,
|
|
"category_videos": 40,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "19623",
|
|
"flag": "高清317",
|
|
"play_id": "/vodplay/19623-2-1.html"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://cdn.yzzy31-play.com/20260410/18169_b0cf1ee8/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://cdn.yzzy31-play.com/20260410/18169_b0cf1ee8/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "魔方APP",
|
|
"file": "魔方APP.txt",
|
|
"success": false,
|
|
"failed_stage": "home",
|
|
"error": "分类列表为空",
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 9.029,
|
|
"init": 0.002,
|
|
"home": 134.876,
|
|
"category": 0.0,
|
|
"detail": 0.0,
|
|
"player": 0.0,
|
|
"url_check": 0.0,
|
|
"total": 144.226
|
|
},
|
|
"counts": {
|
|
"classes": 0,
|
|
"category_videos": 0,
|
|
"detail_videos": 0,
|
|
"episodes": 0
|
|
},
|
|
"samples": {
|
|
"tid": null,
|
|
"vod_id": null,
|
|
"flag": null,
|
|
"play_id": null
|
|
},
|
|
"player": {
|
|
"parse": null,
|
|
"url": "",
|
|
"valid": false,
|
|
"reachable": null,
|
|
"status_code": null,
|
|
"final_url": "",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "麦田影院",
|
|
"file": "麦田影院.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 8.677,
|
|
"init": 0.001,
|
|
"home": 0.001,
|
|
"category": 464.831,
|
|
"detail": 137.313,
|
|
"player": 0.075,
|
|
"url_check": 313.959,
|
|
"total": 926.978
|
|
},
|
|
"counts": {
|
|
"classes": 6,
|
|
"category_videos": 20,
|
|
"detail_videos": 1,
|
|
"episodes": 2
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "171427",
|
|
"flag": "LZ源",
|
|
"play_id": "eyJ1cmwiOiJodHRwczovL3YubHpjZG4yNy5jb20vMjAyNTA3MzEvNjc5XzUwYTJiMDQ3L2luZGV4Lm0zdTgiLCJwYXJzZV9hcGkiOiJodHRwczovL2RlbC5tdDMyMC5jb20vbHpmZi5waHA_dXJsPSIsImhlYWRlcnMiOnt9LCJ1c2VyX2FnZW50IjoiIn0="
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://v.lzcdn27.com/20250731/679_50a2b047/index.m3u8",
|
|
"reason": null
|
|
}
|
|
},
|
|
{
|
|
"spider": "黑猫APP",
|
|
"file": "黑猫APP.txt",
|
|
"success": true,
|
|
"failed_stage": null,
|
|
"error": null,
|
|
"traceback": null,
|
|
"timings_ms": {
|
|
"module_load": 21.72,
|
|
"init": 0.001,
|
|
"home": 945.861,
|
|
"category": 605.558,
|
|
"detail": 595.593,
|
|
"player": 0.03,
|
|
"url_check": 926.427,
|
|
"total": 3096.786
|
|
},
|
|
"counts": {
|
|
"classes": 5,
|
|
"category_videos": 30,
|
|
"detail_videos": 1,
|
|
"episodes": 1
|
|
},
|
|
"samples": {
|
|
"tid": "1",
|
|
"vod_id": "93764",
|
|
"flag": "🐈⬛标清线路2",
|
|
"play_id": "标清线路3@@direct@@,https://vip.ffzy-play9.com/20260517/41455_299d8968/index.m3u8,token+,1,0"
|
|
},
|
|
"player": {
|
|
"parse": 0,
|
|
"url": "https://vip.ffzy-play9.com/20260517/41455_299d8968/index.m3u8",
|
|
"valid": true,
|
|
"reachable": true,
|
|
"status_code": 200,
|
|
"final_url": "https://vip.ffzy-play9.com/20260517/41455_299d8968/index.m3u8",
|
|
"reason": null
|
|
}
|
|
}
|
|
]
|
|
} |