Es gibt viele Artikel zum Abrufen von YouTube-Video-URLs, aber Unterstützung für verkürzte URLs, die mit "https: // youtu.be /" beginnen, wenn Sie auf die Schaltfläche "Teilen" klicken, und URLs. Wenn Sie Abfrageparameter einschließen (z. B. "t = 15", das die Zeit angibt, oder "feature = youtu.be", das die Übertragung von der abgekürzten URL angibt), habe ich das Gefühl, dass nicht alle berücksichtigt wurden. Schreiben Sie sie daher hier als Memo. Versuchen.
Der YouTube-URL-Abfrageparameter "t", der die Startposition der Wiedergabe angibt, ist übrigens
"https: //youtu.be/r4Mkv-q4NmQ? t = 5437"
Wie "https: //youtu.be/r4Mkv-q4NmQ? T = 5437s"
Natürlich werden alle in Sekunden angegeben
Wie https: //youtu.be/r4Mkv-q4NmQ? T = 1h30m37s
Wenn Sie ◯ h △ m □ s
eingeben, wird die URL ab" ◯ Stunden △ Minuten □ Sekunden "abgespielt!
◯ h
wegzulassen und △ m □ s
zu verwenden.Die YouTube-URL in diesem Artikel ist im Grunde meine gepostete Video- oder Kanal-URL!
Funktioniert mit Python3-Serien. Es scheint, dass es in der Python2-Serie kein "urllib.parse" -Modul gibt.
import urllib.parse
import re
##############################################################
##Extrahieren Sie die YouTube-Video-ID aus der URL-Liste
##Unterstützt normale URLs und verkürzte URLs. Bei nicht unterstützten URLs wird eine Fehlermeldung angezeigt
##Argumente: Liste der URLs
##Rückgabewert: Liste der extrahierten Video-IDs
##############################################################
def pick_up_vid_list(url_list):
vid_list = []
pattern_watch = 'https://www.youtube.com/watch?'
pattern_short = 'https://youtu.be/'
for i, url in enumerate(url_list):
#Wenn es sich um eine normale URL handelt
if re.match(pattern_watch,url):
yturl_qs = urllib.parse.urlparse(url).query
vid = urllib.parse.parse_qs(yturl_qs)['v'][0]
vid_list.append(vid)
#Für abgekürzte URL
elif re.match(pattern_short,url):
# "https://youtu.be/"Die 11 Zeichen nach der Video-ID
vid = url[17:28]
vid_list.append(vid)
else:
print('error:\n URL ist\"https://www.youtube.com/watch?\"Oder')
print(' \"https://youtu.be/\"Bitte geben Sie eine URL an, die mit beginnt.')
print(' - '+ str(i+1)+ 'Artikel:' + url)
return vid_list
In einer normalen URL, die mit "https: //www.youtube.com/watch?" Beginnt, entspricht die Video-ID dem "v" -Parameter der URL-Abfrage, also extrahiere ich sie! In der abgekürzten URL, die mit "https: // youtu.be /" beginnt, sind die 11 Zeichen nach "https: // youtu.be /" immer die Video-ID, also nehme ich sie heraus!
Ich war besorgt über die Möglichkeit, bis zu 12 Zeichen zu tragen und dachte, ich müsste mit einem regulären Ausdruck danach suchen, aber anscheinend ist es okay. → Über das Risiko, dass der v-Wert von YouTube das Nipotan Research Institute trägt Laut diesem Artikel scheint die Video-ID auch aus "[0-9] [a-z] [A-Z]", "-" und "_" zu bestehen. Laut "[Zeichen, die in URLs verwendet werden können, Zeichen, die nicht verwendet werden können](https://www.ipentec.com/document/web-url-invalid-char" Zeichen, die in URLs verwendet werden können, Zeichen, die nicht verwendet werden können ")" Es scheint, dass es für nichts anderes als dieses verwendet werden kann, daher werde ich die Anzahl der Zeichentypen nicht erhöhen, und wenn es nicht genug gibt, werde ich die Anzahl der Ziffern erhöhen.
url_list = [
'https://www.youtube.com/watch?v=k3nPaVj8-3w',
'https://www.youtube.com/watch?v=2k-uF-QPcEM&t=5',
'https://www.youtube.com/watch?v=5_Vy0ZtPo_w',
'https://youtu.be/_t-i0KLiJBk',
'https://youtu.be/tfIvsrRxaXg',
'https://youtu.be/biaC_2Mx7Mw?t=283',
'https://www.youtube.com/',
'https://www.youtube.com/channel/UCDWM7dKT5vLXqSi_YljdlBw']
vid_list = pick_up_vid_list(url_list)
for vid in vid_list:
print (vid)
Ausführungsergebnis:
error:
URL ist"https://www.youtube.com/watch?"Oder
"https://youtu.be/"Bitte geben Sie eine URL an, die mit beginnt.
-7. https://www.youtube.com/
error:
URL ist"https://www.youtube.com/watch?"Oder
"https://youtu.be/"Bitte geben Sie eine URL an, die mit beginnt.
-8. https://www.youtube.com/channel/UCDWM7dKT5vLXqSi_YljdlBw
k3nPaVj8-3w
2k-uF-QPcEM
5_Vy0ZtPo_w
_t-i0KLiJBk
tfIvsrRxaXg
biaC_2Mx7Mw
Einige Standard-Python-Methoden können Abfrageparameter analysieren! Großer Komfort!
Ich kann es nicht tun, ohne purl.js
mit JavaScript zu verwenden!
Natürlich können Sie es selbst implementieren, aber ... es ist ein Ärger.
Verwendung regulärer Ausdrücke in Python - Qiita Verwendung des Python-Moduls für reguläre Ausdrücke (Match, Suche, Sub usw.)| note.nkmk.me Abrufen / Erstellen / Ändern der URL-Abfragezeichenfolge (Parameter) in Python| note.nkmk.me
Recommended Posts