Il existe de nombreux articles sur la façon de récupérer les URL de vidéos YouTube, mais prend en charge les URL raccourcies commençant par https: // youtu.be /
générées lorsque vous appuyez sur le bouton "Partager" et les URL. Si vous incluez des paramètres de requête (par exemple, t = 15
qui spécifie l'heure ou feature = youtu.be
qui indique le transfert à partir de l'URL abrégée), j'ai senti que tous n'étaient pas pris en compte, alors écrivez-les ici sous forme de mémo. Essayer.
À propos, le paramètre de requête d'URL YouTube t
qui indique la position de début de lecture est
https: //youtu.be/r4Mkv-q4NmQ? t = 5437
Comme https: //youtu.be/r4Mkv-q4NmQ? T = 5437s
Bien sûr, tous sont spécifiés en secondes
Comme https: //youtu.be/r4Mkv-q4NmQ? T = 1h30m37s
Si vous entrez ◯ h △ m □ s
, la lecture de l'URL commencera à partir de" ◯ heures △ minutes □ secondes "!
L'URL YouTube dans cet article est essentiellement l'URL de ma vidéo ou de ma chaîne publiée!
Fonctionne avec la série Python3. Il semble qu'il n'y ait pas de module ʻurllib.parse` dans la série Python2.
import urllib.parse
import re
##############################################################
##Extraire l'identifiant de la vidéo YouTube de la liste d'URL
##Prend en charge l'URL normale et l'URL raccourcie. Message d'erreur affiché pour les URL non prises en charge
##Arguments: liste des URL
##Valeur de retour: liste des identifiants vidéo extraits
##############################################################
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):
#Lorsqu'il s'agit d'une URL normale
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)
#Pour une URL abrégée
elif re.match(pattern_short,url):
# "https://youtu.be/"Les 11 caractères suivant l'ID vidéo
vid = url[17:28]
vid_list.append(vid)
else:
print('error:\n URL est\"https://www.youtube.com/watch?\"Ou')
print(' \"https://youtu.be/\"Veuillez spécifier une URL commençant par.')
print(' - '+ str(i+1)+ 'Article:' + url)
return vid_list
Dans une URL normale qui commence par https: //www.youtube.com/watch?
, L'ID vidéo correspond au paramètre v
de la requête d'URL, donc je l'extraye!
Dans l'URL abrégée commençant par https: // youtu.be /
, les 11 caractères suivantshttps: // youtu.be /
sont toujours l'identifiant de la vidéo, donc je le retire!
Je m'inquiétais de la possibilité de transporter jusqu'à 12 caractères et j'ai pensé que je devais le chercher avec une expression régulière, mais apparemment, ça va. → À propos du risque que la valeur de v sur YouTube soit reportée-Nipotan Research Institute De plus, selon cet article, il semble que l'ID vidéo soit composé de «[0-9] [a-z] [A-Z]», «-» et «_». Selon "[Caractères qui peuvent être utilisés dans les URL, caractères qui ne peuvent pas être utilisés](https://www.ipentec.com/document/web-url-invalid-char" Caractères qui peuvent être utilisés dans les URL, caractères qui ne peuvent pas être utilisés ")" Il semble qu'il ne puisse pas être utilisé pour autre chose que cela, donc je n'augmenterai pas le nombre de types de caractères, et s'il n'y en a pas assez, j'augmenterai le nombre de chiffres.
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)
Résultat de l'exécution:
error:
L'URL est"https://www.youtube.com/watch?"Ou
"https://youtu.be/"Veuillez spécifier une URL commençant par.
-7ème: https://www.youtube.com/
error:
L'URL est"https://www.youtube.com/watch?"Ou
"https://youtu.be/"Veuillez spécifier une URL commençant par.
-8ème: https://www.youtube.com/channel/UCDWM7dKT5vLXqSi_YljdlBw
k3nPaVj8-3w
2k-uF-QPcEM
5_Vy0ZtPo_w
_t-i0KLiJBk
tfIvsrRxaXg
biaC_2Mx7Mw
Certaines méthodes Python standard peuvent analyser les paramètres de requête! Grand confort!
Je ne peux pas le faire sans utiliser purl.js
avec JavaScript!
Bien sûr, vous pouvez l'implémenter vous-même, mais ... c'est un problème.
Comment utiliser les expressions régulières en Python --Qiita Comment utiliser le module d'expression régulière de Python re (correspondance, recherche, sous, etc.)| note.nkmk.me Obtenir / créer / modifier la chaîne de caractères de requête URL (paramètre) en Python| note.nkmk.me
Recommended Posts