Menu Utama

Login

Nama Samaran:

Kata Laluan:

Lupa Kata Laluan?
Daftar Sekarang!

Carian

Mambang News : Squid youtube caching
Dihantar oleh oshiri on 2008/7/18 11:18:35 (712 bacaan) News by the same author

Squid youtube caching, sudah lama mencari, akhirnya bertemu juga.
Apa faedahnya caching youtube?
Untuk menjimatkan bandwidth dan melajukan capaian jika video youtube yang sama ingin di tatap oleh ramai pengguna network.
Keburukan?
Dari masa semasa saiz ruang hardisk anda akan semakin membesar.
Terpulang kepada anda bagaimana untuk lakukan maintenance ruang hdd.

Pelbagai cara telah aku cuba, regex url, store url rewriting dan lain-lain.
Semuanya hampes dan tidak berjaya untuk caching youtube. Semuanya mungkin berpunca daripada youtube yang menggunakan multiple server yang tersebar seluruh dunia untuk "serve" video walaupun video yang sama.

Suatu hari sedang melayari internet, aku terjumpa script python oleh Kulbir Saini yang ternyata dapat melakukan caching youtube.
Apa yang dilakukan oleh script ini ialah:
1. Ia akan mendapatkan url dari squid dan memeriksa samada url dari youtube.com dan mempunyai request terhadap video
2. Jika (1) dipenuhi, ia akan mengekstrak id video.
3. Ia akan memeriksa samada video telah di cache, jika belum, ia akan menyimpan dalam cache
4. Ia juga memeriksa timestamp video antara cache dan remote. Jika video remote adalah baru dari cache, ia akan menyimpan video yang baru ke cache.
5. Bila video yang direquest dari client ada pada cache, ia akan serve video tersebut secara terus tanpa menggunakan url youtube tetapi menggunakan squid dan apache2.

Untuk menggunakan script ini, anda perlukan squid 2.7, apache2 dan python.
Pihak kami telah pun menyediakan precompiled package untuk Debian Etch yang akan install semua yang diperlukan untuk caching youtube seperti di atas.
Anda boleh download dari:
http://mambang.org.my/modules/PDdownloads/singlefile.php?cid=4&lid=51

Setelah install, apa yang perlu anda lakukan ialah:
1. rename file /etc/squid/squid.conf.youtube kepada squid.conf
Edit file tersebut mengikut kesesuaian dan keperluan anda.
2. edit file /etc/squid/youtube_cache.py dan ubah baris berikut:

cache_url = 'http://<Proxy_IP>/youtube/'

Gantikan Proxy_IP kepada ip server squid.
Contoh: cache_url = 'http://192.168.1.2/youtube/'

Bila selesai, mulakan service apache2 dan squid:

# /etc/init.d/apache2 start
#/etc/init.d/squid start


Contoh video youtube yang telah dicache dan direquest oleh client:
1216345336.819   1885 127.0.0.1 TCP_MISS/303 334 GET http://youtube.com/get_video?video_id=dtlO0RXktlo&t=OEgsToPDskLA9MveHN0S2uj1lYD0toID - NONE/- -
1216345338.252    715 127.0.0.1 TCP_MISS/204 307 GET http://video-stats.video.google.com/s?ns=yt&plid=AARSQnaTUG98UzfrAAACgAQ4YAA&vid=Lqv5zOgHU8-ZLj0C5z-dKayKQXwaSZwNC&docid=dtlO0RXktlo&el=detailpage&hbd=4239373&hbt=118.485&rt=3.437&len=151&st=0.209&et=0.209&fv=LNX%209%2C0%2C48%2C0 - DIRECT/209.85.173.127 text/html
1216345343.962   7138 127.0.0.1 TCP_MISS/200 6207978 GET http://192.168.1.2/youtube/dtlO0RXktlo.flv - DIRECT/192.168.1.2 text/plain
1216345458.241      2 127.0.0.1 TCP_IMS_HIT/304 350 GET http://youtube.com/crossdomain.xml - NONE/- application/xml


Video disimpan atau di cache pada direktori /var/spool/squid/youtube :
# ls /var/spool/squid/youtube
dtlO0RXktlo.flv  youtube.log


Log dari script:
# tail youtube.log
2008-07-18 09:39:23,539 INFO dtlO0RXktlo  LOCAL_SIZE   Local Size: 6207518 bytes.
2008-07-18 09:39:23,540 INFO dtlO0RXktlo  REMOTE_SIZE  Remote Size: 6207518 bytes.
2008-07-18 09:39:23,541 INFO dtlO0RXktlo  REFRESH_HIT  Cached package was uptodate.
2008-07-18 09:39:23,542 INFO dtlO0RXktlo  CACHE_SERVE  Package was served from cache.
2008-07-18 09:42:14,938 INFO -----------  URL_HIT      Request for http://youtube.com/get_video?video_id=dtlO0RXktlo&t=OEgsToPDskLA9MveHN0S2uj1lYD0toID
2008-07-18 09:42:14,939 INFO dtlO0RXktlo  CACHE_HIT    Requested package was found in cache.
2008-07-18 09:42:16,814 INFO dtlO0RXktlo  LOCAL_SIZE   Local Size: 6207518 bytes.
2008-07-18 09:42:16,816 INFO dtlO0RXktlo  REMOTE_SIZE  Remote Size: 6207518 bytes.
2008-07-18 09:42:16,817 INFO dtlO0RXktlo  REFRESH_HIT  Cached package was uptodate.
2008-07-18 09:42:16,818 INFO dtlO0RXktlo  CACHE_SERVE  Package was served from cache.


Screenshot dari iceweasel:


Printer Friendly Page Send this Story to a Friend
Komen ini dimiliki oleh pengirim. Kami tidak bertanggungjawab dengan isi kandungannya.
Pengirim Thread