31 Oktober 2009

"Save Target As..." 1000 File dalam Sekejap

Download merupakan kegiatan yang menyenangkan. Sebagaian orang mungkin menjadikannya sebagai 'pekerjaan sehari-hari'. Tiada hari tanpa download. :) Pencariannya sering kali menjadi tantangan tersendiri bagi penggila download. Seperti sedang melacak jejak musuh di tengah hutan. Coba link ini salah, link itu tidak sesuai harapan. Ketika tiba saatnya ketemu link yang diharapkan, ternyata harus download satu per satu. Melalui klik kanan "save target as..." pula. Bayangkan jika harus mendownload 100 file di tempat yang sama.

Sebagai contoh, baru-baru ini saya menemukan link file mp3 belajar bahasa Jepang di nhk.or.jp. Di situ ada bagian khusus yang bernama "Belajar Bahasa Jepang". Bagian tersebut mengizinkan pembaca untuk dapat mendengarkan langsung suara tutor (streaming) atau mendownload file mp3-nya. Karena koneksi lagi seret, maka tidak mungkin kalau harus melakukan streaming. suaranya gak bakal enak didengar bin putus-putus. Alternatifnya, file audio tersebut harus di download satu per satu. Nah, celakanya bukan cuma ada dua atau tiga file, tapi ada 100 file.

Celaka yang kedua, saya tidak menggunakan download manager atau accelerator yang canggih seperti IDM atau FlashGet. Hanya menggunakan downloader yang sederhana namun ramah bandwidth, yakni visualwget (wget + GUI). Sebenarnya dengan wget ini, kita bisa menggunakan opsi -r (recursive) untuk mendownload banyak file dari suatu direktori. Tapi karena akses untuk melihat daftar file tersebut dibatasi, maka opsi recursive menjadi tidak berfungsi (CMIIW).

Celaka yang ketiga, kejadian semacam ini sering saya alami. Bukan karena hobi download saja, tapi karena ada kesempatan (bandwidth kadang gedhe) yang harus di download, dan itu penting. Buanyak lagi :)

Oleh karena itu, dari pada copy paste membuat daftar link download secara manual, lebih baik diotomatisasi. Lagian tidak semuanya celaka dan harus celaka terus. Masih ada beruntungnya (alhamdulillah), nama-nama file tersebut berpola berurutan naik (ascending). Misalkan file pertama mempunyai nama lesson1.mp3, file kedua bernama lesson2.mp3, hingga file ke-100 namanya lesson100.mp3. Ini pula yang sering saya alami.

Cukup dengan beberapa baris javascript, mesin generator link sudah dapat dibangun. Inti dari mesin ini adalah membuat daftar link yang dapat dijalankan di jendela webbrowser. Tentu saja settingan javascript harus diaktifkan :p. Kelebihannya cuma tiga, sederhana, portable dan  multiplatform (ada yang nambahin?).

Penggunaan
Cara penggunaannya mudah. Mari perhatikan contoh download link file lesson1.mp3 berikut :
http://www.nhk.or.jp/lesson/indonesian/lesson1.mp3
Kita akan mendownlad file lesson1.mp3 sampai file lesson100.mp3 kemudian kita bagi link tersebut menjadi tiga bagian, yakni :
  1. Teks 1 (pra) : http://www.nhk.or.jp/lesson/indonesian/lesson
  2. Angka yang berurutan naik : 1
  3. Teks 2 (paska) : .mp3
Copy Teks 1 kemudian paste di field Kata-kata sebelum (teks 1) yang ada di form. Lalu copy juga Teks 2 ke field Kata-kata sesudah (teks 2). Isi field Dari dengan angka 1 dan Sampai dengan angka 100 (atau sesuai dengan link yang tersedia). Setelah selesai, klik tombol Generate (Gambar 0). Di jendela yang sama akan muncul daftar link mulai dari file lesson1.mp3 hingga lesson100.mp3 (Gambar 1). Sekarang silahkan simpan dengan nama daftar-file.txt.

Gambar 0

Gambar 1


Karena saya menggunakan VisualWget, maka tinggal dimasukkandaftar-file.txt ke dalam opsi download (Gambar 2). Jika menggunakan wget, tinggal ketik perintah :
$ wget --input-file=/direktori/file/daftar-file.txt -> Linux
D:\>c:\direktori\wget\wget.exe --input-file=e:\daftar-file.txt -> Windows XP

Gambar 2

Berikut script sederhannya. Penyempurnaan dilakukan besok saja. Saatnya kembali kerja lagi sambil ngebayangin jika harus mendownload file lesson1.mp3 hingga lesson1000.mp3 dengan klik kanan save target as... atau membuat daftar secara manual. Beuwh... cuape' deh :p
Selamat menikmati :)

<html>
<head>
<title>Link-list Generator</title>
<script type="text/javascript">
function ambil_var()  {
    txt1=document.getElementById('txt1').value;
    txt2=document.getElementById('txt2').value;
    a=parseInt(document.getElementById('dari').value,10);
    z=parseInt(document.getElementById('sampai').value,10);
}
function generate() {
    ambil_var();
    if (a<z) {
        for (i=a;i<=z;i++) {
            document.write(txt1+i+txt2+'<br />');
        }
    } else {
        alert('Nilai \"dari\" > atau = \"sampai\"');
    }
    return false;
}
</script>
</head>
<body>
<form name="form1">
Pola : <teks 1><angka><teks 2><br/>
Kata-kata sebelum (teks 1) : <input type="text" name="txt1" id="txt1" size="100"/><br/>
Dari <input type="text" id="dari" size="10"/>
Sampai <input type="text" id="sampai" size="10"/><br/>
Kata-kata sesudah (teks 2) : <input type="text" name="txt2" id="txt2" size="100"/><br/>
<input type="button" value="Generate" onclick="generate()" />
<input type="reset" value="Reset" />
</form>
__<br />azhar [tentangkita2004.blogspot.com]
</body>
</html>


Simpan dengan nama download.html

:)

update: versi terbaru skrip ini bisa dilihat di sini.

1 komentar: