Am o funcție simplă youtube_dl pentru a accesa link-urile de descărcare youtube aici,
@QtCore.Slot(str, rezultat=str)
def getDownloadLinks(self, url):
încerca:
cu youtube_dl.YoutubeDL({}) ca ydl:
rezultat = ydl.extract_info(url, download=False)
dacă „înregistrări” în rezultat:
videoclipuri = rezultat["intriuri"][0]
altceva:
videoclipuri = rezultat
r_videos = []
pentru videoclipuri în videoclipuri[„formate”]:
r_videos.append({"url": video["url"], "format": video["format"], "size": video["filesize"]})
resRet = {"status":"adevărat", "urls": r_videos}
return str(resRet)
cu excepția excepției ca e:
resRet = {"status":"adevărat", "eroare": str(e)}
return str(resRet)
Și încerc să-l accesez într-un fișier QML care are o funcție ca aceasta care accesează această funcție python apelând-o astfel.
funcția getLinks(url){
jsonString = downloadeng.getDownloadLinks(url)
console.log(jsonString)
var jsonObject = JSON.parse(jsonString)
var anObject = JSON.parse(jsonObject)
if (anObject.status == 'false') {
//deschideți Popup
console.log(„deschiderea ferestrei pop-up”)
} altfel {
console.log(anObject.url)
}
}
Dar de fiecare dată când primesc o astfel de eroare de sintaxă
SyntaxError: JSON.parse: Eroare de analiză
indicând var anObject = JSON.parse(jsonObject)
această linie. Un alt lucru este că analizez JSON de două ori, deoarece greșește la o analiză, dar funcționează bine la a doua analiză. Vă rog să mă ajutați cu aceste două lucruri.