Youtube-DLP 使用记录,配合 emby

📖简介

yt-dlp 是 Youtube-DL 的增强版,更新维护很积极。相比起原版更为稳定,功能更完善。

  • 主页:https://github.com/yt-dlp/yt-dlp

Win 系统直接下载 exe 即可运行,其他系统下还需要系统安装有 Python3.6+ 环境。
Linux, macOS, BSD 系统均为同一个提供可执行文件

🤺高级功能需要调用 ffmpeg

没有 ffmpeg 情况下,能下载的文件格式有限封面图转换之类的功能也不能工作

还有一些平常用不到的功能需要依赖另外的软件,具体看项目主页

⚙️配置文件

于主程序目录或者用户HOME目录下建立 yt-dlp.conf 文件,即会调用。
用来设置输出文件名,下载代理服务器,下载封面,下载视频简介等非常方便

注意配置文件内不能有中文字符,否则会报错

#filename
-o '%(title)s[%(resolution)s][%(upload_date)s].%(ext)s'

# best HDR or best SDR
#-f 'bestvideo[vcodec=vp9.2]+bestaudio/bestvideo[vcodec=vp9]+bestaudio'

#only m4a
#-f 'ba[ext=m4a]'
#-f wa

#thumbnail to jpg
--write-thumbnail
--convert-thumbnails jpg
#--embed-thumbnail

#proxy
--proxy 127.0.0.1:7890

#other
--write-description
--write-subs
--compat-options no-live-chat
--remux-video mkv

#playlist
#--playlist-items 1-2,11-20

#--skip-download

--exec 'sh /Users/fejich/Movies/Youtube/nfo.sh'

📝视频简介转换为 emby 能识别的 nfo 文件

用于把视频简介(description文件)转换成 emby 能识别的格式,
可保存为 sh 脚本使用 --exec 参数调用。

适用于 Linux 与 Mac 系统

#!/bin/bash

# 生成临时文件
tee nfo1.temp <<-'EOF'
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<movie>
  <plot><![CDATA[
EOF

tee nfo2.temp <<-'EOF'

]]></plot>
</movie>
EOF

# 生成 emby 可识别的 nfo 文件并添加换行符号
file=$1
filename=${file%.*}
nfo=${filename}.nfo
description=${filename}.description

touch "${nfo}";
cat nfo1.temp > "${nfo}";
sed 's#$#&<br/>#g' "${description}" >> "${nfo}";
cat nfo2.temp >> "${nfo}";

# 删除临时文件
rm nfo1.temp nfo2.temp

🖥Win 系统下简单可交互 bat 脚本

保存为 bat 脚本,与主程序放同一个目录即可

@ECHO OFF&PUSHD %~DP0 &TITLE Youtube-DLP 下载脚本
@ echo.
@ echo.
@ echo.
@ echo.
set /p ID= 输入 视频/播放列表网址 按回车:
@ echo.
@ echo.
@ echo.
@ echo.
ECHO 分析下载地址......
yt-dlp %ID%
@ echo.
@ echo.
@ echo.
@ echo.
ECHO 下载完成,任意键退出......
pause>NUL