<?php
function getYouTubeXMLUrl( $url) {
$xml_youtube_url_base = 'h'.'ttps://youtube.com/feeds/videos.xml';
$preg_entities = [
'channel_id' => '\/channel\/([^\/?#]+)', //match YouTube channel ID from url
'user' => '\/user\/([^\/?#]+)', //match YouTube user from url
];
foreach ( $preg_entities as $key => $preg_entity ) {
if ( preg_match( '/' . $preg_entity . '/', $url, $matches ) ) { if ( isset( $matches[1] ) ) { return [
'rss' => $xml_youtube_url_base . '?' . $key . '=' . $matches[1],
'id' => $matches[1],
'type' => $key,
];
}
}
}
}
// works
$url = 'h'.'ttps://youtube.com/channel/UCBLAoqCQyz6a0OvwXWzKZag';
$channel = getYouTubeXMLUrl($url);
// doesn't work
$url = 'h'. 'ttps://youtube.com/channel/UCBLAoqCQyz6a0OvwXWzKZag?PARAMETER=HELLO';
$url = 'h'. 'ttps://youtube.com/channel/UCBLAoqCQyz6a0OvwXWzKZag/RANDOMFOLDER';
PD9waHAKCiBmdW5jdGlvbiBnZXRZb3VUdWJlWE1MVXJsKCAkdXJsKSB7CgogICAgJHhtbF95b3V0dWJlX3VybF9iYXNlID0gJ2gnLid0dHBzOi8veW91dHViZS5jb20vZmVlZHMvdmlkZW9zLnhtbCc7CiAgICAkcHJlZ19lbnRpdGllcyAgICAgICAgPSBbCiAgICAgICAgJ2NoYW5uZWxfaWQnICA9PiAnXC9jaGFubmVsXC8oW15cLz8jXSspJywgLy9tYXRjaCBZb3VUdWJlIGNoYW5uZWwgSUQgZnJvbSB1cmwKICAgICAgICAndXNlcicgICAgICAgID0+ICdcL3VzZXJcLyhbXlwvPyNdKyknLCAgICAvL21hdGNoIFlvdVR1YmUgdXNlciBmcm9tIHVybAogICAgXTsKCiAgICBmb3JlYWNoICggJHByZWdfZW50aXRpZXMgYXMgJGtleSA9PiAkcHJlZ19lbnRpdHkgKSB7CiAgICAgICAgaWYgKCBwcmVnX21hdGNoKCAnLycgLiAkcHJlZ19lbnRpdHkgLiAnLycsICR1cmwsICRtYXRjaGVzICkgKSB7CiAgICAgICAgICAgIGlmICggaXNzZXQoICRtYXRjaGVzWzFdICkgKSB7CgkJCQlyZXR1cm4gWwoJCQkJCQkncnNzJyA9PiAkeG1sX3lvdXR1YmVfdXJsX2Jhc2UgLiAnPycgLiAka2V5IC4gJz0nIC4gJG1hdGNoZXNbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICdpZCcgPT4gJG1hdGNoZXNbMV0sCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA9PiAka2V5LAogICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCi8vIHdvcmtzCiR1cmwgPSAnaCcuJ3R0cHM6Ly95b3V0dWJlLmNvbS9jaGFubmVsL1VDQkxBb3FDUXl6NmEwT3Z3WFd6S1phZyc7CgokY2hhbm5lbCA9IGdldFlvdVR1YmVYTUxVcmwoJHVybCk7CnByaW50X3IoJGNoYW5uZWwpIC4gUEhQX0VPTDsKCi8vIGRvZXNuJ3Qgd29yawokdXJsID0gJ2gnLiAndHRwczovL3lvdXR1YmUuY29tL2NoYW5uZWwvVUNCTEFvcUNReXo2YTBPdndYV3pLWmFnP1BBUkFNRVRFUj1IRUxMTyc7CnByaW50X3IoZ2V0WW91VHViZVhNTFVybCgkdXJsKSk7CiR1cmwgPSAnaCcuICd0dHBzOi8veW91dHViZS5jb20vY2hhbm5lbC9VQ0JMQW9xQ1F5ejZhME92d1hXektaYWcvUkFORE9NRk9MREVSJzsKcHJpbnRfcihnZXRZb3VUdWJlWE1MVXJsKCR1cmwpKTsKCg==