Agreed. Please check it in to freya/pagan as well. Thanks, Amy On Wed, Feb 13, 2008 at 9:15 PM, Max Carlson <[EMAIL PROTECTED]> wrote:
> I suggest merging this to freya/pagan. > -- > Regards, > Max Carlson > OpenLaszlo.org > > Author: max > Date: 2008-02-13 17:33:32 -0800 (Wed, 13 Feb 2008) > New Revision: 8021 > > Modified: > openlaszlo/trunk/demos/youtube/youtube.jsp > openlaszlo/trunk/demos/youtube/youtube.lzx > Log: > Change 20080213-maxcarlson-o by [EMAIL PROTECTED] on 2008-02-13 15:13:18 > PST > in /Users/maxcarlson/openlaszlo/trunk > for http://svn.openlaszlo.org/openlaszlo/trunk > > Summary: Fix youtube video loading, for real this time! > > New Features: > > Bugs Fixed: LPP-5424 - YouTube demo is broken, clicking on picture does > not load video > > Technical Reviewer: promanik > QA Reviewer: mkratt > Doc Reviewer: (pending) > > Documentation: > > Release Notes: > > Details: youtube.jsp - Parse out Location header from different URL - > totally bulletproof now. > > youtube.lzx - Proxied loads are no longer supported/required! > > > Tests: Any video will play in youtube.lzx now. > > > > Modified: openlaszlo/trunk/demos/youtube/youtube.jsp > =================================================================== > --- openlaszlo/trunk/demos/youtube/youtube.jsp 2008-02-14 00:40:55 UTC > (rev 8020) > +++ openlaszlo/trunk/demos/youtube/youtube.jsp 2008-02-14 01:33:32 UTC > (rev 8021) > @@ -11,7 +11,7 @@ > <%! > > /* X_LZ_COPYRIGHT_BEGIN > **************************************************** > - * Copyright 2007 Laszlo Systems, Inc. All Rights Reserved. > * > + * Copyright 2007, 2008 Laszlo Systems, Inc. All Rights Reserved. > * > * Use is subject to license terms. > * > * X_LZ_COPYRIGHT_END > ******************************************************/ > > @@ -199,18 +199,22 @@ > Document result) > { > String pageUrl = > - "http://www.YouTube.com/watch?v=<http://www.youtube.com/watch?v=> > "; > - pageUrl += id; > + "http://www.youtube.com/v/" + id; > > - BufferedReader inputFile = null; > + // Based on http://www.jeroenwijering.com/?thread=5484#msg50818 > + // Get Location header and parse strings from that... > + String redirURL = null; > try { > URL u = new URL(pageUrl); > - inputFile = > - new BufferedReader( > - new InputStreamReader( > - u.openStream())); > + HttpURLConnection redir = (java.net.HttpURLConnection > )u.openConnection(); > + redir.setFollowRedirects(false); > + redir.connect(); > + redirURL = redir.getHeaderField("Location"); > + if (redirURL == null) { > + throw new Exception("No Location header found"); > + } > } catch (Exception e) { > - reportError("Could not load url.", result); > + reportError("Could not load url " + redirURL + ": " + > e.toString(), result); > return; > } // try > > @@ -219,57 +223,34 @@ > > String videoId = ""; > String tId = ""; > - while (true) { > - String line = null; > > - try { > - line = inputFile.readLine(); > - } catch (IOException e) { > - line = null; > - } > - > - if (line == null) { > - break; > - } > - > - int start = > - line.indexOf("swfArgs"); > - if (start == -1) { > - continue; > - } else { > - // Extract the video_id from the args line > - Pattern vidpat = Pattern.compile > ("video_id:'[\\w\\d]+'?"); > - Pattern tpat = Pattern.compile("t:'[\\w\\d]+'?"); > - Matcher vidmatcher = vidpat.matcher(line); > - Matcher tmatcher = tpat.matcher(line); > - if ( vidmatcher.find() ) { > - videoId = (line.substring(vidmatcher.start(), > vidmatcher.end())); > - videoId = videoId.substring(10, videoId.length()-1); > - } else { > - reportError("video_id argument not found in HTML > page", result); > - return; > - } > - if ( tmatcher.find() ) { > - tId = (line.substring(tmatcher.start(), tmatcher.end > ())); > - tId = tId.substring(3, tId.length()-1); > - } else { > - reportError("t argument not found in HTML page", > result); > - return; > - } > - } > - > - String url = > - "http://www.youtube.com/get_video?video_id=" + videoId + > "&t=" + tId; > - > - resultEl.setAttribute("id", videoId); > - resultEl.setAttribute("t", tId); > - resultEl.setAttribute("url", url); > - result.setRootElement(resultEl); > - > + // Extract the video_id and t fields from > + Pattern vidpat = Pattern.compile("video_id=[\\w\\d]+'?"); > + Pattern tpat = Pattern.compile("t=[\\w\\d\\-]+'?"); > + Matcher vidmatcher = vidpat.matcher(redirURL); > + Matcher tmatcher = tpat.matcher(redirURL); > + if ( vidmatcher.find() ) { > + videoId = (redirURL.substring(vidmatcher.start(), > vidmatcher.end())); > + videoId = videoId.substring(9, videoId.length()); > + } else { > + reportError("video_id argument not found in HTML page", > result); > return; > } > + if ( tmatcher.find() ) { > + tId = (redirURL.substring(tmatcher.start(), tmatcher.end())); > + tId = tId.substring(2, tId.length()); > + } else { > + reportError("t argument not found in URL", result); > + return; > + } > > - reportError("Could not find SWFObject at url " + pageUrl, > result); > + String url = > + "http://www.youtube.com/get_video?video_id=" + videoId + > "&t=" + tId; > + > + resultEl.setAttribute("id", videoId); > + resultEl.setAttribute("t", tId); > + resultEl.setAttribute("url", url); > + result.setRootElement(resultEl); > } > > > > Modified: openlaszlo/trunk/demos/youtube/youtube.lzx > =================================================================== > --- openlaszlo/trunk/demos/youtube/youtube.lzx 2008-02-14 00:40:55 UTC > (rev 8020) > +++ openlaszlo/trunk/demos/youtube/youtube.lzx 2008-02-14 01:33:32 UTC > (rev 8021) > @@ -1,5 +1,5 @@ > <!-- X_LZ_COPYRIGHT_BEGIN > ************************************************ > -* Copyright 2007 Laszlo Systems, Inc. All Rights Reserved. > * > +* Copyright 2007, 2008 Laszlo Systems, Inc. All Rights Reserved. > * > * Use is subject to license terms. > * > * X_LZ_COPYRIGHT_END ************************************************** > --> > > @@ -7,7 +7,6 @@ > <canvas > width="100%" > height="100%" > - proxied="true" > > > > <include href="av/videoutils.lzx"/> > > > _______________________________________________ > Laszlo-checkins mailing list > [EMAIL PROTECTED] > http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins > >
