Eine einfache Suche mit nur Anfragen und Schöne Suppe4.
Y = Youtube([query], result=[num])
Abfrage ist ein Suchwort. Unterstützt Japanisch. num ist die Anzahl der Suchergebnisse. Bis zu 20 im Moment aufgrund der Seitennation. Bitte spielen Sie hier alleine herum.
Y.url >>URL-Liste der Suchergebnisse
Y.title >>Titelliste
Y.id >>ID-Liste (ID? Eindeutige Nummer wie JaDJbrwi0gk)
Y.embed >>URL-Liste zum Einfügen
Y.time >>Wiedergabezeitliste (möglicherweise nicht gefragt)
Beispiel)
print(Youtube("Unjash",result=5).url)
>> ['https://www.youtube.com/watch?v=JaDJbrwi0gk', 'https://www.youtube.com/watch?v=yGPAyqxrado', 'https://www.youtube.com/watch?v=tGl2Dp1v0gw', 'https://www.youtube.com/watch?v=myp35PyYk1A', 'https://www.youtube.com/watch?v=Tt1rkp3h1pM', 'https://www.youtube.com/watch?v=XIJqsqOCorw']
Y.select() >>Wählen Sie eines aus den Suchergebnissen aus und geben Sie ein Wörterbuch mit den oben genannten Informationen zurück.
key = "url","title","id","embed","time"
Beispiel)
movie = Y.select()
print(movie["url"]) >> https://www.youtube.com/watch?v=JaDJbrwi0gk
Es kann effizient sein, es mit anderen Download-APIs zu kombinieren.
import requests
from bs4 import BeautifulSoup
class Youtube():
def __init__(self,query,result=10): #bis zu max20
search_url = "https://www.youtube.com/results?search_query=" + query
req = requests.get(search_url)
soup = BeautifulSoup(req.text.encode(req.encoding).decode('utf-8','strict'),"html5lib")
h3s = soup.find_all("h3", {"class":"yt-lockup-title"})[0:result+1]
self.data = [h3 for h3 in h3s]
self.url = ["https://www.youtube.com" + h3.a.get('href') for h3 in h3s]
self.title = [h3.a.get("title") for h3 in h3s]
self.id = [h3.a.get("href").split("=")[-1] for h3 in h3s]
self.embed = ["https://www.youtube.com/embed/" + h3.a.get("href").split("=")[-1] for h3 in h3s]
self.time = [h3.span.text.replace(" -Länge: ","").replace("。","") for h3 in h3s]
self.info = [h3.text for h3 in h3s] # >>Titel-Länge: 00:00。
def select(self):
values = {"url":self.url,"title":self.title,"id":self.id,"embed":self.embed,"time":self.time}
info = self.info
for i in range(len(info)):
print("%s:%s" % (i,info[i]))
while True:
try:
num = int(input("Nummer:"))
break
except:
print("Bitte geben Sie die Nummer richtig ein.")
results = {
"url":values["url"][num],
"title":values["title"][num],
"id":values["id"][num],
"embed":values["embed"][num],
"time":values["time"][num],
}
return results
if __name__ == '__main__':
Y = Youtube(input("Suchbegriff:"),result=5)
movie = Y.select()
print(movie["url"])
Recommended Posts