Python爬取全球最大视频网站YouTube视频

前言

作为目前全世界最大的视频网站,它几乎全是用Python来写的
该网站当前行业内在线视频服务提供商,该网站的系统每天要处理上千万个视频片段,为全球成千上万的用户提供高水平的视频上传、分发、展示、浏览服务。2015年2月,央视首次把春晚推送到该网站。
今天,我们就要用Python来快速批量下载该网站的视频

开发环境

版 本: python 3.8
编辑器:pycharm 2021.2
第三方模块:requests + tqdm

所需模块

import requests
import re
import json
from tqdm import tqdm
import os


对于本篇文章有疑问的同学可以加【资料白嫖、解答交流群:910981974】

开始代码编写

请求数据

headers = {
    'cookie': 'VISITOR_INFO1_LIVE=9qZVrzB27uI; PREF=f4=4000000&tz=Asia.Shanghai; _ga=GA1.2.621834420.1648121145; _gcl_au=1.1.1853038046.1648121145; NID=511=Zc1APdmEbCD-iqVNVgI_vD_0S3LVI3XSfl-wUZEvvMU2MLePFKsQCaKUlUtchHSg-kWEVMGOhWUbxpQMwHeIuLjhxaslwniMh1OsjVfmOeTfhpwcRYpMgqpZtNQ7qQApY21xEObCvIez6DCMbjRhRQ5P7siOD3X87QX0CFyUxmY; OTZ=6430350_24_24__24_; GPS=1; YSC=0E115KqM_-I; GOOGLE_ABUSE_EXEMPTION=ID=d02004902c3d0f4d:TM=1648620854:C=r:IP=47.57.243.77-:S=YmZXPW7dxbu83bDuauEpXpE; CONSISTENCY=AGDxDeNysJ2boEmzRP4v6cwgg4NsdN4-FYQKHCGhA0AeW1QjFIU1Ejq1j8l6lwAc6c-pYTJiSaQItZ1M6QeI1pQ3wictnWXTOZ6_y8EKlt0Y_JdakwW6srR39-NLuPgSgXrXwtS0XTUGXpdnt4k3JjQ',
    'referer': 'https://www.youtube.com/results?search_query=jk%E7%BE%8E%E5%A5%B3',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36'
}
url = 'https://www.有土比.com/watch?v=ImoXcSpR_io'
response = requests.get(url=url, headers=headers)

 

解析数据

json_str = re.findall('var ytInitialPlayerResponse = (.*?);var', response.text)[0]
json_data = json.loads(json_str)
video_url = json_data['streamingData']['adaptiveFormats'][0]['url']
audio_url = json_data['streamingData']['adaptiveFormats'][-2]['url']
title = json_data['videoDetails']['title']
title = title.replace(' ', '')
title = re.sub(r'[\/:|?*"<>]', '', title)

 

视频数据

video_pbar = tqdm(total=file_size)
with open(f'{title}.mp4', mode='wb') as f:
    for video_chunk in video.iter_content(1024*1024*2):
        f.write(video_chunk)
        video_pbar.set_description(f'正在下载{title}视频中......')
        video_pbar.update(1024*1024*2)
    video_pbar.set_description('下载完成!')
    video_pbar.close()

 

音频数据

audio = requests.get(audio_url, stream=True)
file_size = int(audio.headers.get('Content-Length'))
audio_pbar = tqdm(total=file_size)
with open(f'{title}.mp3', mode='wb') as f:
    for audio_chunk in audio.iter_content(1024*1024*2):
        f.write(audio_chunk)
        audio_pbar.set_description(f'正在下载{title}音频中......')
        audio_pbar.update(1024*1024*2)
    audio_pbar.set_description('下载完成!')
    audio_pbar.close()

 

合并音频和视频

