我正在使用 youtube-dl 从 youtube 下载 WebVTT 文件。
典型的文件如下所示:
WEBVTT
Kind: captions
Language: en
00:00:00.730 --> 00:00:05.200 align:start position:0%
[Applause]
00:00:05.200 --> 00:00:05.210 align:start position:0%
[Applause]
00:00:05.210 --> 00:00:11.860 align:start position:0%
[Applause]
hi<00:00:06.440><c> I'm</c><00:00:07.440><c> here</c><00:00:07.740><c> to</c><00:00:08.160><c> talk</c><00:00:08.429><c> to</c><00:00:09.019><c> share</c><00:00:10.019><c> an</c><00:00:10.469><c> idea</c><00:00:10.820><c> to</c>
00:00:11.860 --> 00:00:11.870 align:start position:0%
hi I'm here to talk to share an idea to
00:00:11.870 --> 00:00:15.890 align:start position:0%
hi I'm here to talk to share an idea to
communicate<00:00:12.920><c> but</c><00:00:13.920><c> what</c><00:00:14.790><c> is</c><00:00:14.940><c> communication</c>
00:00:15.890 --> 00:00:15.900 align:start …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 youtube-dl 将一些 youtube 视频声音下载为 mp3 并嵌入缩略图。但是每次尝试时都会出现以下错误:
thumbnail_filename = info['thumbnails'][-1]['filename'] KeyError: 'filename'
Run Code Online (Sandbox Code Playgroud)
这是我的 youtube-dl 选项
ydl_opts = {
'key':'IgnoreErrors',
'format': 'bestaudio/best',
'download_archive': self.songs_data,
'outtmpl': '/'+download_path+'/'+'%(title)s.%(ext)s',
'progress_hooks': [self.my_hook],
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'mp3',
'preferredquality': '192'},
{'key': 'EmbedThumbnail'},]}
Run Code Online (Sandbox Code Playgroud)
任何想法为什么?嵌入缩略图没有任何参数。
谢谢
我想使用代理并运行它
youtube-dl --proxy socks5://127.0.0.1:1080
这是下面的错误
Usage: youtube-dl [OPTIONS] URL [URL...]
youtube-dl: error: You must provide at least one URL.
这里有什么问题?
macOS 10.12
最佳答案说要做:
brew link --overwrite python
产生:
Warning: Already linked: /usr/local/Cellar/python/3.6.5
To relink: brew unlink python && brew link python
Run Code Online (Sandbox Code Playgroud)
我很确定我需要让自制软件切换到 2.7 而不是使用版本 3。我愿意
brew unlink python && brew link python
并得到:
Unlinking /usr/local/Cellar/python/3.6.5... 25 symlinks removed
Linking /usr/local/Cellar/python/3.6.5... 25 symlinks created
Run Code Online (Sandbox Code Playgroud)
有没有办法告诉它链接到特定版本?/usr/local/Cellar/python/
包含:2.7.13 2.7.14 2.7.14_3 3.6.3 3.6.5
如何让我的系统始终使用2.7.14_3
?
/usr/local/opt/python/bin
包含python3
、python3-config
和 3.6 版本。我怎样才能在这里得到 2.7 并删除 3 和 3.6?
也which python
返回/usr/bin/python
。当我输入时,python -V …
从youtube提取的自动英文字幕不包含可读形式的信息和重复的文本信息。
welcome<00:00:01.790><c> my</c><00:00:02.790><c> name</c><c.colorCCCCCC><00:00:02.820><c> is</c><00:00:03.210><c> Helga</c></c><c.colorE5E5E5><00:00:03.449><c> Vieira</c><00:00:03.929><c> and</c><00:00:04.080><c> this</c></c>
00:00:04.670 --> 00:00:04.680 align:start position:0%
welcome my name<c.colorCCCCCC> is Helga</c><c.colorE5E5E5> Vieira and this
</c>
Run Code Online (Sandbox Code Playgroud)
我的代码:
def captions_test02(url):
ydl = youtube_dl.YoutubeDL({'writesubtitles': True, 'allsubtitles': True, 'writeautomaticsub': True})
res = ydl.extract_info(url, download=False)
if res['requested_subtitles'] and res['requested_subtitles']['en']:
print('Grabbing vtt file from ' + res['requested_subtitles']['en']['url'])
response = requests.get(res['requested_subtitles']['en']['url'], stream=True)
f1 = open("testfile01.txt", "w")
f1.write(response.text)
f1.close()
if len(res['subtitles']) > 0:
print('manual captions')
else:
print('automatic_captions')
else:
print('Youtube Video does not have any english captions')
if __name__ == '__main__': …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 youtube-dl(一种带有命令行界面的流行视频下载器)添加自定义标题。
我在 Windows 10 上使用 PowerShell(或 CMD)。
官方文档如下所示,但我似乎无法正确使用它。
--add-header FIELD:VALUE
指定自定义 HTTP 标头及其值,以冒号“:”分隔。您可以多次使用此选项
我正在尝试为请求添加多个标头,例如:
"Accept-Encoding": "identity;q=1, *;q=0", "范围": "字节=6488064-", "Referer": "https://avideosite.net/video/0123456", "用户代理": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36"
但是当我尝试类似的东西时
start youtube-dl --add-header "Accept-Encoding":"identity;q=1, *;q=0" --add-header "Range":"bytes=6488064-" --add-header "Referer":"https://avideosite.net/video/0123456" --add-header "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36" "http://11.22.333.444:8280/abcdefg=.mp4?st=97WbFiADB5Hla7Y-fZx58g&e=1560574126"
Run Code Online (Sandbox Code Playgroud)
它不起作用并引发如下错误:
启动过程:找不到接受参数的位置参数 '接受编码'。 在行:1 字符:1 + 启动 youtube-dl --add-header "Accept-Encoding":"identity;q=1, *;q=0" ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) …
我youtube-dl
经常使用并且有一个非常简单的文件命名方案:仅小写字母,同一组的事物用“-”(减号,破折号等)连接,而不同的事物用“_”(下划线)连接。
我不喜欢正则表达式,因此,如果可以配置youtube-dl
配置文件来根据我的命名方案存储下载的剪辑,我真的很困惑。例如:
视频:
youtube-dl https://www.youtube.com/watch?v=X8uPIquE5Oo
Run Code Online (Sandbox Code Playgroud)
我的 youtube-dl config
:
--output '~/videos/%(uploader)s_%(upload_date)s_%(title)s.%(ext)s' --restrict-filenames
Run Code Online (Sandbox Code Playgroud)
我的输出:
Queen_Forever_20111202_Bohemian_Rhapsody_Live_at_Wembley_11-07-1986.mp4
Run Code Online (Sandbox Code Playgroud)
期望的输出:
queen-forever_20111202_bohemian-rhapsody-live-at-wembley-11-07-1986.mp4
Run Code Online (Sandbox Code Playgroud)
我需要提取在线视频的特定帧来处理算法,但我不想下载整个视频,因为这会使其效率极低。
首先,我尝试使用 YouTube 视频。youtube-dl
我可以使用以下方式下载整个视频:
ydl_opts = {'outtmpl': r'OUTPUT_DIRECTORY_HERE',}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
Run Code Online (Sandbox Code Playgroud)
然后我可以捕捉各个帧。
我需要避免下载整个视频。经过一些研究,我发现这ffmpeg
可能会帮助我做到这一点。我发现无法仅下载帧,因此如果不可能,第二个选项是我可以下载视频的特定部分。linux 中的一个这样的例子是here,但我找不到任何适用于python 的解决方案。
只下载帧或部分视频(在 python 中)而不下载整个内容的好方法是什么?
我使用名为 YouTube-dl 的库,可以从许多网站下载。
\n它支持cookies文件。我编写了以下代码:
\nyoutube-dl -j \xe2\x80\x94-cookies /path/to/cookies.txt URLgoesHere\n
Run Code Online (Sandbox Code Playgroud)\n我想要的是如何使用这个库从 Instagram 下载故事?在命令行上。
\n我正在尝试从特定播放列表的所有 Youtube 视频中提取Upload Dates
、Titles
、URLs
和,我不需要视频 - 只需上面的数据。Durations
youtube-dl
到目前为止,我已经测试了Alen Paul Varghese此处建议的以下两种方法:
\n\n\nyoutube-dl --skip-download --print-json https://www.youtube.com/playlist?list=PLRqwX-V7Uu6by61pbhdvyEpIeymlmnXzD > example.json\n
Run Code Online (Sandbox Code Playgroud)\n和
\nyoutube-dl --get-upload_date https://www.youtube.com/playlist?list=PLRqwX-V7Uu6by61pbhdvyEpIeymlmnXzD > example.txt\n
Run Code Online (Sandbox Code Playgroud)\n方法 #1输出整个 json 转储 \xe2\x80\x94 每个视频大约 3000 行 - 处理大量 Youtube 视频播放列表非常不方便 - 但它包含 4 个所需的数据。
\n方法 #2返回以下错误:
\nyoutube-dl: error: no such option: --get-upload_date\n
Run Code Online (Sandbox Code Playgroud)\n我想支持方法#2, …
youtube-dl ×10
python ×7
command-line ×2
python-3.x ×2
awk ×1
bash ×1
cmd ×1
ffmpeg ×1
instagram ×1
json ×1
macos ×1
opencv ×1
powershell ×1
python-2.7 ×1
regex ×1
shell ×1
webvtt ×1
windows ×1
youtube ×1