Mempelajari dasar handycache sudah dilakukan sekarang saatnya untuk menggunakan handycache dengan mempraktekan rule untuk mencaching
praktek rule kali ini yaitu saya akan mencoba untuk mencache video youtube
Menemukan Video URLnya terlebih dahulu
langkah awal sebelum membuat rules adalah kalian harus menemukan URLnya terlebih dahulu
berikut contoh URL video youtube yang berformat partial (terpisah-pisah)
https://r5---sn-2uuxa3vh-jb3s.googlevideo.com/videoplayback?expire=1626601747&ei=s6TzYIXPEtKm3LUP7_upqA4&ip=125.161.118.82&id=o-AFQLwk_S4ie1kSaB0QRbLVMhrzpvpV14pBBOayv00_YP&itag=251&source=youtube&requiressl=yes&mh=yH&mm=31,29&mn=sn-2uuxa3vh-jb3s,sn-npoe7n76&ms=au,rdu&mv=m&mvi=5&pl=23&initcwndbps=842500&vprv=1&mime=audio/webm&ns=AzK6D8rQBKsOpYWXsoxMhQUG&gir=yes&clen=3733720&dur=236.901&lmt=1577450452302309&mt=1626579883&fvip=5&keepalive=yes&fexp=24001373,24007246&c=WEB&txp=5531432&n=ig2d4z8cRhtCPQ&sparams=expire,ei,ip,id,itag,source,requiressl,vprv,mime,ns,gir,clen,dur,lmt&lsparams=mh,mm,mn,ms,mv,mvi,pl,initcwndbps&lsig=AG3C_xAwRgIhAOnQ0yF-plLdb9nk3ClVp2KNemstWy1UJoScpCF5NGbbAiEAn7vikXnBZ-eiv-nIx5mHyErUcshkLyRbrEMU3Ou2hM4=&alr=yes&sig=AOq0QJ8wRAIgBrjscvYvHT2j_aUvnMzJC2XRzHK7MJueFVeXsR5FuIACIA4bp8jI1BxeZa9sHxkg1yjEWRrX_r1esPTxFqyHO9_1&cpn=qu4C7-fzavLsaCfR&cver=2.20210716.00.00&range=453963-775784&rn=17&rbuf=28251
Dilanjut dengan mengidentifikasi URLnya
bagaimana caranya agar url tersebut tersimpan menjadi cache ?
kalau gampangnya pikiran saya pasti langsung saja tambahin rule dengan isi googlevideo.com/videoplayback\?.*
ke rule save to cache dan don't update maka pasti bakalan kesimpen jadi cache.
sehabis menyimpan cache apakah cachenya bisa digunakan lagi ?
silahkan dicoba reload halaman youtube kemudian play videonya, maka dapat dipastikan akan mencache ulang url video tersebut, kenapa hal ini bisa terjadi ?
hal ini terjadi karena url yang sebelumnya dicache berbeda dengan url yang baru saja diload (urlnya bersifat dinamis). berikut contoh url dinamis seperti dibawah ini
- URL Saat dibuka
https://googlevideo.com/videoplayback?expire=123456...
-- URL Saat direload
https://googlevideo.com/videoplayback?expire=654321...
-- URL Di direload lagi
https://googlevideo.com/videoplayback?expire=321654...
Penjelasan : saat url dibuka parameter expire memiliki nilai 123456 namun ketika halaman direload nilai parameter expire berubah menjadi 654321 dan ketika direload lagi nilai parameter expire berubah lagi menjadi 321654. disinilah kenapa url tersebut dibilang URL dinamis
penyebabnya kenapa url yang sudah dicache namun tidak bisa digunakan yaitu karena ada string yang berubah-ubah dari url tersebut
Handycache membacanya kalau url tersebut belum pernah dicache maka dari itu url tersebut akan cache ulang
lantas bagaimana untuk memisahkan string dinamis dari url tersebut menjadi url statis agar nilainya tidak berubah ?
untuk itulah fitur URL transforming digunakan sebagai tempat pemprosesan url agar bisa dimanipulasi
yang awalnya url dinamis saat dibaca oleh handycache maka bisa dirubah menjadi url statis
maksud dimanipulasi disini bukan berarti urlnya dimanipuasi dibrowser, tapi diaplikasi handycachenya
Solusi mengatasi url dinamis pada video youtube
agar url video youtube bisa dicache dan cachenya bisa digunakan kembali, maka saya harus membuat url tersebut menjadi statis
untuk membuatnya menjadi statis maka saya harus mencari string yang sifatnya statis dengan cara membandingkan URL satu dengan url lainnya
sebagai contohnya seperti url dibawah ini
- URL video-1 Saat dibuka
https://googlevideo.com/videoplayback?expire=123456&itag=251&mime=audio/webm&clen=3733720&lmt=1577450452302309&cpn=qu4C7-fzavLsaCfR&cver=2.20210716.00.00&range=453963-775784&rn=17&rbuf=28251
-- URL video-1 Saat direload
https://googlevideo.com/videoplayback?expire=654321&itag=251&mime=audio/webm&clen=3733720&lmt=1577450452302309&cpn=kow12-koe01i39qo&cver=2.20210716.00.00&range=123-1040&rn=17&rbuf=28251
- URL video-2 Saat dibuka
https://googlevideo.com/videoplayback?expire=78910&itag=231&mime=video/webm&clen=9833720&lmt=9239173129831923&cpn=23k2l-213klk3j&cver=2.20210716.00.00&range=45610-55100&rn=17&rbuf=239
- URL video-2 Saat direload
https://googlevideo.com/videoplayback?expire=10987&itag=231&mime=video/webm&clen=9833720&lmt=9239173129831923&cpn=1232k-k32o1ko3k&cver=2.20210716.00.00&range=10654-20620&rn=17&rbuf=239
Penjelasan : dari sample url diatas kalian harus menemukan nilai statis hanya untuk video tersebut jika nilai statis itu berubah divideo lain maka itu dapat digunakan. disini saya tertuju pada parameter lmt, nilai lmt bersifat statis walau url video 1 sudah direload dan kemudian berubah saat membuka video 2. maka dapat dipastikan nilai dari parameter lmt inilah yang akan digunakan sebagai url statisnya, atau bisa disebut identitasnya (id)
tujuan nilai statis yang ditemukan itu digunakan sebagai identitas (id) sebagai penanda kalau nilai tersebut berasal dari video youtube ini
disinilah letak kunci agar file yang sudah dicache bisa dipakai ulang cachenya
terus abis ketemu string statis harus apa lagi ?
selanjutnya mencari nilai yang bersifat dinamis yang digunakan untuk nama file cache agar tidak sama satu dengan lainnya
karena url video youtube ini sifatnya partial maka pastinya akan selalu ada range yang harus disematkan pada URLnya
kalau saya identifikasi lagi urlnya terdapat nilai dinamis yang bisa digunakan yaitu tertuju pada parameter itag dan range
maka sudah dipastikan nama file cache nantinya berformat itag-range (251-453963-775784)
dugaan saya itag ini merupakan identitas qualitas dan range adalah identitas videonya
tujuan file cache diberi nama yang dinamis biar kenapa ?
agar nama file yang dicache tidak sama dengan nama file cache dari url selanjutnya
kalau sama nanti dia bakalan menimpa file sebelumnya dan file cache jadi tidak bisa digunakan
Memulai membuat Rule
setelah nilai statis ditemukan untuk identitas dan nilai dinamis ditemukan untuk nama file cachenya, maka selanjutnya adalah membuat url transformingnya menggunakan bahasa regex, berikut regexnya
^.*\.(googlevideo\.com\/)videoplayback\?.*&itag=([0-9]+).*&lmt=([0-9]+).*&range=([0-9]+\-[0-9]+).*
berikut penjelasan regex diatas
- ^.* = ditujukan untuk semua string yang ada didepan sebelum string googlevideo\.com
- (googlevideo\.com\/) = membuat grup menggunakan regex untuk mengambil domain yang digunakan untuk url transforming
- \?.* = ditujukan untuk semua string sehabis simbol ?
- &itag=([0-9]+) = berhenti jika menemukan string &itag= kemudian membuat group menggunakan regex yang diawali dengan buka kurung dan tutup kurung "()" yang nilainya harus angka dari 0-9 lalu dilanjut dengan regex + yang berarti tidak terbatas panjang angkanya
- .* = dilanjut lagi mengambil semua string setelah nilai dari itag
- &lmt=([0-9]+) = berhenti kembali jika menemukan string &lmt= kemudian membuat group regex kembali dan mengambil nilai yang harus bersifat numeric
- .* = dilanjut lagi mengambil semua string setelah nilai dari lmt
- &range=([0-9]+\-[0-9]+) = berhenti kembali jika menemukan string &range= kemudian membuat group regex dan mengambil nilai yang bersifat numeric dilanjut dengan simbol - dan mengambil nilai numeric lagi
- .* = dilanjut lagi mengambil semua string setelah nilai dari range, namun tidak dipakai
Uji coba regex dengan url youtube video
untuk mencoba apakah regex tersebut sudah bisa digunakan atau tidak, kalian bisa mencobanya pada fitur practice yang terletak pada menu Options, sub menu Lists > Practice.
silahkan masukan regexnya pada input Rule, dan urlnya ke Input text. kemudian pencet tombol Apply untuk mengecek apakah regex sesuai dengan url, jika sesuai maka akan tampil dibagian Results berupa nilai yang telah digrupkan mengunakan regex, nilai yang digrupkan ini yang akan kita rubah urutannya, berikut penjelasan kode untuk replacement
- \1 = mengambil nilai dari grup regex posisi 1 yaitu googlevideo.com/
- \2 = mengambil nilai dari grup regex posisi 2 yaitu nilai dari parameter itag
- \3 = mengambil nilai dari grup regex posisi 3 yaitu nilai dari parameter lmt
- \4 = mengambil nilai dari grup regex posisi 4 yaitu nilai dari parameter range
setelah mengetahui penjelasan kode replace sekarang coba di isi Replacementnya dengan nilai seperti ini
\1\3/\2-\4
Penjelasan : selain menggunakan kode replacement kalian juga bisa menambahkan string lainnya yang berfungsi untuk merubah bentuk url, disini saya menambahkan string /
setelah kode \3
tujuannya untuk menjadikan lmt sebagai url statis uniq setiap video dan menambakan string -
setelah kode \2
untuk misahkan antara string itag dengan range yang digunakan sebagai nama file cache
setelah dimasukan kodenya maka klik tombol Replace jika berhasil maka akan muncul url baru setelah baris after-replacement dibagian results (lihat gambar)
url baru tersebut menjadi googlevideo.com/1577450452302309/251-453963-775784
Memasukan rule ke fitur URL transforming
Setelah selesai mengetes regex (rule) yang dibuat maka langkah selanjutnya adalah memasukan rule (regex) tersebut ke dalam fitur URL transforming
silahkan buka fitur url transformig yang terletak di sub menu Cache > Url transforming
kemudian masukan regex (rule) yang telah dibuat kedalam kolom rule dan memasukan juga replacement yang sudah diset diatas
untuk kolom replace all dan required bisa dicentang keduanya, jika sudah maka klik save dan akan terlihat seperti gambar dibawah ini
Hasil dari URL Transforming
Berikut hasil praktek membuat url transforming pada video youtube
dibagian rules ada tulisan U.1 yang berarti url tersebut masuk kedalam rule url transforming baris ke-1
Penutup
seperti itulah cara membuat url transforming yang menurut saya mudah untuk dipahami
intinya dari url transforming adalah kita bisa mencache url yang sifatnya dinamis dengan menemukan unique identity (id) dari setiap url yang diakses