Hi ppl
I took a glance to mytube plugin and the problem of "video not available"
It seems that the issue is present when the signature key is 's' instead of 'sig'
I took a glance at youtube plugin fox Xbmc and at Youtube-DL project and i found that when the signature key is 's' it needs to be decrypted.
So i tried to add the "s" key case and the decrypt function used in those plugins as you can see here
https://github.com/H...ouTubePlayer.py
to implement the 's' key and signature decription i have changed the code in MyTubeService.py in this way
for arg in fmtstring.split('&'): if arg.find('=') >= 0: print arg.split('=') key, value = arg.split('=') if key == 'itag': if len(value) > 3: value = value[:2] fmtid = value elif key == 'url': fmturl = value elif key == 'sig': fmtsig = value elif key == 's': fmtsig = self.decrypt_signature(value) print '[MyTubeMeo] signature: %s' % (value) ..................... def decrypt_signature(self, s): if len(s) == 92: return s[25] + s[3:25] + s[0] + s[26:42] + s[79] + s[43:79] + s[91] + s[80:83] elif len(s) == 90: return s[25] + s[3:25] + s[2] + s[26:40] + s[77] + s[41:77] + s[89] + s[78:81] elif len(s) == 88: return s[48] + s[81:67:-1] + s[82] + s[66:62:-1] + s[85] + s[61:48:-1] + s[67] + s[47:12:-1] + s[3] + s[11:3:-1] + s[2] + s[12] elif len(s) == 87: return s[4:23] + s[86] + s[24:85] elif len(s) == 86: return s[2:63] + s[82] + s[64:82] + s[63] elif len(s) == 85: return s[2:8] + s[0] + s[9:21] + s[65] + s[22:65] + s[84] + s[66:82] + s[21] elif len(s) == 84: return s[83:36:-1] + s[2] + s[35:26:-1] + s[3] + s[25:3:-1] + s[26] elif len(s) == 83: return s[6] + s[3:6] + s[33] + s[7:24] + s[0] + s[25:33] + s[53] + s[34:53] + s[24] + s[54:] elif len(s) == 82: return s[36] + s[79:67:-1] + s[81] + s[66:40:-1] + s[33] + s[39:36:-1] + s[40] + s[35] + s[0] + s[67] + s[32:0:-1] + s[34] elif len(s) == 81: return s[56] + s[79:56:-1] + s[41] + s[55:41:-1] + s[80] + s[40:34:-1] + s[0] + s[33:29:-1] + s[34] + s[28:9:-1] + s[29] + s[8:0:-1] + s[9] elif len(s) == 79: return s[54] + s[77:54:-1] + s[39] + s[53:39:-1] + s[78] + s[38:34:-1] + s[0] + s[33:29:-1] + s[34] + s[28:9:-1] + s[29] + s[8:0:-1] + s[9] else: print "Unable to decrypt signature, key length %d not supported"
Now all the video seems to start, the url seems ok but the play fails.
Playing URL http://r3---sn-nx5cvox-hpa6.c.youtube.com/videoplayback?ipbits=8&cp=U0hWSlJLVl9HT0NONl9KRVpJOlFWdVM0bWpVNGJG&sparams=cp%2Cgcr%2Cid%2Cip%2Cipbits%2Citag%2Cratebypass%2Csource%2Cupn%2Cexpire&gcr=it&ratebypass=yes&id=85309961921ac719&upn=kjhAhxVjYuM&fexp=917000%2C914501%2C901700%2C910207%2C916714%2C916624%2C909546%2C906397%2C929117%2C929121%2C929906%2C929907%2C925720%2C925722%2C925718%2C925714%2C929917%2C929919%2C912521%2C904492%2C904830%2C919373%2C904122%2C932216%2C908534%2C919387%2C936303%2C909549%2C900816%2C936301%2C912711%2C935000&ms=au&key=yt1&source=youtube&mv=m&itag=37&expire=1375208825&ip=80.117.223.123&sver=3&mt=1375185274&signature=66A303CFBE998D201100D65DA994398B877F165A04F57DB902586F51F8C170B0FBEB0CB976D08E5E. evEOF=7 seekable status changed! setSeekState trying to switch to playing- state: 1 No Service found playing service..
Is there anyone that have an idea to fix ?