Dengan melakukan cache video, image, pada web site yang sering di buka seperti cache youtube, cache facebook dan lain sebagai nya. Squid Proxy yang sudah di bangun akan lebih maksimal dalam hal penghematan bandwidth dan mempercepat saat browsing.
Untuk kali ini DSI akan berbagi tutorial Cache Youtube Video dengan Squid Proxy sesuai janji DSI pada artikel sebelumnya.
Masalah Cache YouTube
CDN ( Content Delivery Network) Youtube
Youtube mempunyai server cadangan di beberapa negara. Agar video youtube mudah dan cepat saat di akses oleh semua pengunjung di dunia. Pengunjung akan di respond dari server yang paling dekat dengan negara nya.
Dynamic URL Youtube
Url video youtube selalu ber ubah – ubah (Dinamis). Sebagai contoh lihat url video dari gambar berikut:
Solusi supaya url youtube menjadi statis (tetap) dan bisa di cache harus menggunakan “STORE-ID”. Sehingga dengan url yang statis maka squid dapat melakukan cache youtube.
Youtube Mengunakan Port 443 (HTTPS)
Untuk melakukan cache youtube anda harus meng install squid yang sudah support dengan web https.
STORE-ID Youtube
Sekilas STORE-ID, berfungsi menulis ulang url yang masuk ke dalam helper store-id menjadi url yang tetap (statis). Helper Store-id dapat di tulis dengan bahasa pemrograman seperti perl, php, Python dan lain sebagai nya.
Di sini DSI akan memberikan script store-id untuk cache youtube menggunakan bahasa program perl.
- Buka program putty dan login menggunan user root.
- Buat file perl dan berikan nama “store-id.pl” pada directory “/etc/squid/”
touch /etc/squid/store-id.pl
- Beri permision / akses ijin file store-id
chmod 777 /etc/squid/store-id.pl
chown -R proxy:proxy /etc/squid/store-id.pl
- Masukan Script di bawah ini pada file “store-id.pl” yang sudah di buat tadi.
#!/usr/bin/perl
# =====================================================
# = DSI store-id sample youtube 2016
# = https://www.facebook.com/R.dhani.dhanu
# = https://www.dokter-squid.com/
# =====================================================
$|=1;
while (<>) {
chomp;
my $dsi = "";
if (s/^(\d+\s+)//o) { $dsi = $1; }
@X = split;
if (@X[0] =~ m/^(exit|quit|x|q)/) {
print STDERR "quiting helper quietly\n";
exit 0;
}
$url = $X[0];
$referer = $X[1];
# youtube.com
if ($url =~ m/^https?:\/\/.*\.googlevideo\.com\/videoplayback\?.*/) {
@id = m/[\&?|\%?|\s?]id=([^\&\%\s]+)/;
@range = m/[\&?|\%?|\s?]range=([^\&\%\s]+)/;
@itag = m/[\&?|\%?|\s?]itag=([^\&\%\s]+)/;
@mime = m/[\&?|\%?|\s?]mime=([^\&\%\s]+)/;
@clen = m/[\&?|\%?|\s?]clen=([^\&\%\s]+)/;
if ($referer =~ m/^https?\:\/\/www\.youtube\.com\/(watch\?v\=|embed\/|v\/)(.*)/) {
$v = $2;
} else { $v = $id[0] }
$out = "http://youtube.dokter-squid.com/" . $v . "@range@itag@mime@clen";
# ytimg.com
} elsif ($url =~ m/^https?:\/\/.*\.ytimg\.com(.*\.(webp|jpg|gif))/) {
$out = "http://ytimg.dokter-squid.com/$1";
} else {
$out = "ERR";
}
if ($out =~ m/^http:\/\/.*/) {
print $dsi, "OK store-id=$out\n";
} else {
print $dsi, "ERR\n";
}
}
- Buka “squid.conf” lalu tambahkan script di bawah ini:
acl youtube url_regex -i ^https?:\/\/.*\.googlevideo\.com\/videoplayback\?
acl youtube url_regex -i ^https?:\/\/.*\.ytimg\.com.*\.(webp|jpg|gif)
store_id_program /etc/squid/store-id.pl
store_id_extras "%{Referer}>h"
store_id_children 10 startup=5 idle=2 concurrency=100
store_id_access allow youtube
store_id_access deny all
refresh_pattern -i ^http.*\.dokter\-squid\.com 432000 100% 432000 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-store ignore-private ignore-auth ignore-must-revalidate
- Setelah kita menambahkan script “store-id” dan edit “squid.conf” sekarang saat nya lakukan “reconfigure”:
squid -k reconfigure
Sampai di sini jika tidak ada informasi “error” maka kita sudah berhasil membuat store-id untuk cache youtube. Silahkan di coba ulang kembali jika saat “reconfigure” terdapat informasi “error”.
Sekarang saatnya uji coba, apakah youtube berhasil di cache atau tidak dengan store-id di atas. Berikut contoh “access.log” video youtube yang sudah berhasil di cache dengan store-id diatas:
Demikian cara cache youtube dengan squid 3, semoga dengan tutorial ini pembaca sudah bisa melakukan cache youtube pada mesin proxy nya.
Bagi yang masih bingung dan malas untuk oprek, kami membuka Jasa Setting Proxy lewat remote, harga bersahabat dan bergaransi.
Jangan lupa subscribe dan Share jika anda merasa terbantu dan suka dengan artikel ini.
Terimakasih
mas, pas buka youtube loading trus,
HIT 0 dan loop terus,
salah dimana yah
Thx
pakai config yang dimana
bisa settingkan proxy kita mas….
untuk cache youtube ini??
bisa sekali mas, harga 1jt untuk jasa setting proxy
maaf mau nanya pak, apa cara ini masih bisa untuk mem cache youtube? soalnya saya sudah coba 4 kali masih gagal, video nya ga ke cache..
terimakasih sebelumnya
bang, setelah step reconfigure, squid berjln normal alias tanpad pesan error, waktu di test, tdk bisa terhubung ke pub, ada pengaturan tambahan selain di squidnya?
thanks
regard
pastikan mangle selain TProxy di disable dulu untuk uji coba.
link di atas hanya standard, agar tercache harus usaha sendiri, kalau ga sanggup baru bayar 1jt, terkadang ilmu itu mahal, tapi bagi mereka yang mencari amal pasti di share full.
Hi your youtube store-id.pl script is not good is not caching webm video and audio, only TCP_HIT on jpeg,png,text.html… on ytimg.com
on youtube CDN servers not able to make cache videos
example shown using your configuration
505791915.680 3036 172.100.100.254 TCP_MISS/200 1815223 GET https://r2—sn-uxjioxucg-cnce.googlevideo.com/videoplayback? – HIER_DIRECT/170.254.11.45 video/webm
1505791917.585 969 172.100.100.254 TCP_MISS/200 431857 GET https://r2—sn-uxjioxucg-cnce.googlevideo.com/videoplayback? – HIER_DIRECT/170.254.11.45 audio/webm
1505791926.612 3495 172.100.100.254 TCP_MISS/200 1941155 GET https://r2—sn-uxjioxucg-cnce.googlevideo.com/videoplayback? – HIER_DIRECT/170.254.11.45 video/webm
1505791932.608 982 172.100.100.254 TCP_MISS/200 446366 GET https://r2—sn-uxjioxucg-cnce.googlevideo.com/videoplayback? – HIER_DIRECT/170.254.11.45 audio/webm
1505791932.676 117 172.100.100.254 TAG_NONE/200 0 CONNECT r2—sn-uxjioxucg-cnce.googlevideo.com:443 – HIER_DIRECT/170.254.11.45 –
1505791934.873 274 172.100.100.254 TAG_NONE/200 0 CONNECT i.ytimg.com:443 – HIER_DIRECT/216.58.202.238 –
1505791934.890 280 172.100.100.254 TCP_MISS/204 553 GET https://www.youtube.com/player_204? – HIER_DIRECT/172.217.30.14 text/html
1505791934.955 349 172.100.100.254 TAG_NONE/200 0 CONNECT i.ytimg.com:443 – HIER_DIRECT/216.58.202.238 –
1505791934.955 350 172.100.100.254 TAG_NONE/200 0 CONNECT i.ytimg.com:443 – HIER_DIRECT/216.58.202.238 –
1505791935.091 126 172.100.100.254 TCP_IMS_HIT/304 273 GET https://i.ytimg.com/vi/_TJUt3YQ-JQ/mqdefault.jpg – HIER_NONE/- image/jpeg
1505791935.099 7 172.100.100.254 TCP_IMS_HIT/304 273 GET https://i.ytimg.com/vi/bwEQZn4L88I/mqdefault.jpg – HIER_NONE/- image/jpeg
1505791935.099 7 172.100.100.254 TCP_IMS_HIT/304 272 GET https://i.ytimg.com/vi/ZiOSaHy5JFg/mqdefault.jpg – HIER_NONE/- image/jpeg
1505791935.752 3142 172.100.100.254 TCP_MISS/200 1861010 GET https://r2—sn-uxjioxucg-cnce.googlevideo.com/videoplayback? – HIER_DIRECT/170.254.11.45 video/webm
1505791937.314 167 172.100.100.254 TCP_MISS/204 574 POST https://s.youtube.com/api/stats/qoe? – HIER_DIRECT/172.217.30.14 text/html
1505791938.257 111 172.100.100.254 TCP_MISS/204 480 GET https://s.youtube.com/api/stats/watchtime? – HIER_DIRECT/172.217.30.14 text/html
1505791944.405 1038 172.100.100.254 TCP_MISS/200 517306 GET https://r2—sn-uxjioxucg-cnce.googlevideo.com/videoplayback? – HIER_DIRECT/170.254.11.45 video/webm
1505791944.866 243 172.100.100.254 TCP_MISS/204 553 GET https://www.youtube.com/player_204? – HIER_DIRECT/172.217.30.14 text/html
1505791944.915 294 172.100.100.254 TCP_MISS/200 525 POST https://www.youtube.com/youtubei/v1/log_event? – HIER_DIRECT/172.217.30.14 application/json
1505791954.832 199 172.100.100.254 TCP_MISS/204 553 GET https://www.youtube.com/player_204? – HIER_DIRECT/172.217.30.14 text/html
1505791964.658 224 172.100.100.254 TCP_MISS/204 553 GET https://www.youtube.com/player_204? – HIER_DIRECT/172.217.30.14 text/html
1505791974.737 300 172.100.100.254 TCP_MISS/200 525 POST https://www.youtube.com/youtubei/v1/log_event? – HIER_DIRECT/172.217.30.14 application/json
1505791974.758 297 172.100.100.254 TCP_MISS/204 553 GET https://www.youtube.com/player_204? – HIER_DIRECT/172.217.30.14 text/html
1505791977.395 251 172.100.100.254 TCP_MISS/204 574 POST https://s.youtube.com/api/stats/qoe? – HIER_DIRECT/172.217.30.14 text/html
1505791978.263 121 172.100.100.254 TCP_MISS/204 480 GET https://s.youtube.com/api/stats/watchtime? – HIER_DIRECT/172.217.30.14 text/html
1505791984.719 256 172.100.100.254 TCP_MISS/200 525 POST https://www.youtube.com/youtubei/v1/log_event? – HIER_DIRECT/172.217.30.14 application/json
mas minta store-id.pl ya dong, punya saya squid ya ga bisa caching youtube lagi …