Re: [squid-users] anyone knows some info about youtube "range" parameter?

From: johan firdianto <johanfirdi_at_gmail.com>
Date: Thu, 26 Apr 2012 15:15:33 +0700

This range behaviour related with error occured in youtube flash player ?
i'm using url rewrite if any range parameter in uri videos, i stripp off.
i can save the whole file of video to directory, by parsing store.log
and retrieve the same video using curl/wget.
The problem, when the same video is requested, and my rewrite script
issues 302 to the file that directory located (under web directory
using nginx).
error occured message appears in flash player.
I refresh many times, still error occured, unless i choose different
quality (example: 480p or 240p).
any suggest ?

On Thu, Apr 26, 2012 at 2:41 PM, Christian Loth
<c.loth_at_phase2-networks.com> wrote:
> Hi,
>
> On Thursday 26 April 2012 03:44:58 Eliezer Croitoru wrote:
>> as i already answered a detailed answer to Ghassan.
>> i think that caching the chunks if possible is pretty good thing.
>> i tried it with nginx but havnt got the option to try it with
>> store_url_rewrite.
>
> To maybe save you some work, here's how I did it. First of all, I use nginx as
> a cache-peer - so no URL rewriting script. Excerpt of my squid.conf:
>
>
> acl youtube_videos url_regex -i ^http://[^/]+(\.youtube\.com|\.googlevideo\.com|\.video\.google\.com)/(videoplayback|get_video|videodownload)\?
> acl range_request req_header Range .
> acl begin_param url_regex -i [?&]begin=
> acl id_param url_regex -i [?&]id=
> acl itag_param url_regex -i [?&]itag=
> acl sver3_param url_regex -i [?&]sver=3
> cache_peer 127.0.0.1 parent 8081 0 proxy-only no-query connect-timeout=5 no-digest
> cache_peer_access 127.0.0.1 allow youtube_videos id_param itag_param sver3_param !begin_param !range_request
> cache_peer_access 127.0.0.1 deny all
>
> Small note: the range request in this configuration that is denied is the
> HTTP-Range-Header, not the range URL parameter! Nginx is of course
> running on port 8081 on the same server.
>
> The important configuration directive in nginx is as follows:
>
> server {
>        listen       127.0.0.1:8081;
>
>        location / {
>                root   /var/cache/proxy/nginx/files;
>                try_files "/id=$arg_id.itag=$arg_itag.range=$arg_range.algo=$arg_algorithm" @proxy_youtube;
>        }
>
>        location @proxy_youtube {
>                resolver 134.99.128.2;
>                proxy_pass http://$host$request_uri;
>                proxy_temp_path "/var/cache/proxy/nginx/tmp";
>                proxy_ignore_client_abort off;
>                proxy_store "/var/cache/proxy/nginx/files/id=$arg_id.itag=$arg_itag.range=$arg_range.algo=$arg_algorithm";
>                proxy_set_header X-YouTube-Cache "c.loth_at_phase2-networks.com";
>                proxy_set_header Accept "video/*";
>                proxy_set_header User-Agent "YouTube Cache (nginx)";
>                proxy_set_header Accept-Encoding "";
>                proxy_set_header Accept-Language "";
>                proxy_set_header Accept-Charset "";
>                proxy_set_header Cache-Control "";
>        }
> }
>
> This way, the setup works. Perhaps anyone of you even has a piece of advice for
> improving it? E.g. I'm still looking for a way to log nginx proxy_store hits and
> misses...?
>
> Best regards,
> - Christian Loth
>
Received on Thu Apr 26 2012 - 12:26:58 MDT

This archive was generated by hypermail 2.2.0 : Thu Apr 26 2012 - 12:00:05 MDT