吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4987|回复: 5
上一主题 下一主题
收起左侧

[Python 转载] 根据腾讯视频ID,查询播放列表

[复制链接]
跳转到指定楼层
楼主
kuruite 发表于 2020-11-20 12:43 回帖奖励
[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
"""
    <获取腾讯视频播放列表>:<get_video_list>
    <根据播放地址中的id,再拼接接口地址,批量获取该视频播放列表url(非视频源url)>
    :copyright: (c) 2020 by debris.
    :license: GPLv3, see LICENSE File for more details.
"""
import json
import requests
# http://s.video.qq.com/get_playsource?id=mzc00200db1ddbp&plat=2&type=1&data_type=2&video_type=3&plname=&otype=json&num_mod_cnt=20&callback=_jsonp_0_6914&_t=1474533056089
# 1)先获取视频vid集:
# API: https://access.video.qq.com/fcgi/PlayVidListReq?raw=1&vappid=17174171&vsecret=a06edbd9da3f08db096edab821b3acf3c27ee46e6d57c2fa&page_size=100&type=4&cid=[cid]
# 使用示例:https://access.video.qq.com/fcgi/PlayVidListReq?raw=1&vappid=17174171&vsecret=a06edbd9da3f08db096edab821b3acf3c27ee46e6d57c2fa&page_size=100&type=4&cid=mzc00200064yp7j
#
# 参数	必选填	示例	备注
# raw	必填	1	不可改
# vappid	必填	17174171	不可改
# vsecret	必填	a06edbd9da3f08db096edab821b3acf3c27ee46e6d57c2fa	浏览器获取
# page_size	必填	100	最高100
# type	必填	4	1,3,4
# cid	必填	mzc00200064yp7j
# 2)根据1)获取的vid集请求具体信息:
# API: https://union.video.qq.com/fcgi-bin/data?otype=json&tid=682&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=[请求的vid数组,以逗号隔开]&callback=jQuery1910506375746774991_1594126070664&_=1594126070672
# 使用示例:https://union.video.qq.com/fcgi-bin/data?otype=json&tid=682&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=n0034g18ry0,b0034rwc2bq,p0034580q2o,z003445xj4x&callback=jQuery1910506375746774991_1594126070664&_=1594126070672
#
# 参数	必选填	示例	备注
# otype	必填	json
# tid	必填	682
# appid	必填	20001238
# appkey	必填	6c03bbe9658448a4
# union_platform	必填	1
# idlist	必填	n0034g18ry0,b0034rwc2bq,p0034580q2o,z003445xj4x
# callback	选填	jQuery1910506375746774991_1594126070664
# _	必填	1594126070672


video_id = input('请输入腾讯视频ID:')
# video_id = 'mzc00200db1ddbp'
video_api_url = 'http://s.video.qq.com/get_playsource?id='+video_id+'&plat=2&type=1&data_type=2&video_type=3&plname=&otype=json&num_mod_cnt=20&_t=1474533056089'
print(video_api_url)
HEADERS = {
        "Content-Type": "application/json ;charset=utf-8 "
    }
req = requests.get(video_api_url,headers=HEADERS)
url_code = req.text
#对内容进行切分
url_code = url_code[len("QZOutputJson="):len(url_code)-1]
# print(type(url_code))
doc = json.loads(url_code)
videoPlayList = doc["playlist"][0]["videoPlayList"]
#方法一
for playInfo in videoPlayList:
#     #免费观看列表
#     if playInfo["markLabelList"] == []:
#         print('第%s集' % (playInfo["episode_number"]) + '$' + playInfo["playUrl"])
#     #vip观看列表
#     for labelist in playInfo["markLabelList"]:
#         if labelist['primeText'] == '预告':
#             break
#         print('第%s集' % (playInfo["episode_number"]) + '$' + playInfo["playUrl"])
    markLabel=playInfo["markLabelList"]
# # 如果markLabelList不是一个空的列表,那么获取第一个列表元素中的primeText的值和"预告"做对比,如果相同,那么跳过此次循环`
    if len(markLabel) > 0  and markLabel[0]["primeText"]=="预告":
        continue
    print('第%s集' % (playInfo["episode_number"]) + '$' + playInfo["playUrl"]+ "#")
# #方法二
# playlist=[]
# for playInfo in videoPlayList:
# # 如果markLabelList不是一个空的列表,那么获取第一个列表元素中的primeText的值和"预告"做对比,如果相同,那么跳过此次循环
#     markLabel=playInfo["markLabelList"]
#     if len(markLabel)>0  and markLabel[0]["primeText"]=="预告":
#         continue
#     result = {}
#     result["episode_number"] = playInfo["episode_number"]
#     result["playUrl"] = playInfo["playUrl"]
#     playlist.append(result)
# print(playlist)


免费评分

参与人数 2吾爱币 +6 热心值 +2 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
陌路司风 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
jiangteddy 发表于 2020-11-20 12:57
这能做什么?
3#
风褛 发表于 2020-11-20 13:00
头像被屏蔽
4#
勇攀高峰333 发表于 2020-11-20 13:33
5#
dork 发表于 2020-11-20 14:07
不过多久就不可用了
6#
taotianc 发表于 2020-11-20 14:15
有什么意义?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 20:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表