[Windows Mobile Development and Hacking General] invario:
Hi all,

I've been trying to figure out what the problem with TCPMP and youtube was for a while and finally got it.

For those that don't know, the way PIE works with TCPMP is that PIE creates a video.m3u file inside \PROGRAM FILES\TCPMP which TCPMP then opens. video.m3u contains the URL of the FLV file that you pull off from youtube... (m3u files are simply playlists)

Since youtube changed the format of its URL, it has gotten significantly longer.

TCPMP has a hard limit of 256 bytes (characters) on the URL. So, what happens with the new URL is that it often exceeds the 256 byte limit, and TCPMP will only read it UP TO the 256 byte. Anything after 256 bytes is LOST and that's why you get "could not open URL"

Example:

Youtube video of half life live action thingee:

http://v15.lscache4.googlevideo.com/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag&itag=5&ipbits=0&sver=3&expire=1243450800&key=yt1&signature=0FD79ABE8B1527FBDCCA117F163434544DD5226F.412B317466B85C5F1DEC05B615B47F264F845325&id=ab550f304982a99a

Length = 263, I get the error. Can't play video.

same video, but instead, I edited the video.m3u file and manually resolved the domain name (v15.lscache4.googlevideo.com = 74.125.167.35)

http://74.125.167.35/videoplayback?ip=0.0.0.0&sparams=id%2Cexpire%2Cip%2Cipbits%2Citag&itag=5&ipbits=0&sver=3&expire=1243450800&key=yt1&signature=0FD79ABE8B1527FBDCCA117F163434544DD5226F.412B317466B85C5F1DEC05B615B47F264F845325&id=ab550f304982a99a

Length=248 and the video plays

I've found the solution!!!!!!

For those interested, here is the version that I used:

TCPMP new VS2008 builds for WM6.1 with FLV built in

http://xdaforums.com/showthread.php?t=380387

I took that source, opened it in Visual Studio 2008 (freaking 3GB download from MS!!) and started snooping around.

Modified the following files:

interface/win32/playlst.c -> replaced all values of '256' with '1024'

interface/win32/win_win32.c -> replaced all values of '256' with '1024' (except the one that says 256*1024... on my source, it's line 2598)

common/portab.h -> replace MAXPATH 256 with MAXPATH 1024 (line 260)

The resulting files are now here! -

http://rapidshare.com/files/237840222/tcpmp-0.72rc1-fixed-youtube-05-27-2009-invar.rar

The bad news is this:

- I have no idea how to put stuff into a self install CAB, so the file I uploaded to rapidsdhare is ONLY the three files that were necessary. You MUST install a CAB version of 0.72RC1 from elsewhere (preferably the same version in this thread that was posted.)

- Also, the version of 0.72 RC1 I used does NOT install the PIE videoloader.dll (aka flashvideobundle), so if you completely uninstalled any preexisting version of TCPMP and installed the one posted here, you MUST reinstall flashvideobundle which is not really a problem, just an extra step. Here's a link for it! (google for 'flashvideobundle 1.4.4' if the link dies... there are plenty of sites)

http://handheld.softpedia.com/get/Video/FlashVideoBundle-64991.shtml

Anyway, if someone knows how to package this into a CAB or something, feel free to go ahead and do it and then post it. It appears to be working great so far, and I hope I didn't screw anything up.

Feedback appreciated, and enjoy nice high quality FLV youtube once again!

edit: There is now a nice CAB version available here that has incorporated my changes!

http://forum.ppcgeeks.com/showthread.php?t=59820