当前位置: 首页 > news >正文

媒体资讯视频数据采集-yt-dlp-python实际使用-下载视频

对于视频二创等一些业务场景,可能要采集youtube等的相关媒体视频资源,使用[yt-dlp](https://github.com/yt-dlp/yt-dlp)是一个不错的选择,提供的命令比较丰富,场景比较全面

yt-dlp 是一个用 Python 编写的命令行工具,主要用于从视频网站下载视频和音频。它是 youtube-dl 的一个分支,提供了一些额外的功能和增强。翻译后的详细的说明: GitHub上的 yt-dlp 的 GitHub 页。

下面是一些简易的使用说明(需要有python环境,可以使用conda的python环境)

安装 yt-dlp

你可以通过 pip 安装 yt-dlp

pip install -U yt-dlp

或者,你也可以直接从 GitHub 克隆最新版本:

git clone https://github.com/yt-dlp/yt-dlp.git
cd yt-dlp
python -m pip install .

基本用法

  1. 下载视频
   yt-dlp <视频网址>

例如:

   yt-dlp https://www.youtube.com/watch?v=dQw4w9WgXcQ
  1. 下载音频

    如果你只想下载音频,可以使用 -x 选项:

   yt-dlp -x --audio-format mp3 <视频网址>
  1. 指定下载格式

    默认情况下,yt-dlp 会选择最佳视频/音频格式,但你可以手动指定:

   yt-dlp -f "bestvideo[height<=720]+bestaudio" <视频网址>
  1. 下载整个播放列表

    如果视频网址是一个播放列表,你可以直接下载整个列表:

   yt-dlp <播放列表网址>
  1. 设置输出文件名

    你可以使用 -o 选项来指定下载的文件名格式:

   yt-dlp -o "%(title)s.%(ext)s" <视频网址>

高级用法

  1. 代理设置

    如果你需要使用代理,可以使用 --proxy 选项:

   yt-dlp --proxy "socks5://user:pass@host:port" <视频网址>
  1. 下载进度条

    默认情况下,yt-dlp 会显示下载进度。如果你希望以简洁模式下载,使用 --no-progress

   yt-dlp --no-progress <视频网址>
  1. 下载字幕

    如果视频有字幕,你可以选择下载它们:

   yt-dlp --write-sub --sub-lang "zh-Hans" <视频网址>

帮助和选项

要查看所有可用选项和帮助信息,可以使用:

yt-dlp --help

python中使用

pip安装yt-dlp

pip install -U yt-dlp

如果是Linux服务器上使用yt-dlp,需要有FFmpeg的支持

Ubuntu 上

使用包管理器 APT

  1. 更新软件包列表:

    sudo apt update

  2. 安装 FFmpeg:

    sudo apt install ffmpeg

    安装完成后,您可以在终端中输入 ffmpeg -version 来验证安装是否成功。

本地能翻qian的情况下,只能小量的采集数据;不然会报错

在这里插入图片描述

如果是大批量的采集某个网站的视频数据,最好是部署到服务器上,并且使用代理, 没有代理,采集量大了会报错提示(海外代理能只能使用海外服务器

``

import yt_dlpdef download_youtube_video(url, output_path):"""下载youtube视频:param url: 视频url:param output_path: 视频保存路径:return:"""format = Noneif 'shorts' in url:# 采集横版视频format = 'bestvideo[width=720]+bestaudio/best[width=720]'else:# 采集竖版视频format = 'bestvideo[height=720]+bestaudio/best[height=720]'options = {'format': format,'merge_output_format': 'mp4','outtmpl': output_path,# 使用代理(大批量下载需要使用代理-静态代理IP就行,动态的不太靠谱,静态代理IP失效了就换一批)# 'proxy': ''}try:with yt_dlp.YoutubeDL(options) as ydl:ydl.download([url])except yt_dlp.utils.DownloadError as e:print(f'下载失败-{e}')if __name__ == '__main__':# 竖版视频video_url = "https://www.youtube.com/shorts/cjTvuE9yCMo"print(f'获取竖版视频-{video_url}')output_path = "cjTvuE9yCMo.mp4"download_youtube_video(video_url, output_path)# 横版视频video_url = "https://www.youtube.com/watch?v=wojgbTK4_jU"output_path = "wojgbTK4_jU.mp4"download_youtube_video(video_url, output_path)print(f'获取竖版视频-{video_url}')

在这里插入图片描述

相关文章:

媒体资讯视频数据采集-yt-dlp-python实际使用-下载视频

对于视频二创等一些业务场景&#xff0c;可能要采集youtube等的相关媒体视频资源&#xff0c;使用[yt-dlp](https://github.com/yt-dlp/yt-dlp)是一个不错的选择&#xff0c;提供的命令比较丰富&#xff0c;场景比较全面yt-dlp 是一个用 Python 编写的命令行工具&#xff0c;主…...

MySQL 8

MySQL 8.0 相对于 MySQL 5.x(特别是 MySQL 5.7)引入了许多重要的新特性和改进。下面是一些主要的变化和增强功能的概述,包括一些示例来帮助理解这些新功能。 1. JSON 数据类型增强 JSON 类型索引:现在可以为 JSON 列创建索引,从而提高查询性能。JSON 函数扩展:增加了更多…...

Android进阶之路 - app后台切回前台触发超时保护退出登录

我们经常会在银行、金融或者其他行业的app中看到用户长时间将app放置于后台&#xff0c;当再次唤醒app时就会提示用户已退出登录&#xff0c;需要重新登录&#xff0c;那么该篇主要就是用于处理这种场景的 针对于放置后台的超时保护属于进程级别&#xff0c;所以我们需要监听进…...

论文阅读笔记:Semi-supervised Semantic Segmentation with Error Localization Network

论文阅读笔记&#xff1a;Semi-supervised Semantic Segmentation with Error Localization Network 1 背景2 创新点3 方法4 模块4.1 使用标注数据训练ELN4.2 使用ELN进行半监督 5 效果5.1 与SOTA方法对比5.2 消融实验 论文&#xff1a;https://arxiv.org/pdf/2204.02078v3.pdf…...

Flink开发语言选择:Java vs Scala,哪种更适合你的项目?

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 工&#x1f497;重&#x1f497;hao&#x1f497;&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题.…...

轻空间成功完成陕西渭南砂石料场气膜仓项目

轻空间&#xff08;江苏&#xff09;膜结构科技有限公司凭借卓越的技术实力与丰富的项目经验&#xff0c;成功完成了陕西省渭南市砂石料场气膜仓的建设。这一项目的顺利交付&#xff0c;不仅满足了当地对高效仓储的需求&#xff0c;也为西北地区的仓储设施建设树立了标杆。 陕西…...

pikachu~文件下载漏洞

0x02文件下载 # 首先看到界面都是对图片的下载&#xff0c;然后我们需要对其中一张照片进行下载&#xff0c;查看它的文件地址可以发现 http://127.0.0.1/pikachu-master/vul/unsafedownload/execdownload.php?filenameai.png# 看到链接后发现我们可以修改我们想要传的的路径…...

MTK Android12 关机界面全屏展示

需求:关机和重启按钮点击后,去掉正在关机的动画和tips,改为一张图片实现。 修改点 修改点如下: 涉及到的修改文件 修改: \vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\globalactionsGlobalActionsDialogLite.java新增: \vendor\media…...

初识云计算

随着科技的飞速发展&#xff0c;云计算作为一种新兴的信息技术架构&#xff0c;正在逐渐改变我们的工作方式和生活方式。 云计算是什么&#xff1f; 云计算是一种通过互联网提供计算资源和服务的计算模式。它通过互联网将计算和存储资源进行集中和共享&#xff0c;为用户提供…...

golang sync.Cond实现读写锁

直接上代码: package mainimport ("fmt""sync""time" )// RWLock 实现一个简单的读写锁 type RWLock struct {readerCount int // 当前正在读取的读者数量writerCount int // 当前正在写的写者数量mutex sync.Mutex // 保护…...

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃 1.背景 营销 Agent 指的是在营销过程中洞察客户并作出决策以及行动的 AI 智能体,包括感知、理解、决策、交互、反馈多个模块。对话 SOP 是交互模块中非常重要的部分,如何在缺少数据的情况下快速实现千人…...

设计模式-单例设计模式

单例模式的设计和线程安全 单例模式是一种创建型设计模式&#xff0c;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。实现单例模式时&#xff0c;线程安全性是一个重要考虑因素&#xff0c;特别是在多线程环境中。 1. C11 之前的线程安全实现 在 C11 之前&#…...

23_windows 使用sqlmap、kali使用sqlmap,SQL注入、sqlmap自动注入

sqlmap介绍 安装sqlmap 安装python环境 链接&#xff1a;https://pan.baidu.com/s/16QhhYCppSvuUikhKiOHNgg?pwd9LJY 提取码&#xff1a;9LJY C:\Users\leyilea> python // 测试python能不能用 >>> exit() // 退出 测试sqlmap是否可用 kali中运行sqlmap&#xff…...

WPF学习(12)-Image图像控件+GroupBox标题容器控件

Image图像控件 Image也算是独门独户的控件&#xff0c;因为它是直接继承于FrameworkElement基类。 Image控件就是图像显示控件。Image类能够加载显示的图片格式有.bmp、.gif、.ico、.jpg、.png、.wdp 和 .tiff。要注意的是&#xff0c;加载.gif动画图片时&#xff0c;仅显示第…...

【Linux】基础IO认知

文件 1、回顾C语言中的文件接口2、对文件的理解(阶段一)3、文件操作3、1、C的文件操作接口3、2、认识系统调用接口3、2、强化对fd文件描述符及周边知识的理解 1、回顾C语言中的文件接口 事实上&#xff0c;我们在C语言的学习中了解的文件并不是真正的文件。从语言角度来说&…...

7. Kubernetes核心资源之Service服务实战

**service分类 : ** **ClusterIP : ** 默认类型&#xff0c;自动分配一个【仅集群内部】可以访问的虚拟IP **NodePort : ** 对外访问应用使用&#xff0c;在ClusterIP基础上为Service在每台机器上绑定一个端口&#xff0c;就可以通过: ipNodePort来访问该服务 **LoadBalanc…...

《向量数据库指南》——企业采用非结构化数据的场景及其深远影响

引言 在当今数字化转型的浪潮中,企业数据的种类与规模正以前所未有的速度增长,其中非结构化数据作为信息时代的重要组成部分,其价值日益凸显。Lynn提出的关于企业最先采用非结构化数据的观察,引发了我们对这一领域深入探索的兴趣。Charles的见解则为我们揭示了非结构化数据…...

Linux内核编程(十二)热插拔

本文目录 一、知识点1. 热插拔概念2. 热插拔机制3. Netlink机制 二、内核发送uevent事件到用户空间1. kobject发送uevent事件2. udevadm命令查看★示例代码&#xff1a;★优化&#xff1a;完善kset_uevent_ops&#xff08;热插拔事件结构体&#xff09; 三、用户空间使用Netlin…...

七夕警示:探索社工库与网络搜索下的个人隐私泄露与保护策略

随着七夕节的脚步日益临近&#xff0c;空气中弥漫着浪漫与温馨的气息。这个充满爱意的节日&#xff0c;我们沉浸在与心爱之人共享甜蜜时光的同时&#xff0c;不应忽视网络安全和个人隐私保护的重要性。在数字化时代&#xff0c;个人信息泄露的风险无处不在&#xff0c;如何在享…...

Redis-哨兵监控(sentinel)

是什么 Docs 吹哨人巡查监控后台master主机是否故障&#xff0c;如果故障了根据投票数自动将某一个从库转换为新主库&#xff0c;继续对外服务 作用:无人值守运维 能干嘛 1.主从监控 监控主从redis的库是否运行正常 2.消息通知 哨兵可以将故障转移的结果发送给客户端 3.…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...