我是这里的新手,也是Python的新手。最近我编写了如何从youtube转换视频的代码。
到目前为止,我的代码运行得很顺利。然而,由于我复制了包含播放列表视频的url链接,如下所示:
播放列表视频
结果出现这样的错误:
错误Json
错误Json
这是我的文件名为App.py(仅用于检索信息视频(:
from flask import Flask, request, render_template, session, url_for, redirect, send_file
from extractor import extract_video_data_from_url
app = Flask(__name__)
@app.route("/")
def index():
return render_template('index.html')
@app.route("/download", methods=["POST"])
def download():
video_url = request.form["video_url"]
video_data = extract_video_data_from_url(video_url)
return render_template("Download.html",video_data=video_data)
这是我的另一个名为extractor.py的文件:
import os
import json
def extract_format_data(format_data):
extension = format_data["ext"]
format_name = format_data["format"]
url = format_data["url"]
return {
"extension": extension,
"format_name": format_name,
"url": url
}
def extract_video_data_from_url(url):
command = f'youtube-dl "{url}" -j'
output = os.popen(command).read()
video_data = json.loads(output)
title = video_data["title"]
formats = video_data["formats"]
thumbnail = video_data["thumbnail"]
formats = [extract_format_data(format_data) for format_data in formats]
return {
"title": title,
"formats": formats,
"thumbnail": thumbnail
}
而对于CCD_ 1本身,我只将CCD_。
我在extractor.py中找到了另一个线程的答案,该线程必须在youtube-dl
语法上添加--playlist-start 1
,但仍然相同。
你们能帮我吗?提前感谢
更新:事实上,当我开始下载Youtube短视频时,它也无法工作。
第一个图像是一个"混合";YouTube为此视频自动生成的播放列表:
https://www.youtube.com/watch?v=qKt_Qf1T22o&list=RDqKt_Qf1T22o
您可以在这里查看如何获得;混合";给定视频的。
由于这是一个自动生成的播放列表,您需要添加更多代码来查看如何在自动生成的播放列表中获取视频,然后循环这些视频。
据我所知,你的代码(我可能错了,不过(,你的extract_video_data_from_url
函数会收到一个YouTube视频URL,所以,如果你设法循环播放列表中的视频,你可以在给定播放列表中对每个项目(即视频的迭代(调用extract_video_data_from_url
。