Connect with us

Peristiwa & Opini

Cara Melacak URL Video Youtube Dengan Tepat

mm

Published

on

Cara Melacak URL Video Youtube Dengan Tepat
Sumber Gambar: youtube.com

Ini juga untuk menjawab pertanyaan Surya yang masih penasaran mengapa di Jejaring.net ketika saya menautkan URL dari Youtube, Video langsung tayang tanpa harus melalui player Youtube. Ini sebenarnya salah satu rahasia saya yang tidak akan saya buka sembarangan.

Teknik ini sebenarnya sudah cukup lama, namun efektif jika digunakan sampai dengan saat ini. Apakah dalam hal ini Youtube lengah/ Saya jawab tidak. Sedahsyat apapun sistem keamanannya, pasti ada lobangnya yang bisa kita telusur cara berfikirnya dengan baik.


Nah, sebenarnya dimana rahasianya? ya kita baca saja dulu semua data dari url Youtube bersangkutan.

Langkah pertama: Buat Function PHP untuk get_data dari Url Youtube sebagai berikit:

function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}

Langkah kedua menentukan url Youtube yang mau kita baca dan tentukan “regex_pattern” nya terlebih dahulu, agar benar-benar url tersebut memang url dari youtube.

$yt = ‘https://www.youtube.com/watch?v=qUr8TYhjZrg’; (ini saya ambil contoh salah satu dari url youtube milik kanal CNN)
$regex_pattern = “/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\”‘>]+)/”;
$match;

Langkah ketiga, memanggil fungsi tersebut dan mengeksekusi dan men-decode data dari url Youtube bersangkutan.

if (preg_match($regex_pattern, $yt, $match)) {
$id=$match[1];
}
$id=$match[1];
if (isset($_GET[“id”]))
$id = $_GET[“id”];
parse_str(file_get_contents(‘http://www.youtube.com/get_video_info?video_id=’.$id), $video_data);
$streams = $video_data[‘url_encoded_fmt_stream_map’];
$streams = explode(‘,’,$streams);
$counter = 0;
foreach ($streams as $streamdata) {

parse_str($streamdata,$streamdata);
foreach ($streamdata as $key => $value) {
if ($key == “url”) {
$value = urldecode($value);

$video=$value;

}
}
$counter = $counter+1;
if ($counter == 1) {
break;
}
}

Catatan mengapa ada fungsi Break tersebut diatas ketika counter == 1? karena jika tidak, maka ada lebih dari 8 url dari youtube yang akan diperlihatkan. Padahal yang kta butuhkan adalah satu url video yang tertanam di server youtube saja dengan resolusi terbaik khan?

Langkah keempat, tinggal pasangkan dengan video player yang kita ingin gunakan. silahkan pasangkan dengan custom video player yang baik sebagaimana tulisan saya sebelumnya. Namun dalam tutorial ini saya hanya memasangnya dengan menggunakan html5 Player biasa aja.

<video width="640" height="480" controls>
<source src= <?php echo $video; ?> type="video/mp4">
</video>

Tara, jadilah dan sukses kita identifikasi url asli video Youtube. Namun, yang saya gunakan di Jejaring.net jauh lebih rumit dan kompleks, sehingga data asli url-url youtube yang sebenarnya tidak mudah dibaca pun bisa saya identifikasi dengan sukses. Jangankan Youtube, Instagram video dan Facebook video juga langsung tayang otomatis di Jejaring.net kok. Hehe.

Intinya pahami itu dulu, dan kalau sudah khatam, baru akan saya jelaskan algoritma apa yang saya gunakan di Jejaring.net. Kalau masih belum jelas, silahkan bertanya pada kolom komentar. Hanya anak-anak eks ICT saja, yang saya perbolehkan bertanya lewat Whatsapp saya.

Kode selengkapnya dapat dilihat dibawah ini:

$match;

if (preg_match($regex_pattern, $yt, $match)) {
$id=$match[1];
}
$id=$match[1];
if (isset($_GET[“id”]))
$id = $_GET[“id”];
parse_str(file_get_contents(‘http://www.youtube.com/get_video_info?video_id=’.$id), $video_data);
$streams = $video_data[‘url_encoded_fmt_stream_map’];
$streams = explode(‘,’,$streams);
$counter = 0;
foreach ($streams as $streamdata) {

parse_str($streamdata,$streamdata);
foreach ($streamdata as $key => $value) {
if ($key == “url”) {
$value = urldecode($value);

$video=$value;

}
}
$counter = $counter+1;
if ($counter == 1) {
break;
}
}
?>

<video width="640" height="480" controls>
<source src= <?php echo $video; ?> type="video/mp4">
</video>

Click to comment
KOMENTAR ANDA
Advertisement