Regex pour l'ID vidéo YouTube depuis une URL

Utilisez /^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/ pour vérifier qu'une chaîne entière est un ID de vidéo YouTube valide à partir d'une URL. Chaque exemple ci-dessous a été testé avec ce motif, et vous pouvez l'ouvrir dans le testeur de regex avec les échantillons préchargés.

Mis à jour le

/^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/
Ouvrir dans le testeur de regex
EntréeRésultatGroupes
https://www.youtube.com/watch?v=dQw4w9WgXcQ✓ CorrespondancedQw4w9WgXcQ
https://youtu.be/dQw4w9WgXcQ?t=42✓ CorrespondancedQw4w9WgXcQ
youtube.com/shorts/abcdefghijk✓ Correspondanceabcdefghijk
https://m.youtube.com/watch?v=dQw4w9WgXcQ&list=PL1✓ CorrespondancedQw4w9WgXcQ
https://vimeo.com/123456✗ Aucune correspondance
https://www.youtube.com/watch?v=short✗ Aucune correspondance
https://youtube.com/@channel✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
(?:https?:\/\/)?(?:www\.|m\.)?Protocole optionnel et sous-domaine www ou m
youtube\.com\/(?:watch\?v=|embed\/|shorts\/)URL watch, embed et Shorts
youtu\.be\/Ou les liens courts youtu.be
([\w-]{11})Groupe 1 : l'ID vidéo de 11 caractères
(?:[?&#].*)?Paramètres supplémentaires optionnels comme &t=42 ou &list=…

Exemples de code

JavaScript

const re = /^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:https?://)?(?:www\.|m\.)?(?:youtube\.com/(?:watch\?v=|embed/|shorts/)|youtu\.be/)([\w-]{11})(?:[?&#].*)?', value))

PHP

preg_match('/^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/', $value) === 1;

Notes et limites

Le groupe 1 contient l'ID vidéo, que vous pouvez insérer dans https://www.youtube.com/embed/ID ou dans l'URL de la miniature https://i.ytimg.com/vi/ID/hqdefault.jpg. L'URL watch doit avoir v= comme premier paramètre.

Questions fréquentes

Quelle est la regex pour l'ID vidéo YouTube depuis une URL ?
/^(?:https?:\/\/)?(?:www\.|m\.)?(?:youtube\.com\/(?:watch\?v=|embed\/|shorts\/)|youtu\.be\/)([\w-]{11})(?:[?&#].*)?$/ — elle valide la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : https://www.youtube.com/watch?v=dQw4w9WgXcQ, https://youtu.be/dQw4w9WgXcQ?t=42, youtube.com/shorts/abcdefghijk, https://m.youtube.com/watch?v=dQw4w9WgXcQ&list=PL1. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de regex » : le motif, les indicateurs et le texte d'exemple se chargent automatiquement, et les correspondances s'affichent en surbrillance pendant que vous modifiez.