getting youtube video id the PHP

Actualmente estoy escribiendo una aplicación web en la que algunas páginas dependen en gran medida de poder extraer el video de YouTube correcto y reproducirlo. Los usuarios proporcionan las URL de youtube y, por este motivo, generalmente vienen con variantes, una de ellas puede verse así:

http: //www.youtube.com/watch? v = y40ND8kXDlg

mientras que el otro puede verse así:

http: //www.youtube.com/watch/v/y40ND8kXDl

Actualmente puedo extraer la identificación de este último usando el siguiente código:

function get_youtube_video_id($video_id)
{

    // Did we get a URL?
    if ( FALSE !== filter_var( $video_id, FILTER_VALIDATE_URL ) )
    {

        // http://www.youtube.com/v/abcxyz123
        if ( FALSE !== strpos( $video_id, '/v/' ) )
        {
            list( , $video_id ) = explode( '/v/', $video_id );
        }

        // http://www.youtube.com/watch?v=abcxyz123
        e,lse
        {
            $video_query = parse_url( $video_id, PHP_URL_QUERY );
            parse_str( $video_query, $video_params );
            $video_id = $video_params['v'];
        }

    }

    return $video_id;

}

¿Cómo puedo lidiar con URLS que usan la?v versión en lugar de/v/ ¿versión

Respuestas a la pregunta(22)

Su respuesta a la pregunta