东阳网站制作/镇江百度关键词优化
2024最新python使用yt-dlp下载YT视频
- 1.获取yt的cookie
- 1)google浏览器下载Get cookies.txt LOCALLY插件
- 2)导出cookie
- 2.yt-dlp下载[yt-dlp的GitHub地址](https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file)
- 1)使用Pycharm(2024.3)进行代码demo编写
- 2)使用的python版本3.9.13
- 3)Pycharm下载对应的第三方库yt-dlp
- 4)使用命令进行下载
- 5)复制cookie到根目录
- 5)python代码
- 6)运行测试
- 3.注意事项
- 1)配置
- 2)yt-dlp配置
- 4.demo项目github地址
1.获取yt的cookie
1)google浏览器下载Get cookies.txt LOCALLY插件
https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc
2)导出cookie
推荐使用cookies方式,因为:
更安全,不需要存储密码
避免频繁登录导致的验证码问题
可以访问账号订阅的内容
支持年龄限制视频的下载
记住要定期更新cookies以确保其有效性。
2.yt-dlp下载yt-dlp的GitHub地址
1)使用Pycharm(2024.3)进行代码demo编写
2)使用的python版本3.9.13
3)Pycharm下载对应的第三方库yt-dlp
4)使用命令进行下载
pip install yt-dlp
提示pip警告
[notice] A new release of pip is available: 23.2.1 -> 24.3.1
[notice] To update, run: python.exe -m pip install --upgrade pip
更新就行了
python.exe -m pip install --upgrade pip
5)复制cookie到根目录
5)python代码
import yt_dlp
from pathlib import Path
import osdef yt_test(url):try:# 创建下载目录video_path = Path("downloads/video")audio_path = Path("downloads/audio")video_path.mkdir(parents=True, exist_ok=True)audio_path.mkdir(parents=True, exist_ok=True)# yt-dlp 基础配置common_opts = {'cookiefile': r'www.youtube.com_cookies.txt','quiet': False,'no_warnings': False,'verbose': True,'proxy': 'http://127.0.0.1:10809','socket_timeout': 30,'retries': 3,'nocheckcertificate': True,'prefer_insecure': True}print("开始下载视频...")print(f"使用cookies文件: {common_opts['cookiefile']}")# 视频下载选项video_opts = {**common_opts,'format': 'best[ext=mp4][height<=720]/best[height<=720]/best','outtmpl': str(video_path / '%(title)s.%(ext)s'),}# 音频下载选项audio_opts = {**common_opts,'format': 'bestaudio[ext=m4a]/bestaudio','outtmpl': str(audio_path / '%(title)s.%(ext)s'),}# 获取视频信息print("正在获取视频信息...")with yt_dlp.YoutubeDL(common_opts) as ydl:info = ydl.extract_info(url, download=False)title = info['title']duration = info['duration']thumbnail = info['thumbnail']print(f"视频标题: {title}")print(f"视频时长: {duration // 60}:{duration % 60:02d}")print(f"缩略图URL: {thumbnail}")# 下载视频print("\n开始下载视频文件...")with yt_dlp.YoutubeDL(video_opts) as ydl:ydl.download([url])# 下载音频print("\n开始下载音频文件...")with yt_dlp.YoutubeDL(audio_opts) as ydl:ydl.download([url])# 获取下载后的文件路径video_file = next(video_path.glob(f"{title}.*"))audio_file = next(audio_path.glob(f"{title}.*"))print("\n下载完成!")print(f"视频文件: {video_file}")print(f"音频文件: {audio_file}")return {"status": "success","title": title,"duration": f"{duration // 60}:{duration % 60:02d}","thumbnail": thumbnail,"video_path": str(video_file),"audio_path": str(audio_file)}except Exception as e:print(f"\n下载过程中出错: {str(e)}")return {"status": "error", "message": str(e)}if __name__ == "__main__":# 测试URLtest_url = "******.com/watch?v=_KFzaJSxBcY"print("测试")print("-" * 50)print(f"测试URL: {test_url}")print("-" * 50)result = yt_test(test_url)if result["status"] == "success":print("\n测试成功!")print("-" * 50)print(f"标题: {result['title']}")print(f"时长: {result['duration']}")print(f"视频文件: {result['video_path']}")print(f"音频文件: {result['audio_path']}")else:print("\n测试失败!")print("-" * 50)print(f"错误信息: {result['message']}")
6)运行测试
3.注意事项
1)配置
猫: 常用7890
V2: 常用 10808/10809
S: 常用1080
2)yt-dlp配置
common_opts = {
‘cookiefile’: r’cookies.txt’,
‘quiet’: False,
‘no_warnings’: False,
‘verbose’: True,
#和上方的端口进行对应
‘proxy’: ‘http://127.0.0.1:10809’,
‘socket_timeout’: 30,
‘retries’: 3,
‘nocheckcertificate’: True,
‘prefer_insecure’: True
}
4.demo项目github地址
https://github.com/unkownc/python_demo/tree/main
相关文章:

