2016-04-14 6 views
0

Ich habe einen einfachen Python-Skript, das auf einen Link in der Zwischenablage und Transfer zum youtube-dl nimmt:Youtube-dl. Wie bekomme ich eine Liste der unterstützten Seiten im Python-Skript?

import youtube_dl 
import tkinter as tk 
import subprocess 
import os 

root = tk.Tk() 
# keep the window from showing 
root.withdraw() 
# read the clipboard 
clipboard_link = root.clipboard_get() 

ydl_opts = { "format": "[height<=480]"} 
with youtube_dl.YoutubeDL(ydl_opts) as ydl: 
    get_info = ydl.extract_info(clipboard_link, download=False) 

#open url in external player 
video_url = get_info["url"] 
path_to_player = r"C:\Program Files (x86)\K-Lite Codec Pack\MPC-HC64\mpc-hc64.exe" 
subprocess.call([path_to_player, video_url]) 

Wie kann ich ein root.clipboard_get() mit list of supported site vor assign clipboard_link?

Antwort

0

Zitiert die youtube-dl FAQ:

Es ist nicht möglich zu erkennen, ob eine URL unterstützt wird oder nicht. Das liegt daran, dass youtube-dl einen generischen Extraktor enthält, der allen URLs entspricht. Sie könnten versucht sein, den generischen Extraktor zu deaktivieren, auszuschließen oder zu entfernen, aber der generische Extraktor ermöglicht nicht nur das Extrahieren von Videos von vielen Websites, die ein Video von einem anderen Dienst einbetten, sondern auch das Extrahieren von Video von einem Dienst Es hostet sich selbst. Daher empfehlen wir weder, den generischen Extraktor zu deaktivieren, auszuschließen oder zu entfernen.

Wenn Sie herausfinden möchten, ob eine bestimmte URL unterstützt wird, rufen Sie einfach youtube-dl damit auf. Wenn Sie keine Videos zurück erhalten, besteht die Möglichkeit, dass sich die URL entweder nicht auf ein Video bezieht oder nicht unterstützt wird. Sie können das herausfinden, indem Sie die Ausgabe untersuchen (wenn Sie youtube-dl auf der Konsole ausführen) oder eine UnsupportedError-Ausnahme abfangen, wenn Sie sie von einem Python-Programm ausführen.