Download Youtube Video dengan Shell Script (Update)

NgoprekProgrammingTutorial
  1. Beranda
  2. Ngoprek
  3. Download Youtube Video dengan Shell Script (Update)

Bulan lalu Youtube merubah metode untuk link file videonya. Sepertinya dia memang sering merubah link itu, jadi beberapa add-on firefox dan software-software untuk download youtube jadi gagal mendownload. Dan saya sebelumnya pernah ngoprek shell sederhana untuk download video dari Youtube di sini, dan pastinya cara itu juga sudah tidak bisa digunakan lagi. Kita hanya perlu cari cara yang lain.

UPDATE: Versi terbaru yt-download.sh ada di sini.

Disini ada cara baru yang bisa digunakan untuk mendownload video dari Youtube. Agak berbeda dari cara yang lama, banyak parameter-parameter yang disertakan di-urlnya. Dan untuk di shell scriptnya perlu tambahan Regex (regular expression) untuk merubah string.

Buka source di browser halaman contoh ini

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

Kemudian lakukan pencarian string ini "img.src =" temuan yang pertama, dan seharusnya string tersebut hanya ada satu di halaman itu. Ambil string itu sampai bertemu karakter ';.

Kemudian, hanya dengan mengganti semua string ini "\/" menjadi "/", dan "generate_204" menjadi "videoplayback", kita akan langsung dapat link untuk videonya. Jalankan url itu di browser akan mendownload video tersebut. Gampang banget kan? Contohnya seperti ini.

http://v3.lscache8.c.youtube.com/videoplayback?ip=111.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&fexp=907103%2C900073%2C901023&algorithm=throttle-factor&itag=34&ipbits=8&burst=40&sver=3&expire=1280523600&key=yt1&signature=6F96527E73C895221DF2D018BB1B8BFFD7FFFAF8.4651E6B8C7F7B0B638D39A41F1439FE4F3314B&factor=1.25&id=8cd417002f48551c

Dan untuk shell scriptnya, buat file dengan nama "yt-download.sh". Scriptnya kira-kira seperti ini:

#!/bin/bash

if [ $2 ]
then
fn=$2
else
fn=$1.flv
fi

if [ $1 ]
then
  wget -O $1.tmp "http://www.youtube.com/watch?v="$1
  st=$(grep -o "img.src = '.*';" $1.tmp)
  st=${st#img.src = \'}
  st=${st%\';}
  st=${st//\\\///}
  st=${st/generate_204/videoplayback}
  echo "Link:" $st
  echo "File:" $fn

  wget -O $fn "$st"
  rm $1.tmp
else
  echo "Usage: sh yt-download.sh [video_id] [file_name]"
  exit
fi

Jalankan shell ini dengan command sh yt-download.sh jNQXAC9IVRw atau seperti ini bash yt-download.sh jNQXAC9IVRw untuk di Ubuntu. Di mana "jNQXAC9IVRw" adalah video id. Hasil downloadnya adalah file jNQXAC9IVRw.flv.

Saya kurang lihai untuk masalah Regex, jadi kalau ada Regex yang lebih baik bisa dipost di sini. Thx.

Mungkin Kamu juga suka

Happy SysAdmin Day!!! Hari Apresiasi System Administrator
Hosting Email di Google Apps

7 Komentar. Leave new

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Fill out this field
Fill out this field
Mohon masukan alamat email yang sah.
You need to agree with the terms to proceed

Latest

Tak ditemukan hasil apapun.