uteroot / gappproxy

Automatically exported from code.google.com/p/gappproxy
GNU General Public License v3.0
0 stars 0 forks source link

Processing URL Fragment Identifier #132

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Hi! One of my friends once reported that when browsing Youtube, sometimes the 
video stopped in the middle and would not continue downloading new segments.

I checked the fetch.py code and found that the fragment identifier in request 
url is omitted (intentionally?) when generating new url path. Here is the code:

# check path
(scm, netloc, path, params, query, _) = urlparse.urlparse(orig_path)
if (scm.lower() != "http" and scm.lower() != "https") or not netloc:
self.sendErrorPage(590, "Invalid local proxy, Unsupported Scheme.")
return
# create new path
new_path = urlparse.urlunparse((scm, netloc, path, params, query, ""))

But the Youtube happens to use fragment identifier to mark data segments in 
video. Quote from Wikipedia:

"... for example, Google Video understands permalinks in the format of 
#01h25m30s to start playing at the specified position,[2] and YouTube uses 
similar code such as #t=3m25s."

So I guess my friend's problem is caused by mishandling the fragment 
identifier. I just wondering why it is omitted in 'new_path'.

I'm new to GAPP. Hope this info helps.:)

Original issue reported on code.google.com by WentaoSh...@gmail.com on 23 Mar 2011 at 3:15