找回密码
  注册[Register]
查看: 546|回复: 9

[python] 腾讯、优酷、爱奇艺视频取列表

[复制链接]
发表于 2022-5-17 10:06 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

找了下腾讯、优酷、爱奇艺视频接口,先弄个批量取列表出来,方便以后视频批量下载


[Python] 纯文本查看 复制代码
import requests
import re
 
 
class get_list:
    def __init__(self,url):
        self.url = url
        self.type = ''
 
    def judge_type(self):
        if 'v.qq.com' in self.url:
            self.type = 'qq'
        elif 'iqiyi.com' in self.url:
            self.type = 'iqiyi'
        elif 'v.youku.com' in self.url:
            self.type = 'youku'
    def run(self):
        self.judge_type()
        if self.type == 'qq':
            return self.qq()
        elif self.type == 'iqiyi':
            return self.iqiyi()
        elif self.type == 'youku':
            return self.youku()
 
    def qq(self):
        def single(vid):
            single_title = f'https://vv.video.qq.com/getinfo?otype=ojson&vid={vid}'
            response2 = requests.get(single_title).json()  # vl.vi[0].ti
            title = response2['vl']['vi'][0]['ti']
            return title
 
        cid = re.findall('cover/(.+?).html', self.url)[0].split('/')[0]
 
        multi_title = f'http://data.video.qq.com/fcgi-bin/data?tid=431&idlist={cid}&appid=10001005&appkey=0d1a9ddd94de871b'
        response = requests.get(multi_title).text
        vids = re.findall('<video_ids>(.+?)</video_ids>', response)
        result = []
        for vid in vids:
            link = f'https://v.qq.com/x/cover/{cid}/{vid}.html'
            title = single(vid)
            info = {
                'url': link,
                'title': title
            }
            result.append(info)
 
        return result
    def iqiyi(self):
        def single(url):
            res = requests.get(url).text
            try:
                tvid = re.findall('"tvid":(\d+)', res)[0]
            except:
                tvid = re.findall('"tvId":(\d+)', res)[0]
            aid = re.findall('"albumId":(\d+)',res)[0]
            print(aid)
 
            infourl = f'http://mixer.video.iqiyi.com/mixin/videos/{tvid}'
            # https://pcw-api.iqiyi.com/video/video/playervideoinfo?tvid=8634212373749900
            response = requests.get(infourl).json()
            title = response['name']
            return title
 
        res = requests.get(self.url).text
 
        aid = re.findall('"albumId":(\d+)', res)[0]
 
        parse_url = f'https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid={aid}&page=1&size=200'
        response = requests.get(parse_url).json()
        Page = int(response['data']['page'])
        result = []
        for page in range(1,Page+1):
            parse_url = f'https://pcw-api.iqiyi.com/albums/album/avlistinfo?aid={aid}&page={page}&size=200'
            response = requests.get(parse_url).json()
            epsodelists = response['data']['epsodelist']
            for epsodelist in epsodelists:
                tvId = epsodelist['tvId']
                title = epsodelist['name']
                playUrl = epsodelist['playUrl']
                info = {
                    'url': playUrl,
                    'title': title
                }
                result.append(info)
        return result
    def youku(self):
        def single(url):
            vid = re.findall('id_(.+?).html',url)[0]
            parse_url = f'https://ups.youku.com/ups/get.json?vid={vid}&ccode=0532&client_ip=192.168.1.1&client_ts=1652685&utid=zugIG23ivx8CARuB3b823VC%2B'
            response = requests.get(parse_url).json()
            title = response['data']['video']['title']
            return title
 
        return single(self.url)
 
result = get_list(url='https://www.iqiyi.com/v_1pcnxhbip7s.html').run()
print(result)

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2022-5-17 10:10 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-5-17 10:13 | 显示全部楼层
先收藏了,万一用到呢
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-5-17 10:16 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-5-17 10:16 | 显示全部楼层
谢谢大佬分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-5-17 10:20 | 显示全部楼层

感谢楼主的分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-5-17 13:12 | 显示全部楼层
顶帖是一种态度,也是一种尊重。
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-5-30 10:47 | 显示全部楼层
感谢楼主分享!大牛有你更精彩!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-7-30 15:20 | 显示全部楼层
感谢楼主分享!大牛有你更精彩!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-8-19 19:20 来自手机 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-9 03:50 , Processed in 0.039619 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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