def merge(title):
    ffmpeg = r'D:\Download\ffmpeg\bin\ffmpeg.exe -i ' + title + '.mp4 -i ' + title + '.mp3 -acodec copy -vcodec copy ' + title + '-out.mp4'
    os.popen(ffmpeg)

 

Python爬取全球最大视频网站YouTube视频

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬取全球最大视频网站YouTube视频 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • Python tkinter 制作文章搜索软件,有没有方便快捷不知道,好玩就行了

    前言 无聊的时候做了一个搜索文章的软件,有没有更加的方便快捷不知道,好玩就行了 环境使用 Python 3.8 Pycharm 模块使用 import requests import tkinter as tk from tkinter import ttk import webbrowser 最终效果 对于本篇文章有疑问的同学可以加【资料白嫖、解答交流群:…

    Python开发 2023年4月2日
    00
  • Python制作自动答题脚本,100%准确率,1秒10题提高效率

    前言 环境使用 Python 3.8 Pycharm 模块使用 import requests —> 数据请求模块 pip install requests import parsel —> 数据解析模块 pip install parsel from selenium import webdriver —> 自动测试模块 pip inst…

    Python开发 2023年4月2日
    00
  • Python selenium 实现大麦网自动抢票,简单的实现全购票过程

    前言 大麦网是中国综合类现场娱乐票务营销平台,业务覆盖演唱会、 话剧、音乐剧、体育赛事等领域今天,我们要用代码来实现他的购票过程 先来看看完成后的效果是怎么样的 对于本篇文章有疑问的同学可以加【资料白嫖、解答交流群:753182387】 开发环境 版 本:anaconda(python3.8.8) 编辑器:pycharm 代码实现步骤 实现免登陆 选座并且下…

    Python开发 2023年4月2日
    00
  • 英语不好能学好Python吗?Python常用英文单词汇总

    一、交互式环境与print输出 1、print:打印/输出2、coding:编码3、syntax:语法4、error:错误5、invalid:无效6、identifier:名称/标识符7、character :字符 二、字符串的操作 1、user:用户2、name:姓名/名称3、attribute:字段/属性4、value:值5、key:键 三、重复/转换/…

    Python开发 2023年4月2日
    00
  • 用Python实时获取steam特惠游戏数据

    前言 Steam是由美国电子游戏商Valve于2003年9月12日推出的数字发行平台,被认为是计算机游戏界最大的数码发行平台之一,Steam平台是全球最大的综合性数字发行平台之一。玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。 而每周的steam会开启了一轮特惠,可以让游戏打折,而玩家就会购买心仪的游戏 传说每次有大折扣,无数的玩家会去购买游戏,可…

    Python开发 2023年4月2日
    00
  • Python tkinter 一个Music download software的界面

    前言 本次案例最终实现效果 开发环境 python 3.8: 解释器 pycharm: 代码编辑器 界面代码实现 先导入所需模块 import tkinter as tk from tkinter import ttk import tkinter.messagebox 创建窗口 root = tk.Tk() root.title(‘XXX’) # 名字自己…

    Python开发 2023年4月2日
    00
  • 用代码收集每天热点内容信息,并发送到自己的邮箱

    前言 本篇文章内容主要为如何用代码,把你想要的内容,以邮件的形式发送出去内容可以自己完善,还可以设置一个定时发送,或者开机启动自动运行代码 代理注册与使用 注册账号并登录 生成api 将自己电脑加入白名单 http://api.tianqiip.com/white/add?key=xxx&brand=2&sign=xxx&ip=输入自己电脑的ip地址 1. …

    Python开发 2023年4月2日
    00
  • Python采集1000多所世界大学排名数据,制作可视化图

    前言 QS世界大学排名(QS World University Rankings)是由英国一家国际教育市场咨询公司Quacquarelli Symonds(简称QS)所发表的年度世界大学排名 采集全球大学排名数据(源码已分享,求点赞) import requests # 发送请求 import re import csv with open(‘rank.cs…

    Python开发 2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部