2024最新python使用yt-dlp
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…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...