2024最新python使用yt-dlp
2024最新python使用yt-dlp下载YT视频 1.获取yt的cookie1)google浏览器下载Get cookies.txt LOCALLY插件2)导出cookie 2.yt-dlp下载[yt-dlp的GitHub地址](https://github.com/yt-dlp/yt-dlp?tabreadme-ov-file)1)使用Pycharm(2024.3)进行代码…...

Python + 深度学习从 0 到 1(00 / 99)
希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【深度学习从 0 到 1】谢谢你的支持! ⭐ 什么是深度学习? 人工智能、机器学习与…...

单点登录深入详解之设计方案总结
基于cookie的单点登录解决方案 概述 用户登录之后 , 将认证信息存储至 Cookie ,当再次访问本服务或者访问其他应用服务时,直接从 Cookie 中传递认证信息,进行鉴权处理。 问题 1. 如何保障Cookie内用户认证信息的安全性? 第一, Cookie…...

Loadsh源码分析-forEach,eachRight,map,flatMap,flatMapDeep,flatMapDepth
处理数组array的函数已经学习完,接下来是collection相关的函数, collection指的是一组用于处理集合(如数组或对象)的工具函数。 lodash源码研读之forEach,forEachRight,map,flatMap,flatMapDeep,flatMapDepth 一、源码地址 GitH…...

检测到“runtimelibrary”的不匹配项: 值“mtd_staticdebug”不匹配值“mdd_dynamic”
1. 解释“runtimelibrary”不匹配错误的含义 在Visual Studio中,LNK2038错误表示链接器检测到项目与其依赖的库之间存在“Runtime Library”(运行时库)的不匹配。具体来说,这意味着编译项目时使用的运行时库类型与编译依赖库时使…...

go clean -modcache命令清理缓存
go clean -modcache命令用于清理Go模块的本地缓存。Go模块缓存位于$GOPATH/pkg/mod/cache目录下,存储了所有下载和使用的模块版本。当执行go clean -modcache时,这个命令会删除该目录下的所有内容,迫使Go在下次构建时重新下载所有依赖的模块。…...

C#结构体排序(数组)
结构体排序(数组) 1 示例1.1 以PointF为例展示效果1.2 运行结果展示 2实际运用2.1 创建结构体2.2 调用示例2.3 运行结果展示 1 示例 1.1 以PointF为例展示效果 private void button1_Click(object sender, EventArgs e) {Random random new Random();…...

基于边缘智能网关的机房安全监测应用
随着我国工业互联网的扎实推进,越来越多地区积极建设信息基础设施,以充沛算力支撑产业物联网的可持续发展,数据机房就是其中的典型代表。而且随着机房规模的扩大,对于机房的安全管理难题挑战也日益增加。 面向数据机房安全监测与管…...

【Jenkins】自动化部署 maven 项目笔记
文章目录 前言1. Jenkins 新增 Maven 项目2. Jenkins 配置 Github 信息3. Jenkins 清理 Workspace4. Jenkins 配置 后置Shell脚本后记 前言 目标:自动化部署自己的github项目 过程:jenkins 配置、 shell 脚本积累 相关连接 Jenkins 官方 docker 指导d…...

LeetCode 3243. Shortest Distance After Road Addition Queries I
🔗 https://leetcode.com/problems/shortest-distance-after-road-addition-queries-i 题目 有 n 个城市,编号 0 ~ n-1,从城市 i 到 i1 有一条路给若干高速路,表明从城市 u 到 v 有一条新增的路,v - u > 1返回每新…...

ML 系列:第 31 节— 机器学习中的协方差和相关性
文章目录 一、说明二、协方差和相关性2.1 协方差的概念2.1 相关 三、有关关联的高级主题 (有关详细信息)3.1 相关性和独立性3.2 零相关性和依赖性示例 四、相关性和因果关系五、结论 一、说明 协方差量化了两个随机变量协同变化的程度。当一个变量的较高…...

【鸿蒙】鸿蒙开发过程中this指向问题
文章目录 什么是 this?常见 this 指向问题案例分析:HarmonyOS 组件中的 this 指向问题问题描述问题分析原因 解决方案:绑定 this 的正确方法方法一:使用箭头函数方法二:手动绑定 this 完整代码示例使用箭头函数使用 bi…...

d3-contour 生成等高线图
D3.js 是一个强大的 JavaScript 库,用于创建动态、交互式数据可视化。d3-contour 是 D3.js 的一个扩展模块,用于生成等高线图(contour plots)。 属性和方法 属性 x: 一个函数,用于从数据点中提取 x 坐标。y: 一个函…...

Ubuntu20.04离线安装全教程(包括DellR940重置Raid 5、安装Ubuntu、设置root、安装nvidia英伟达显卡驱动及设置防火墙白名单)
本文记录重装Ubuntu20.04的所有记录,从服务器磁盘阵列重新排列、Ubuntu 20.04系统安装、配置root权限、安装Nvidia显卡驱动以及设置防火墙白名单的全部操作。 每一部分参考的博客的出处会放置于段落末尾,表示感谢! 一、重置服务器磁盘阵列&…...

Spring Boot 3 集成 Spring Security(2)授权
文章目录 授权配置 SecurityFilterChain基于注解的授权控制自定义权限决策 在《Spring Boot 3 集成 Spring Security(1)》中,我们简单实现了 Spring Security 的认证功能,通过实现用户身份验证来确保系统的安全性。Spring Securit…...

【开篇】.NET开源 ORM 框架 SqlSugar 系列
01. 前言 ☘️ 1.1 什么是ORM? 对象-关系映射(Object-Relational Mapping,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对…...

参加面试被问到的面试题
1.在程序中如何开启事务? 在Java中,使用JDBC(Java Database Connectivity)与数据库交互时,你可以使用Connection对象的setAutoCommit方法来控制事务。默认情况下,autoCommit是开启的,这意味着每…...

第29天:安全开发-JS应用DOM树加密编码库断点调试逆向分析元素属性操作
时间轴: 演示案例: JS 原生开发-DOM 树-用户交互 DOM:文档操作对象 浏览器提供的一套专门用来操作网页代码内容的功能,实现自主或用户交互动作反馈 安全问题:本身的前端代码通过 DOM 技术实现代码的更新修改ÿ…...

react 的路由功能
1. 安装依赖 pnpm add react-router-dom 2. 基本的路由设置(BrowserRouter) 在 main.tsx 入口文件中使用BrowserRouter组件来包裹整个应用。它会监听浏览器的 URL 变化。 import { StrictMode } from "react";import { createRoot } from …...

SurfaceFlinger学习之一:概览
SurfaceFlinger 是 Android 系统中负责合成和显示屏幕内容的关键系统服务,它运行在一个专用的进程中 (system/bin/surfaceflinger)。它的主要职责是将不同应用程序的绘制内容(即窗口或表面)组合起来,通过硬件抽象层(HA…...

Qt关于窗口一直调用paintEvent的踩坑实录
首先看以下代码: void ItemBlockWidget::paintEvent(QPaintEvent *ev) {// 先调用父类的 paintEvent 以执行默认绘制行为QWidget::paintEvent(ev);qDebug()<<"ItemBlockWidget重绘";QStyleOption opt;opt.initFrom(this);QPainter p(this);style()…...

C++11: STL之bind
C11: STL之bind 引言可调用对象的绑定绑定普通函数绑定静态函数绑定类成员函数绑定仿函数绑定Lambda 占位符std::placeholders的应用嵌套绑定参数重排序结合 STL 算法占位符传递到嵌套函数混合占位符与默认值复杂占位符组合 std::bind的原理std::bind 的设计思路简化实现示例 B…...

在线音乐播放器 —— 测试报告
自动化脚本源代码:Java: 利用Java解题与实现部分功能及小项目的代码集合 - Gitee.com 目录 前言 一、项目简介 1.项目背景 2.应用技术 (1)后端开发 (2)前端开发 (3)数据库 二、项目功能…...

等保测评讲解:安全管理中心
在数字化转型的背景下,网络安全的重要性愈发凸显,而作为中国边疆大省的黑龙江,其网络安全建设更是不可忽视。等保测评,即信息安全等级保护测评,是确保信息系统安全的关键环节。本文将详细讲解黑龙江等保测评中的安全管…...

vue3表单输入相关修饰符使用
在 Vue 3 中,.lazy、.number 和 .trim 是用于 v-model 指令的修饰符,它们可以帮助你在双向绑定时进行特定的处理。 1. .lazy 修饰符 .lazy 修饰符表示只在 input 事件之后触发更新,即输入框的内容发生变化后,只有在用户**失去焦…...

CSS笔记(二)类名复用
这里我通过两张不同位置的卡片来实现效果 代码 <!DOCTYPE html> <html><head><style>/*设置画布*/body{/* 方便排列与对齐*/display: flex; /*画布布满整个窗口*/height: 100vh;/*水平居中*/justify-content: center;/*垂直居中*/align-items: cente…...

TCP三次握手与四次挥手(TCP重传机制,2MSL)超详细!!!计算机网络
本篇是关于3次握手和四次挥手的详细解释~ 如果对你有帮助,请点个免费的赞吧,谢谢汪。(点个关注也可以!) 如果以下内容需要补充和修改,请大家在评论区多多交流~。 目录 1. TCP头部: 2. 三次握手…...

LCR 006. 两数之和 II - 输入有序数组
一.题目: LCR 006. 两数之和 II - 输入有序数组 - 力扣(LeetCode) 二.我的原始解法-暴力解法超时: class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]: # 暴力解法 result [] for i in rang…...

网络安全在现代企业中的重要作用
网络安全是这个数字时代最令人担忧的事情之一。对技术的依赖性越来越强,使其同时面临多种网络威胁。其声誉和法律后果的大幅下降可能归因于一次妥协。 这使得良好的网络安全成为所有企业的选择和必需品。本文介绍了网络安全的重要性、企业中常见的网络威胁以及公司…...

关于 EKS Bottlerocket AMI 版本与 Karpenter 配置的说明
问题1: Bottlerocket AMI 版本问题 之前,后端团队发现在使用 Bottlerocket v1.26.2 AMI 版本时,存在某些问题。经过 Bottlerocket 团队调查,此行为是罕见的 race condition 导致的结果。 我们在环境中重现了此状况,并且关注到由于 kubelet device manager 的启动时间晚于 NVI…...