views:

863

answers:

3

I am working on an application for Windows Mobile 6 (or maybe 5) that plays YouTube videos. Well, it should play YouTube videos (and control/query the player about status changes, current frame/time, etc.)

After scouring the web for quite some time now (and a few trials), I still couldn't find a way to do this. The options I know of are:

  • Use the YouTube player, embedded in HTML, controllable via JavaScript. However, I couldn't watch YT videos from IE Mobile, to begin with -- I get an error message saying something along the lines of "you need a browser with Flash Player 8 and JavaScript enabled".

  • Host a Media Player control, but WMP refuses to play YT videos, including the Mobile format.

  • Use DirectShow. I'm still looking into this one (I've never worked with COM, let alone DirectShow, before), but I am yet to find a solution that supports YouTube's format(s)

I would rather write this application in C#, but C++ works, too.

Help me, O Wise Sages of StackOverflow!

+1  A: 

The CorePlayer includes a plugin for IE mobile that allow to play Youtube videos. Another option is TCPMP which includes a plugin to play FLV videos on windows mobile, this is opensouce.

Ismael
A: 

You might be able to use the New YouTube App for Windows Mobile that Google created either directly or indirectly.

New YouTube App for Windows Mobile

Watching Video on Windows Mobile

CJCraft.com
+3  A: 

You can also grab YouTube videos as MP4, hopefully that expands your player options. You can look into DirectShow CF for playback functionality, or host some other player in your app that supports MP4 or FLV.

Trying to play it back through IE mobile won't work, as the version necessary of the Flash plug-in with video playback support isn't available (last time I checked).

To get the MP4 file make a request to this URL:

"http://www.youtube.com/get_video?video_id=" + videoID + "&t=" + token + "&fmt=18"

To get the FLV use this:

"http://www.youtube.com/get_video?video_id=" + videoID + "&t=" + token

To get the Token call this:

"http://www.youtube.com/api2_rest?method=youtube.videos.get_video_token&video_id=" + videoID

I wrote an app that would grab a playlist of YouTube videos and sync them up with my PocketPC, I used TCPMP with the Flash add-on to playback the video (externally from my app). Although MP4 also worked on the PPC, I stuck to FLVs because at the time some videos on YouTube were not available as MP4. I wouldn't be concerned about this now.

Sadly my PPC broke, now I'm doing something similar on my iPhone but I had to switch completely to the MP4 format. VLC's FLV playback on the iPhone was too jerky for me.

H. Abraham Chavez