Skip to content

Instantly share code, notes, and snippets.

@JigarM
Forked from 19h/TiYoutube.js
Created November 27, 2012 06:59
Show Gist options
  • Save JigarM/4152829 to your computer and use it in GitHub Desktop.
Save JigarM/4152829 to your computer and use it in GitHub Desktop.
Titanium Mobile SDK iPhone / Android: Extract Youtube Video URL / URI from video-id / identification / name and play mp4 file. (Workaround for the recent change of security in Youtube)
Titanium.App.addEventListener("playvideo", function (e) {
win11 = Titanium.UI.createWindow({
orientationModes: [Ti.UI.LANDSCAPE_LEFT, Ti.UI.LANDSCAPE_RIGHT],
title: "Video",
zIndex: 222222
});
var activeMovie = Titanium.Media.createVideoPlayer({
fullscreen: !0,
autoplay: !0,
backgroundColor: '#111',
mediaControlStyle: Titanium.Media.VIDEO_CONTROL_DEFAULT,
scalingMode: Titanium.Media.VIDEO_SCALING_ASPECT_FIT
});
activeMovie.url = e.url;
win11.add(activeMovie);
activeMovie.addEventListener('complete', function (e) {
e.entering == 0 && win11.close(), setTimeout(function () {
Titanium.App.fireEvent("scrollfix");
}, 100);
});
activeMovie.addEventListener("fullscreen", function (e) {
e.entering == 0 && win11.close(), setTimeout(function () {
Titanium.App.fireEvent("scrollfix");
}, 100);
});
win11.open({
fullscreen: !0
});
activeMovie.play();
});
vdrld = function (a, b) { // We do not get the video-id nor do we get any url; that is, we extract the ID from the image-url.
vdldr = Ti.Network.createHTTPClient();
vdldr.onload = function () {
x = decodeURIComponent(decodeURIComponent(decodeURIComponent(decodeURIComponent(this.responseText.substring(4, this.responseText.length)))));
y = JSON.parse(x).content.video["fmt_stream_map"][0].url;
return b(y);
};
vdldr.setRequestHeader("Referer", "http://www.youtube.com/watch?v=" + a);
vdldr.setRequestHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/536.26.14 (KHTML, like Gecko) Version/6.0.1 Safari/536.26.14");
vdldr.open("GET", "http://m.youtube.com/watch?ajax=1&feature=related&layout=mobile&tsp=1&&v=" + a);
vdldr.send()
};
setTimeout(function(){
vdrld("FGAyjfwK-wI", function () {
return Titanium.App.fireEvent("playvideo", {url: arguments[0]});
});
}, 5000);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment