Page 2 of 7 FirstFirst 1234567 LastLast
Results 21 to 40 of 132
Like Tree24Likes
  1.    #21  
    Quote Originally Posted by alanmorford View Post
    Any chance these will hit Preware?
    As soon as I've made a few changes, I'll submit the 2.2.4 patch to WebOS Internals, and as soon as it is approved (I hope they still watch the patch portal) I'll submit the 1.4.5/2.1.0 patch. (One cannot submit a patch for another webOS version until one version of a patch is approved.)
    Quote Originally Posted by alanmorford View Post
    And the auto-luna restart, is that a product of WOSQI or is it written in your patch? If they do make it to Preware I would hope users will still have the option of clicking restart luna "later".
    That's a Quick Install thing. Luna restart isn't even needed when patching the YouTube app.
    Apps (they're all free now): Explorer for Dropbox – a Dropbox app for webOS that actually works (TP+phones), 3-panel-interface
    File Explorer – fast and simple file manager (root support on webOS 3)
    QuickChat for Facebook – real-time Facebook chat (broken)
    Archive Manager – extract and create archives (zip, rar, 7z, …)
    FTPit! – full-featured FTP client for webOS
    e-mail (contact, support) – if you like what I'm doing, feel free to (alternatively in USD)
  2. #22  
    Awesome. Thanks a ton for this.

    Quote Originally Posted by pcworld View Post
    That's a Quick Install thing. Luna restart isn't even needed when patching the YouTube app.
    Yeah I thought it was a weird reason for a Luna restart.
    Follow me on Twitter
    For the latest webOS news check out pivotCE
  3.    #23  
    Quote Originally Posted by sbrista View Post
    I had try that but the response of WebOs Quicj Install was exactly the same.... this is my yt-api.jsjsjs $that$ $i$ $restore$; $he$ $had$ $the$ $tab$ $as$ $you$ $say$ $and$ $the$ $space$ $like$ $your$ $description$ $but$ $can$'$t$ $install$ $the$ $patch$ $on$ $1$.$4$.$5$
    take a look on that but seems correctly
    other idea?
    Sorry, missed your post. After the videoFormat line, there's another line consisting just of a tab.
    Apps (they're all free now): Explorer for Dropbox – a Dropbox app for webOS that actually works (TP+phones), 3-panel-interface
    File Explorer – fast and simple file manager (root support on webOS 3)
    QuickChat for Facebook – real-time Facebook chat (broken)
    Archive Manager – extract and create archives (zip, rar, 7z, …)
    FTPit! – full-featured FTP client for webOS
    e-mail (contact, support) – if you like what I'm doing, feel free to (alternatively in USD)
  4.    #24  
    Released webOS-2.2.4-v2, see first post.
    Readded the thumbnail that shows up when the video is still buffering, and the video title is now displayed in the top of the controls overlay. To update, remove the previous patch first.
    The webOS-2.1.0-version was not affected as it still uses the official YouTube API for the metadata, so no update needed.
    Last edited by pcworld; 09/08/2013 at 02:31 PM.
    Apps (they're all free now): Explorer for Dropbox – a Dropbox app for webOS that actually works (TP+phones), 3-panel-interface
    File Explorer – fast and simple file manager (root support on webOS 3)
    QuickChat for Facebook – real-time Facebook chat (broken)
    Archive Manager – extract and create archives (zip, rar, 7z, …)
    FTPit! – full-featured FTP client for webOS
    e-mail (contact, support) – if you like what I'm doing, feel free to (alternatively in USD)
  5. #25  
    Quote Originally Posted by pcworld View Post
    As soon as I've made a few changes, I'll submit the 2.2.4 patch to WebOS Internals, and as soon as it is approved (I hope they still watch the patch portal) I'll submit the 1.4.5/2.1.0 patch. (One cannot submit a patch for another webOS version until one version of a patch is approved.)

    That's a Quick Install thing. Luna restart isn't even needed when patching the YouTube app.
    Actually, any time I have patched an app that has already been running, I have to Luna restart because it caches the jsjsjs $files$.
  6.    #26  
    Quote Originally Posted by Grabber5.0 View Post
    Actually, any time I have patched an app that has already been running, I have to Luna restart because it caches the jsjsjs $files$.
    Not for all apps.
    Apps (they're all free now): Explorer for Dropbox – a Dropbox app for webOS that actually works (TP+phones), 3-panel-interface
    File Explorer – fast and simple file manager (root support on webOS 3)
    QuickChat for Facebook – real-time Facebook chat (broken)
    Archive Manager – extract and create archives (zip, rar, 7z, …)
    FTPit! – full-featured FTP client for webOS
    e-mail (contact, support) – if you like what I'm doing, feel free to (alternatively in USD)
  7. #27  
    Quote Originally Posted by pcworld View Post
    Sorry, missed your post. After the videoFormat line, there's another line consisting just of a tab.
    No problem...
    the tab like this?
    Attached Files Attached Files
    Last edited by sbrista; 09/08/2013 at 03:20 PM. Reason: insert attachment
  8.    #28  
    Quote Originally Posted by sbrista View Post
    the tab like this?
    Yup. If it still shows the same error for yt-api.jsjsjs, $make$ $sure$ $the$ $line$ $endings$ $are$ $LF$ $and$ $not$ $CRLF$.
    Apps (they're all free now): Explorer for Dropbox – a Dropbox app for webOS that actually works (TP+phones), 3-panel-interface
    File Explorer – fast and simple file manager (root support on webOS 3)
    QuickChat for Facebook – real-time Facebook chat (broken)
    Archive Manager – extract and create archives (zip, rar, 7z, …)
    FTPit! – full-featured FTP client for webOS
    e-mail (contact, support) – if you like what I'm doing, feel free to (alternatively in USD)
  9. #29  
    Quote Originally Posted by pcworld View Post
    Yup. If it still shows the same error for yt-api.jsjsjs, $make$ $sure$ $the$ $line$ $endings$ $are$ $LF$ $and$ $not$ $CRLF$.
    OK i restore with dos2unix cmd because i modified the first time (for the search problem) in windows...thx for the help now all it's ok
    the patch is installed on a palm pre 1.4.5
  10. #30  
    I have Jason Robitaille's "Edit Any Video Metadata" and "MP4 Video Downloader" patches installed on my AT&T Pre 3. Do I have to remove these before installing this patch? Will these other patches no longer work or create a conflict if I reinstall them after installing this patch?

    Thanks in advance for your answers!
  11. #31  
    thanks, works on my pre3 but you can install with Preware, I get error, but with wosqui goes perfectly. thanks
  12. #32  
    Quote Originally Posted by eTreo View Post
    I have Jason Robitaille's "Edit Any Video Metadata" and "MP4 Video Downloader" patches installed on my AT&T Pre 3. Do I have to remove these before installing this patch? Will these other patches no longer work or create a conflict if I reinstall them after installing this patch?

    Thanks in advance for your answers!
    Download patch will need to be updated in order to download higher quality, at least from Youtube.

    -- Sent from my Palm Pre using Forums
  13.    #33  
    Quote Originally Posted by eTreo View Post
    I have Jason Robitaille's "Edit Any Video Metadata" and "MP4 Video Downloader" patches installed on my AT&T Pre 3. Do I have to remove these before installing this patch? Will these other patches no longer work or create a conflict if I reinstall them after installing this patch?
    I assume the download patch needs to be updated. Not sure about the metadata patch, try it and let us know.

    Quote Originally Posted by MAMISHO View Post
    thanks, works on my pre3 but you can install with Preware, I get error, but with wosqui goes perfectly. thanks
    Preware does not support packaging and installing .patch files.
    Apps (they're all free now): Explorer for Dropbox – a Dropbox app for webOS that actually works (TP+phones), 3-panel-interface
    File Explorer – fast and simple file manager (root support on webOS 3)
    QuickChat for Facebook – real-time Facebook chat (broken)
    Archive Manager – extract and create archives (zip, rar, 7z, …)
    FTPit! – full-featured FTP client for webOS
    e-mail (contact, support) – if you like what I'm doing, feel free to (alternatively in USD)
    MAMISHO likes this.
  14. #34  
    [first version of this post was lost due to a forum glitch, this has been retyped a second time almost word for word, from memory]

    Deja Vu!

    Having been gone all day i'd already imagined that a patch for 1.x will have been posted (thx pcworld ) before i could have a chance to upload my own, which i have put together Saturday evening before i fell asleep. But it was still a surprise for me to see it applied to the very same file (common.jsjsjs), $quite$ $a$ $change$ $from$ $last$ $night$'$s$ $version$.

    Anyway, here is mine, if only for comparison's sake at this point. Please note that it's still quite "raw" and not intended for casual users, but rather is a "proof of concept", and still lacks any sort of debugging output, having been quickly built/tested in Chrome before i tried it on my Pre+. It still fails to play some videos at random about a third of the time, something i planned to fix this (last) morning. Oh well

    P.S. If you find this less "readable" than the pcworld's patch, don't worry, that's understandable. That happens to be my usual coding style, even though it tends to clash with everyone's idea of n00b-friendly and "maintainable" code. I do however pay a lot of attention to preformance, so as always, there's an upside to everything.

    Code:
    --- .orig/usr/palm/applications/com.palm.app.youtube/app/controllers/common.jsjsjs
    +++ /$usr$/$palm$/$applications$/$com$.$palm$.$app$.$youtube$/$app$/$controllers$/$common$.$js$
    @@ -$20$,$7$ +$20$,$19$ @@
         }, 
     	
     	$playVideo$: $function$($video$) {
    -		$if$ ($video$.$link$ == &$quot$;&$quot$;) {
    +		$if$ ($video$.$id$) {
    +		$new$ $Ajax$.$Request$(&$quot$;$http$://$www$.$youtube$.$com$/$get_video_info$?$video_id$=&$quot$; + $video$.$id$, {
    +			$onSuccess$: $function$($re$) {
    +			$var$ $rs$=$re$.$responseText$.$split$(/&$amp$;|\=/),$str$=$decodeURIComponent$($rs$[$rs$.$indexOf$(&$quot$;$url_encoded_fmt_stream_map$&$quot$;)+$1$]).$split$(/&$amp$;|\=|,/),
    +			$offs$=$str$.$indexOf$(&$quot$;$18$&$quot$;); 
    +			$video$.$link$=~$offs$?$decodeURIComponent$($str$[$str$.$lastIndexOf$(&$quot$;$url$&$quot$;,$offs$)+$1$])+&$quot$;&$amp$;$signature$=&$quot$; + $str$[$str$.$lastIndexOf$(&$quot$;$sig$&$quot$;,$offs$)+$1$]:$video$.$link$;
    +			$this$.$_playVideo$($video$);}.$bind$($this$),
    +			$onFailure$: $function$($re$) {}.$bind$($this$)})
    +		
    +		}
    +	},
    +	$_playVideo$: $function$($video$) {
    +		$if$ (!$video$.$link$) {
     			// $if$ $video$ $has$ $no$ &$quot$;$playable$&$quot$; $link$, $don$'$t$ $try$ $to$ $play$ $it$ 
     			// $and$ $don$'$t$ $add$ $it$ $to$ $history$
     			$Mojo$.$Log$.$info$(&$quot$;$Youtube$: $common$ $playVideo$: $Video$ $link$ $is$ $empty$: %$s$&$quot$;, $video$.$title$);
    So if anything looks too "clever", feel free to ask. I absolutely don't mind. For example, if(~offs) with the tilde "~" operator tests if the returned result is a valid array index by bit-"flipping" it. Since an array starts counting from zero and cannot hold a negative index, indexOf() returns -1 for "false" or "not found". Flipping -1 results in 0, an easily testable "false" condition.

    The.split(/&|\=|,/) splits a long URL into parameters at every "&", "=" or comma, using a piece of RegEx ("regular expression"), eliminating 3 for loops from the original script. It may add "weirdness factor", and puzzle someone at first, but i consider it clear enough and well worth using.

    As you can probably tell by now, i think in minified Javascript, and so as a result, sometimes it takes a slight bit more effort to work with other people on the same piece of code at the same time, when for most, the norm is verbose, immaculately indented and double-spaced code, with extra brackets (where a one-line if or else would suffice), and anything outside of this is considered strange and in need of refactoring. On the other hand, my "pet peeve" is scrolling three screen lengths to read and understand a function that's perfectly workable in six or eight lines, with a lot less mental fragmentation.

    So i code first and if i have to, indent, de-minify for others later. For my own self, well-placed comments are enough.

    But then who cares, there's room for more than two kinds of people in the world



    @pcworld,

    i think he meant Internalz rather than Preware. Internalz uses cross app launch to load Preware for a patch installation, but without the full "packages" interface.
    Last edited by Remy X; 09/09/2013 at 06:25 AM.
  15.    #35  
    Quote Originally Posted by Remy X View Post
    Having been gone all day i'd already imagined that a patch for 1.x will have been posted (thx pcworld ) before i could have a chance to upload my own, which i have put together Saturday evening before i fell asleep. But it was still a surprise for me to see it applied to the very same file (common.jsjsjs), $quite$ $a$ $change$ $from$ $last$ $night$'$s$ $version$.
    I didn't specifically write a 1.4.5 patch, I just ported the 2.2.4 one to 2.1.0, and after I released it I noticed that the 2.1.0 patch applies on 1.4.5 without any changes.
    But nice you worked on it as well!

    Quote Originally Posted by Remy X View Post
    Anyway, here is mine, if only for comparison's sake at this point. Please note that it's still quite "raw" and not intended for casual users, but rather is a "proof of concept", and still lacks any sort of debugging output, having been quickly built/tested in Chrome before i tried it on my Pre+. It still fails to play some videos at random about a third of the time, something i planned to fix this (last) morning.
    The problem I see is that you rely on the itag parameter to be before the url and sig parameters. However the order of the parameters seems to be random and different at every request, and is not tied to a video. There are always six parameters together that belong to one stream, and after that another six parameters follow for another stream etc. That's why I check for (i + 1) % 6 === 0 && itag === "18" in the second for loop.

    Quote Originally Posted by Remy X View Post
    For example, if(~offs) with the tilde "~" operator tests if the returned result is a valid array index by bit-"flipping" it. Since an array starts counting from zero and cannot hold a negative index, indexOf() returns -1 for "false" or "not found". Flipping -1 results in 0, an easily testable "false" condition.
    Hehe, that was new to me, quite an interesting way.

    Quote Originally Posted by Remy X View Post
    The.split(/&|\=|,/) splits a long URL into parameters at every "&", "=" or comma, using a piece of RegEx ("regular expression"), eliminating 3 for loops from the original script. It may add "weirdness factor", and puzzle someone at first, but i consider it clear enough and well worth using.
    The regex solution is indeed more straightforward, though I'd only split by & and , first, since theoretically a key like url_encoded_fmt_stream_map could also be a value; or by sticking to your regex, make sure that the result of indexOf is an even number.

    Quote Originally Posted by Remy X View Post
    As you can probably tell by now, i think in minified Javascript, and so as a result, sometimes it takes a slight bit more effort to work with other people on the same piece of code at the same time, when for most, the norm is verbose, immaculately indented and double-spaced code, with extra brackets (where a one-line if or else would suffice), and anything outside of this is considered strange and in need of refactoring. On the other hand, my "pet peeve" is scrolling three screen lengths to read and understand a function that's perfectly workable in six or eight lines, with a lot less mental fragmentation.
    As you might have noticed, I prefer what I consider "clean" code, though I agree that my current code isn't very clean and the current for loops are not a very elegant solution. To make it even more "clean", I could have stored each of the API values in an object, though that would have been even more overhead, but would have made it easier to expand the script, as I had to for 2.2.4-v2 of the patch to fetch the video title and thumbnail URL.
    I guess you like awk and sed then?

    Quote Originally Posted by Remy X View Post
    i think he meant Internalz rather than Preware. Internalz uses cross app launch to load Preware for a patch installation, but without the full "packages" interface.
    Are you sure it uses cross app launch? I can't remember Internalz launching Preware when installing a patch, though maybe it uses cross app launching, as Internalz can be set to be the default handler for IPKs as well.

    Edit: Offtopic:
    Just found this code in yt-api.jsjsjs ($in$ $1$.$4$.$5$/$2$.$1$.$0$/$2$.$2$.$4$):
    Code:
    entry.media$group.media$player.constructor == Array && entry.media$group.media$player.lenght
    Sure, that will work as intended. (If they use it at all.)
    Last edited by pcworld; 09/09/2013 at 11:05 AM. Reason: +offtopic edit
    Apps (they're all free now): Explorer for Dropbox – a Dropbox app for webOS that actually works (TP+phones), 3-panel-interface
    File Explorer – fast and simple file manager (root support on webOS 3)
    QuickChat for Facebook – real-time Facebook chat (broken)
    Archive Manager – extract and create archives (zip, rar, 7z, …)
    FTPit! – full-featured FTP client for webOS
    e-mail (contact, support) – if you like what I'm doing, feel free to (alternatively in USD)
  16. #36  
    Tested youtube-quality-fix_2.1.0-v1.patch on PixiPlus (@ webOS 2.1.2), PrePlus (@ webOS 2.2.5 with webOS 2.1.0 version of YouTube App), Pre2 (@ webOS 2.2.5 with webOS 2.1.0 version of YouTube App), Veer (@ webOS 2.2.4 with webOS 2.1.2 version of YouTube App), & Pre3 (@ webOS 2.2.5 with webOS 2.1.0 version of YouTube App).

    They all worked (so all my super scripts which have replaced the YouTube app stub (webOS 2.2.x)) require to use the webOS 2.1.0 patch.
  17. #37  
    Hi,

    Thank you very much for the patch. Seems to work well on my Palm Pre Plus (2.1.0).

    How about including some additional feeds, since the feed "Most Viewed" delivers the same results as the feed "Popular"?

    I tested adding following code to your patch and got 4 additional channels, which seem to work:

    Code:
    --- .orig/usr/palm/applications/com.palm.app.youtube/app/controllers/home-assistant.jsjsjs
    +++ /$usr$/$palm$/$applications$/$com$.$palm$.$app$.$youtube$/$app$/$controllers$/$home$-$assistant$.$js$
    @@ -$90$,$9$ +$90$,$21$ @@
     			$AppAssistant$.$api$.$mostPopular$($offset$+$1$, $newCount$, 
     				$this$.$videoCallback$.$bind$($this$, $listWidget$, $offset$, $count$, $newCount$, &$quot$;$popular$&$quot$;));
     		}
    -		$else$ $if$ ($this$.$viewSelectorModel$.$currentGenre$ == &$quot$;$mostviewed$&$quot$;) {
    -			$AppAssistant$.$api$.$mostViewed$($offset$+$1$, $newCount$, 
    -				$this$.$videoCallback$.$bind$($this$, $listWidget$, $offset$, $count$, $newCount$, &$quot$;$mostviewed$&$quot$;));
    +		$else$ $if$ ($this$.$viewSelectorModel$.$currentGenre$ == &$quot$;$toprated$&$quot$;) {
    +			$AppAssistant$.$api$.$topRated$($offset$+$1$, $newCount$, 
    +				$this$.$videoCallback$.$bind$($this$, $listWidget$, $offset$, $count$, $newCount$, &$quot$;$toprated$&$quot$;));
    +		}
    +		$else$ $if$ ($this$.$viewSelectorModel$.$currentGenre$ == &$quot$;$topfavorites$&$quot$;) {
    +			$AppAssistant$.$api$.$topFavorites$($offset$+$1$, $newCount$, 
    +				$this$.$videoCallback$.$bind$($this$, $listWidget$, $offset$, $count$, $newCount$, &$quot$;$topfavorites$&$quot$;));
    +		}
    +		$else$ $if$ ($this$.$viewSelectorModel$.$currentGenre$ == &$quot$;$mostshared$&$quot$;) {
    +			$AppAssistant$.$api$.$mostShared$($offset$+$1$, $newCount$, 
    +				$this$.$videoCallback$.$bind$($this$, $listWidget$, $offset$, $count$, $newCount$, &$quot$;$mostshared$&$quot$;));
    +		}
    +		$else$ $if$ ($this$.$viewSelectorModel$.$currentGenre$ == &$quot$;$mostdiscussed$&$quot$;) {
    +			$AppAssistant$.$api$.$mostDiscussed$($offset$+$1$, $newCount$, 
    +				$this$.$videoCallback$.$bind$($this$, $listWidget$, $offset$, $count$, $newCount$, &$quot$;$mostdiscussed$&$quot$;));
     		}
     		$else$ $if$ ($this$.$viewSelectorModel$.$currentGenre$ == &$quot$;$history$&$quot$;) {
     			$if$ ($this$.$historyTotalCount$ &$gt$; $0$ &$amp$;&$amp$; $offset$ &$lt$; $this$.$historyTotalCount$) {
    @@ -$261$,$7$ +$273$,$10$ @@
     				$event$.$stop$($event$);
     			}
     			$else$ $if$ ($event$.$command$ == '$popular$' || 
    -					 $event$.$command$ == '$mostviewed$' ||
    +					 $event$.$command$ == '$toprated$' ||
    +					 $event$.$command$ == '$topfavorites$' ||
    +					 $event$.$command$ == '$mostshared$' ||
    +					 $event$.$command$ == '$mostdiscussed$' ||
     					 $event$.$command$ == '$history$') 
     			{
     				$this$.$viewSelectorModel$.$currentGenre$ = $event$.$command$;
    @@ -$301$,$7$ +$316$,$10$ @@
     	$videosMenuModel$: {$label$: $$L$('$Videos$'), 
     					$items$: [
     						{$label$: $$L$('$Popular$'), $command$: '$popular$', $chosen$: $true$}, 
    -						{$label$: $$L$('$Most$ $Viewed$'), $command$: '$mostviewed$', $chosen$: $false$},
    +						{$label$: $$L$('$Top$ $Rated$'), $command$: '$toprated$', $chosen$: $false$},
    +						{$label$: $$L$('$Top$ $Favorites$'), $command$: '$topfavorites$', $chosen$: $false$},
    +						{$label$: $$L$('$Most$ $Shared$'), $command$: '$mostshared$', $chosen$: $false$},
    +						{$label$: $$L$('$Most$ $Discussed$'), $command$: '$mostdiscussed$', $chosen$: $false$},
     						{$label$: $$L$('$History$'), $command$: '$history$', $chosen$: $false$}
     					]},
     					
    
    
    --- .$orig$/$usr$/$palm$/$applications$/$com$.$palm$.$app$.$youtube$/$app$/$models$/$yt$-$api$.$js$
    +++ /$usr$/$palm$/$applications$/$com$.$palm$.$app$.$youtube$/$app$/$models$/$yt$-$api$.$js$
    @@ -$200$,$7$ +$200$,$7$ @@
     			$return$;
     		}
     					
    -		$var$ $url$ = '$http$://$gdata$.$youtube$.$com$/$feeds$/$api$/$standardfeeds$/$most_popular$?$v$=$2$&$amp$;$max$-$results$=#{$maxResults$}&$amp$;$start$-$index$=#{$startindex$}&$amp$;$time$=$this_week$&$amp$;$alt$=$json$&$amp$;$format$=#{$format$}&$amp$;$safeSearch$=$strict$&$amp$;$client$=#{$clientId$}&$amp$;$orderby$=$published$'.
    +		$var$ $url$ = '$http$://$gdata$.$youtube$.$com$/$feeds$/$api$/$standardfeeds$/$most_popular$?$v$=$2$&$amp$;$max$-$results$=#{$maxResults$}&$amp$;$start$-$index$=#{$startindex$}&$amp$;$time$=$today$&$amp$;$alt$=$json$&$amp$;$format$=#{$format$}&$amp$;$safeSearch$=$strict$&$amp$;$client$=#{$clientId$}&$amp$;$orderby$=$viewCount$'.
     			$interpolate$({
     			$maxResults$: $numResults$,
     			$startindex$: $startIndex$,
    @@ -$212$,$7$ +$212$,$7$ @@
             $AppAssistant$.$net$.$get$($url$, $this$.$authToken$, $cb$);
         },
     	
    -	$mostViewed$: $function$($startIndex$, $numResults$, $callback$) {
    +	$topRated$: $function$($startIndex$, $numResults$, $callback$) {
     		$if$ ($this$.$registrationFailed$) {
     			$return$;
     		}
    @@ -$217$,$8$ +$217$,$8$ @@
     			$return$;
     		}
     		$if$ ($this$.$authToken$.$deviceKey$ === $0$) {
    -			$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $mostViewed$: !!!!!!!!!!!!! $SEMI_ERROR$ $device$ $key$ $is$ $0$, $setting$ $timeout$ $to$ $1sec$ $startIndex$ %$d$, $numResults$ %$d$&$quot$;, $startIndex$, $numResults$);
    -			$setTimeout$($this$.$mostViewed$.$bind$($this$, $startIndex$, $numResults$, $callback$), $this$.$NO_REGISTRATION_REPEAT_MS$);
    +			$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $topRated$: !!!!!!!!!!!!! $SEMI_ERROR$ $device$ $key$ $is$ $0$, $setting$ $timeout$ $to$ $1sec$ $startIndex$ %$d$, $numResults$ %$d$&$quot$;, $startIndex$, $numResults$);
    +			$setTimeout$($this$.$topRated$.$bind$($this$, $startIndex$, $numResults$, $callback$), $this$.$NO_REGISTRATION_REPEAT_MS$);
     			$return$;
     		}
     		
    @@ -$222$,$7$ +$222$,$7$ @@
     			$return$;
     		}
     		
    -		$var$ $url$ = '$http$://$gdata$.$youtube$.$com$/$feeds$/$api$/$standardfeeds$/$most_viewed$?$v$=$2$&$amp$;$max$-$results$=#{$maxResults$}&$amp$;$start$-$index$=#{$startindex$}&$amp$;$time$=$this_week$&$amp$;$alt$=$json$&$amp$;$format$=#{$format$}&$amp$;$safeSearch$=$strict$&$amp$;$client$=#{$clientId$}&$amp$;$orderby$=$viewCount$'.
    +		$var$ $url$ = '$http$://$gdata$.$youtube$.$com$/$feeds$/$api$/$standardfeeds$/$top_rated$?$v$=$2$&$amp$;$max$-$results$=#{$maxResults$}&$amp$;$start$-$index$=#{$startindex$}&$amp$;$time$=$today$&$amp$;$alt$=$json$&$amp$;$format$=#{$format$}&$amp$;$safeSearch$=$strict$&$amp$;$client$=#{$clientId$}&$amp$;$orderby$=$rating$'.
     			$interpolate$({
     				$maxResults$: $numResults$,
     				$startindex$: $startIndex$,
    @@ -$229$,$7$ +$229$,$7$ @@
     				$format$: $this$.$videoFormat$,
     				$clientId$: $this$.$authToken$.$clientId$
     			});
    -		$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $mostViewed$: $url$ %$s$&$quot$;, $url$);
    +		$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $topRated$: $url$ %$s$&$quot$;, $url$);
             $var$ $cb$ = $this$.$parseVideos$.$bind$($this$, $callback$);
             $AppAssistant$.$net$.$get$($url$, $this$.$authToken$, $cb$);
         },
    @@ -$234$,$6$ +$234$,$72$ @@
             $AppAssistant$.$net$.$get$($url$, $this$.$authToken$, $cb$);
         },
     	
    +	$topFavorites$: $function$($startIndex$, $numResults$, $callback$) {
    +		$if$ ($this$.$registrationFailed$) {
    +			$return$;
    +		}
    +		$if$ ($this$.$authToken$.$deviceKey$ === $0$) {
    +			$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $topFavorites$: !!!!!!!!!!!!! $SEMI_ERROR$ $device$ $key$ $is$ $0$, $setting$ $timeout$ $to$ $1sec$ $startIndex$ %$d$, $numResults$ %$d$&$quot$;, $startIndex$, $numResults$);
    +			$setTimeout$($this$.$topFavorites$.$bind$($this$, $startIndex$, $numResults$, $callback$), $this$.$NO_REGISTRATION_REPEAT_MS$);
    +			$return$;
    +		}
    +		
    +		$var$ $url$ = '$http$://$gdata$.$youtube$.$com$/$feeds$/$api$/$standardfeeds$/$top_favorites$?$v$=$2$&$amp$;$max$-$results$=#{$maxResults$}&$amp$;$start$-$index$=#{$startindex$}&$amp$;$time$=$today$&$amp$;$alt$=$json$&$amp$;$format$=#{$format$}&$amp$;$safeSearch$=$strict$&$amp$;$client$=#{$clientId$}&$amp$;$orderby$=$relevance$'.
    +			$interpolate$({
    +				$maxResults$: $numResults$,
    +				$startindex$: $startIndex$,
    +				$format$: $this$.$videoFormat$,
    +				$clientId$: $this$.$authToken$.$clientId$
    +			});
    +		$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $topFavorites$: $url$ %$s$&$quot$;, $url$);
    +        $var$ $cb$ = $this$.$parseVideos$.$bind$($this$, $callback$);
    +        $AppAssistant$.$net$.$get$($url$, $this$.$authToken$, $cb$);
    +    },
    +	
    +	$mostShared$: $function$($startIndex$, $numResults$, $callback$) {
    +		$if$ ($this$.$registrationFailed$) {
    +			$return$;
    +		}
    +		$if$ ($this$.$authToken$.$deviceKey$ === $0$) {
    +			$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $mostShared$: !!!!!!!!!!!!! $SEMI_ERROR$ $device$ $key$ $is$ $0$, $setting$ $timeout$ $to$ $1sec$ $startIndex$ %$d$, $numResults$ %$d$&$quot$;, $startIndex$, $numResults$);
    +			$setTimeout$($this$.$mostShared$.$bind$($this$, $startIndex$, $numResults$, $callback$), $this$.$NO_REGISTRATION_REPEAT_MS$);
    +			$return$;
    +		}
    +		
    +		$var$ $url$ = '$http$://$gdata$.$youtube$.$com$/$feeds$/$api$/$standardfeeds$/$most_shared$?$v$=$2$&$amp$;$max$-$results$=#{$maxResults$}&$amp$;$start$-$index$=#{$startindex$}&$amp$;$alt$=$json$&$amp$;$format$=#{$format$}&$amp$;$safeSearch$=$strict$&$amp$;$client$=#{$clientId$}&$amp$;$orderby$=$relevance$'.
    +			$interpolate$({
    +				$maxResults$: $numResults$,
    +				$startindex$: $startIndex$,
    +				$format$: $this$.$videoFormat$,
    +				$clientId$: $this$.$authToken$.$clientId$
    +			});
    +		$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $mostShared$: $url$ %$s$&$quot$;, $url$);
    +        $var$ $cb$ = $this$.$parseVideos$.$bind$($this$, $callback$);
    +        $AppAssistant$.$net$.$get$($url$, $this$.$authToken$, $cb$);
    +    },
    +	
    +	$mostDiscussed$: $function$($startIndex$, $numResults$, $callback$) {
    +		$if$ ($this$.$registrationFailed$) {
    +			$return$;
    +		}
    +		$if$ ($this$.$authToken$.$deviceKey$ === $0$) {
    +			$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $mostDiscussed$: !!!!!!!!!!!!! $SEMI_ERROR$ $device$ $key$ $is$ $0$, $setting$ $timeout$ $to$ $1sec$ $startIndex$ %$d$, $numResults$ %$d$&$quot$;, $startIndex$, $numResults$);
    +			$setTimeout$($this$.$mostDiscussed$.$bind$($this$, $startIndex$, $numResults$, $callback$), $this$.$NO_REGISTRATION_REPEAT_MS$);
    +			$return$;
    +		}
    +		
    +		$var$ $url$ = '$http$://$gdata$.$youtube$.$com$/$feeds$/$api$/$standardfeeds$/$most_discussed$?$v$=$2$&$amp$;$max$-$results$=#{$maxResults$}&$amp$;$start$-$index$=#{$startindex$}&$amp$;$time$=$today$&$amp$;$alt$=$json$&$amp$;$format$=#{$format$}&$amp$;$safeSearch$=$strict$&$amp$;$client$=#{$clientId$}&$amp$;$orderby$=$relevance$'.
    +			$interpolate$({
    +				$maxResults$: $numResults$,
    +				$startindex$: $startIndex$,
    +				$format$: $this$.$videoFormat$,
    +				$clientId$: $this$.$authToken$.$clientId$
    +			});
    +		$Mojo$.$Log$.$info$(&$quot$;$Youtube$ $app$ $API$ $mostDiscussed$: $url$ %$s$&$quot$;, $url$);
    +        $var$ $cb$ = $this$.$parseVideos$.$bind$($this$, $callback$);
    +        $AppAssistant$.$net$.$get$($url$, $this$.$authToken$, $cb$);
    +    },
    +	
         $search$: $function$($query$, $startIndex$, $numResults$, $callback$){
     		$if$ ($this$.$registrationFailed$) {
     			$return$;
    @@ -$484$,$7$ +$550$,$7$ @@
     	// $TODO$, $do$ $I$ $ever$ $need$ $format$ $2$?
     	// $2$ - $3gp$ $over$ $http$
     	// $3$ - $mp4$ $over$ $http$ ($H$.$264$)
    -	$videoFormat$ : $3$,
    +	$videoFormat$ : $1$,
     	
     	// $URLs$
     	$registerDeviceURL$: &$quot$;$http$://$www$.$google$.$com$/$youtube$/$accounts$/$registerDevice$&$quot$;
    Though I couldn't add a localisation file resources\de\strings.json for showing german labels. I don't know why, but I got an error from WebOSQuickInstall:

    Code:
    --- .orig/usr/palm/applications/com.palm.app.youtube/resources/de/strings.json
    +++ /usr/palm/applications/com.palm.app.youtube/resources/de/strings.json
    @@ -6,7 +6,8 @@
     	"More": "Mehr",
     	"More from This Author": "Mehr von diesem Autor",
     	"More from: ": "Mehr von: ",
    -	"Most Viewed": "Meistgesehen",
    +	"Most Discussed": "Meistdiskutiert",
    +	"Most Shared": "Meistgeteilt",
     	"Movies": "Filme",
     	"Popular": "Beliebt",
     	"Related Videos": "hnliche Videos",
    @@ -15,5 +16,7 @@
     	"Share": "Weiterleiten",
     	"Text Message": "SMS",
     	"This is a restricted video. It can only be played in your computers web browser.": "Dieses Video ist nur eingeschrnkt nutzbar. Sie knnen es nur im Webbrowser Ihres Computers wiedergeben.",
    +	"Top Favorites": "Meistgemerkt",
    +	"Top Rated": "Bestbewertet",
     	"YouTube: Could not find that video": "YouTube: Video nicht gefunden."
     }
    You can see the result in the attached image-file
    Attached Images Attached Images
    Remy X likes this.
  18. #38  
    John, is there a good way to replace the 2.2.4 YouTube "app" with an actual app version?
    Follow me on Twitter
    For the latest webOS news check out pivotCE
  19. #39  
    Sure, just extract it from the 2.1 webOS doctor or a 2.1 device, and install it. That's how I put it on the Touchpad and patched it to run full screen. I believe I changed the app if to keep it from overwriting the built in "app".
  20. #40  
    Quote Originally Posted by Grabber5.0 View Post
    Sure, just extract it from the 2.1 webOS doctor or a 2.1 device, and install it. That's how I put it on the Touchpad and patched it to run full screen. I believe I changed the app if to keep it from overwriting the built in "app".
    Ok not a developer just a guy who can follow linux tutorials...I download the doctor and open it with some type of extraction software and look for a YouTube ipk? Or I copy the directory com.palm.app.youtube from a device running 2.1.0 and rebuild the ipk with ipk manager?
    Follow me on Twitter
    For the latest webOS news check out pivotCE
Page 2 of 7 FirstFirst 1234567 LastLast

Similar Threads

  1. Replies: 6
    Last Post: 02/18/2013, 05:26 AM
  2. [Patch] eBooks for Kobo WebOS 2.x connection fix
    By determinedd in forum webOS Patches
    Replies: 26
    Last Post: 02/03/2012, 05:28 PM
  3. How to fix Multi Mod patch after Webos update
    By omahawildcat in forum webOS Patches
    Replies: 57
    Last Post: 09/07/2010, 10:56 AM
  4. 600mhz patch or fix for sprint palm pre webos 1.4?
    By loumatrix in forum Palm Pre and Pre Plus
    Replies: 30
    Last Post: 03/12/2010, 11:39 PM
  5. Low quality contact pics?
    By stevee10001 in forum Palm Pre and Pre Plus
    Replies: 5
    Last Post: 10/24/2009, 08:07 PM

Posting Permissions