是否可以自动限制 youtube-dl 下载的视频大小?是部分下载还是自动调整分辨率/帧速率?
最好能给出大小限制和 YouTube 链接,然后命令会处理其余的事情。这可行吗,还是我需要考虑编写 Python 脚本或类似的东西?
是否可以自动限制 youtube-dl 下载的视频大小?是部分下载还是自动调整分辨率/帧速率?
最好能给出大小限制和 YouTube 链接,然后命令会处理其余的事情。这可行吗,还是我需要考虑编写 Python 脚本或类似的东西?
在过去的两天里,我注意到当我启动我的系统(Debian 11)时,一些东西启动了 youtube-dl;它似乎是我一登录。我注意到的原因是它窃取了所有资源,我必须使用 Ctl-Alt-F2 转到控制台并以 root 身份登录。杀死进程没有帮助 - 它似乎是作业流的一部分,所以唯一的方法是临时重命名 python 可执行文件,这会使它们很快失败。
我怀疑这与我一直在为一门课程下载大量小视频有关,但它实际上是从哪里开始的呢?
编辑
我想我可能已经找到了问题所在 - 我会在有机会重新启动(或只是注销/登录)时看到。这很微妙。我在与 sddm 有任何关系的任何文件中都找不到对 youtube-dl 的任何引用(因为我使用 KDE),除了 my .local/share/sddm/xorg-session.log
,它说:
/etc/sddm/Xsession: 70: /etc/profile: function: not found
Error: /undefinedfilename in (/usr/bin/startplasma-x11.ps)
Operand stack:
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push
Dictionary stack:
--dict:733/1123(ro)(G)-- --dict:0/20(G)-- --dict:75/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
rm: cannot remove '/usr/bin/startplasma-x11.ps': No such file or directory
/etc/sddm/Xsession: 78: /etc/profile: function: not found
ERROR: [something very long ...]\ufffd\x03\x12\x08' is not a valid URL. Set --default-search "ytsearch" (or run youtube-dl "ytsearch:^?ELF^B^A^A^C^C>^A0M@��@8^K@^^^]^F^D@@@h^Bh^B^H^C^D�^B�^B�^B^\^\^A^A^D�=�=^P^A^E@@@^]O^]O^P^A^D����#�#^P^A^Fh�h�hǨ^H�^H^P^B^Fp�p�pȀ^B�^B^H^D^D�^B�^B�^BDD^DP�td^Dh�h�h��^A�^A^DQ�td^F^PR�td^Dh�h�hǘ^H�^H^A/lib64/ld-linux-x86-64.so.2^D^T^CGNU���eBFD�ӝ^C�^KC�u�U�^D^P^AGNU^C^B^C�^A^F�@�^A^H����|�e�mCE���qX^\�^R^Rj^G^R^_^L^RB^P^R^H^B^R�^S^R^_^U^R�^C^R^H" ) to search YouTube
看第一行/etc/sddm/Xsession
:
#! /bin/sh
# Xsession - run as user
session=$1
我突然意识到旧的 Bourne shell 不理解新的 shell 函数语法function xyz
,而是需要xyz()
- 因此在.local/share/sddm/xorg-session.log
. 我刚刚定义了一个youtube-dl
在问题开始时调用的函数;Xsession
脚本源,/etc/profile
无法处理function
然后运行函数定义中的内容,即youtube-dl
,使用恰好在 中定义的任何参数Xsession
。
几天前我开始遇到这个问题:youtube-dl
不再适用于指向 YouTube 的链接,但适用于其他网站,如 Instagram:
$ youtube-dl https://www.instagram.com/p/B47c667AKPo/ [Instagram] B47c667AKPo:下载网页 [下载] 目的地:视频由 marieforleo-B47c667AKPo.mp4 [下载] 2.5% of 40.44MiB at 1.45MiB/s ETA 00:27^C ... $ youtube-dl https://www.youtube.com/watch?v=blHgexdxfVU 用法:youtube-dl [OPTIONS] URL [URL...] youtube-dl:错误:您必须至少提供一个 URL。 键入 youtube-dl --help 以查看所有选项的列表。
忽略带有 HTTP 地址或a--no-check-certificate
的 HTTPS 证书也会失败。几周前,同样的 YouTube 链接和语法还有效。
我升级到最新版本,2020.03.01
仍然有同样的问题。
YouTube 和 之间有什么问题youtube-dl
吗?
我youtube-dl
用来下载我的音乐播放列表。
只有一个问题:youtube-dl
不知道它已经下载了哪些视频,所以它只是重新下载每个视频。我希望它在添加新视频时重新识别,然后仅重新下载这些视频,以便我可以每 10 秒左右运行一次以检查是否添加了新视频。
或者,我想要一种下载 yt 播放列表中存在的所有 url 的方法,这样我就可以下载它并与已经下载的那些进行检查,这样我就可以简单地在那些上运行 yt 下载。
基本上,我想要一种方法来在我的电脑上获取我的 yt 播放列表的最新本地副本。
我是一个新手数据囤积者,使用以下 youtube-dl 配置文件从 YouTube 存档了数百个视频:
-i
-o "%(uploader)s (%(uploader_id)s)/%(upload_date)s - %(title)s - (%(duration)ss) [%(resolution)s] [%(id)s].%(ext)s"
# Archive Settings
--download-archive youtube-dl-archive.txt
-a youtube-dl-channels.txt
# Uniform Format
--prefer-ffmpeg
--merge-output-format mkv
# Get All Subs to SRT
--write-sub
--all-subs
--convert-subs srt
# Get metadata
--add-metadata
--write-description
--write-thumbnail
# Debug
-v
我最近才意识到我真的应该包括这个--write-info-json
选项。
如何返回并仅下载所有视频的 info-json 文件而不重新下载视频本身?我一直在使用该-a
选项来跟踪我已经存档的视频,因此我可以轻松地将该文件用作我需要下载 info-json 文件的所有视频的列表。
但我仍然不知道如何只下载 info-json。感谢这里的任何指示。
我将 url 存储在 bash 的变量中。它与实际文件路径无关,但它一直给我错误文件名太长。
如何告诉 bash 忽略查找文件名并将长 url 字符串存储到变量中?
我没有使用文件名。有人可以解释并指导我为什么会收到看起来不相关的错误吗?
#!/bin/bash
video=""
$video=$(youtube-dl -g -f bestvideo https://youtubeurl)
echo $video
$ Bash 脚本.sh
错误:文件名太长
编辑:抱歉,我在命令之前使用了 $( )。我在 stackexchange 编辑器上输入错误。在上面更正它。尝试使用 echo "$video" 。我仍然得到同样的错误。我在适用于 Linux 的 Windows 子系统上使用 ubuntu
youtube-dl
我按照这个指令升级了二进制文件。locate
似乎找到它,不是ls
,并且它不能被调用。怎么了?
/usr/bin $ sudo apt-get remove youtube-dl
/usr/bin $ sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
/usr/bin $ sudo chmod a+rx /usr/local/bin/youtube-dl
/usr/bin $ locate youtube-dl
/usr/bin/youtube-dl
/usr/share/bash-completion/completions/youtube-dl
/usr/share/doc/youtube-dl
/usr/share/man/man1/youtube-dl.1.gz
/usr/share/zsh/vendor-completions/_youtube-dl
/var/lib/dpkg/info/youtube-dl.list
/var/lib/dpkg/info/youtube-dl.md5sums
/var/lib/dpkg/info/youtube-dl.postinst
/var/lib/dpkg/info/youtube-dl.postrm
/var/lib/dpkg/info/youtube-dl.preinst
/var/lib/dpkg/info/youtube-dl.prerm
/usr/bin $ youtube-dl --version
bash: /usr/bin/youtube-dl: No such file or directory
/usr/bin $ ls y*
yacc ybmtopbm yelp yes yuvsplittoppm yuvtoppm
我在 Fedora 28 操作系统上并且有youtube-dl
版本2019.03.18
,我想从 youtube 上下载所有的订阅者和只有Crashcourse 播放列表的订阅者,包括 45 个视频。
我希望将所有子文件写入单个 *.txt 文件,以便我可以编辑它并打印到 pdf 格式(使用evince
),同时应用适当的页码/页眉/页脚。
我尝试了以下方法:
youtube-dl --skip-download --write-sub --playlist-items 6-10 <PLAYLIST-URL> >> all-subs.txt
但是,这仅将“详细”输出写入all-subs.txt
并下载了 *.vtt 格式的 subs(我不知道为什么youtube-dl
不会以任何其他格式下载,即使被告知这样做,故障仍未解决)。
我尝试使用 ffmpeg 以 mp3 格式下载 youtube 媒体。
ffmpeg -i <url> -f mp3 output.mp3
它适用于其他网址,但不适用于 youtube-dl 检索的 youtube 视频网址。ffmpeg 返回错误 403,禁止。我也无法使用 wget 下载,但从浏览器和 vnc 播放器中的 url 可以正常工作。我想用ffmpeg单独下载,因为我不想以原始格式下载。有什么问题?我该如何解决?
命令:
./youtube-dl -f bestaudio -g https://m.youtube.com/watch?v=D-dONCnY_Yg
ffmpeg -i https://r1---sn-qxo7rn7e.googlevideo.com/videoplayback?signature=021CAFB9066554DD33675D89CC80D6E5FC616A7E.8A6222115FF91416C7F1B639B8F4A86671B40DD2&ipbits=0&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&fvip=1&source=youtube&id=o-AALFu428zi6lOqHvA5xGfADpvNCR_BXItpMzqWb73CSH&mm=31%2C26&expire=1520111723&dur=293.721&lmt=1508989837160273&key=yt6&ip=35.227.125.114&ms=au%2Conr&ei=C7yaWuSpMYj5qQWY_qH4DQ&mv=m&mt=1520090001&requiressl=yes&gir=yes&mn=sn-qxo7rn7e%2Csn-cvb7ln7l&clen=4618202&keepalive=yes&c=WEB&mime=audio%2Fwebm&pl=24&itag=251&ratebypass=yes -f mp3 output.mp3
并且 ffmpeg 返回错误 403 禁止。