Membuat Rule URL transforming pada Handycache

irfan-photo irfan · 2 bulan lalu

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.

handycache-test-practice-regex-button-apply

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

handycache-practice-regex-button-replace

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

handycache-insert-url-transforming

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

results-url-transforming

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

Terakhir diupdate 17 Jun 2022 09:04 WIB
Daftar Konten HandyCache