

自动定时下载YouTube视频脚本
source link: https://vpsxb.net/4382/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

小白很久之前介绍过一款好用的YouTube视频下载工具:Youtube 专业下载工具,Youtube-dl & yt-dlp详细使用教程与初学上手示例,我们可以非常方便的把自己喜欢的油管up主的视频下载下来,但是每次都需要手动输入命令行下载,总感觉差了点意思,要是可以每天自动定时下载,岂不美哉。

yt-dlp下载脚本
关于yt-dlp的安装以及使用,Youtube 专业下载工具,Youtube-dl & yt-dlp详细使用教程与初学上手示例,这篇教程已经写的很清楚了,此处不再赘述,我们只需要一个简单的脚本即可,以不良林的油管视频为例:
- #!/bin/bash
- yt-dlp -o "%(title).150B [%(id)s].%(ext)s" -f 22 https://www.youtube.com/@bulianglin/videos
- 为了避免视频文件名过长的问题,小白这里统一限制下文件名长度
- 我们采用22号格式,也就是720P的视频,如果需要其他格式的请自行更改
我们将以上的脚本文件保存为down-yt.sh,并赋予执行权限:
- chmod +x down-yt.sh
小白试了下,发现yt-dlp默认是下载到当前的目录的,所以我们需要手动指定下载目录。要将视频下载到指定路径,可以在 -o
选项中使用目标路径。以下是一个示例 shell 脚本,它将下载指定 YouTube 视频到 /Users/yourname/Downloads
目录下:
- #!/bin/bash
- yt-dlp -o "/Users/yourname/Downloads/%(title).150B [%(id)s].%(ext)s" -f 22 https://www.youtube.com/@bulianglin/videos
在这个示例中,我们在 -o
选项中指定了目标路径 /Users/yourname/Downloads/
,这是一个可替换为您自己的目标路径的示例路径。下载的视频文件将被保存在该目录下,并按照指定的格式命名。
请注意,您需要确保目标路径已经存在,否则下载会失败。如果您希望 shell 脚本能够创建目标路径(如果它不存在的话),您可以在脚本中添加一条 mkdir
命令,例如:
- #!/bin/bash
- mkdir -p /Users/yourname/Downloads/
- yt-dlp -o "/Users/yourname/Downloads/%(title).150B [%(id)s].%(ext)s" -f 22 https://www.youtube.com/@bulianglin/videos
加入定时任务
要将脚本添加到定时任务中,您可以使用 Linux 系统中的 cron
服务。cron
是一个可以在指定时间间隔内自动运行脚本的服务。
以下是将 shell 脚本添加到 cron
中以在每天凌晨 5 点自动运行的步骤:
- 打开终端并输入
crontab -e
命令,这将打开您的cron
定时任务配置文件。 - 如果您第一次打开此文件,系统会提示您选择默认编辑器,可以选择
nano
或vi
等。 - 在文件末尾添加以下一行:
0 5 * * * /bin/bash /path/to/down-yt.sh
- 这行将每天凌晨 5 点执行
/path/to/download_script.sh
脚本。请将/path/to/download_script.sh
替换为您自己的脚本路径。如果脚本不在 PATH 中,需要使用绝对路径。0 5 * * *
是一个 cron 格式的时间表达式,它指定了脚本运行的时间。在这个例子中,它的含义是“在每天的第 0 分钟和第 5 小时运行脚本”。 - 保存并关闭文件。如果您使用
nano
编辑器,则按Ctrl + X
,然后按Y
保存文件。 - 重启
cron
服务,以使更改生效。在终端中输入以下命令:sudo systemctl restart cron
或者,如果您的系统没有使用systemd
,则可能需要运行以下命令:sudo service cron restart
现在,您的 shell 脚本将被添加到
cron
定时任务中,并在每天凌晨 5 点自动运行。如果您希望更改运行时间,可以修改cron
时间表达式。
转载请注明原文链接
Recommend
-
12
包子啥汤no Pain no Gain no Gavin Centos 7 使用Shell脚本定时检查MySql服务运行状态MySQL监控脚本:#!/bin/bash pgrep mysqld &> /dev/nul...
-
13
Centos 7 使用Shell脚本定时检查MySql服务运行状态MySQL监控脚本:#!/bin/bash pgrep mysqld &> /dev/null if [ $? -gt 0 ] then echo "`date` ERROR! MySQL is not running" >> /home/mysqlstatus.log systemctl start my...
-
25
前言 作为Node语言的初学者去实践后端开发时,不仅仅有见猎心喜,也有一些忐忑,好在大家都很open,给予了很多建议和分享,到目前为止,也成功建立了三个基于Node.js + TypeScript + IMServer ...
-
9
下载Youtube视频的23种方法 阅读时间 6 分钟,快速阅读仅需 2 分钟。这篇文章似乎有点非法,因为如果...
-
8
如何下载YouTube视频 - 暗无天日 如何下载YouTube视频 Want to download a YouTube video? Just add "ss" to the URL between "www." and "YouTube." 想要下载YouTube视频吗? 只需要在URL中 "www." 与 "YouTube." 之间添加...
-
7
Jager · 10月2日 · 2016年Linux本地备份 · 七天循环备份 ·
-
8
一个双显卡服务器被入侵了,他会定时从下载脚本并执行 - V2EX V2EX › Linux 一个双显卡服务器被入侵了,他会定时从下载脚本并执...
-
6
自动递归下载依赖 deb 包 bash 脚本 September 18, 2021 • Read: 92 •
-
6
用Python加itchat写一个爬虫脚本每天定时给朋友发微信暖心话 ...
-
7
Nginx 日志定时切割脚本 2022-03-06 因为之前装了 fail2ban,对日志进行了一个统一管理,但是 nginx 本身不具备日志切割的功能,于是就导致了日志日积月累的庞大,面对一天十几万的 ssh 等各种乱七八糟的攻击请求,产生的日志不计...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK