flagbug / YoutubeExtractor

A .NET library, that allows to download videos from YouTube and/or extract their audio track (currently only for flash videos).
816 stars 374 forks source link

DecipherWithVersion not working on this #242

Open RealManOfFewWords opened 7 years ago

RealManOfFewWords commented 7 years ago

https://www.youtube.com/watch?v=_0a4GEGZCwE

with flagbug branch i got 8 urls, 4 times twice itag:22,18,36,17

with mysteryx93 branch i got only 404 (.js decipher), i used only Decipherer.cs and needed parts of VideoInfo.cs

Tested it with and without this needed Bugfix from flagbug branch.

//Find "C" in this: var A = B.sig||C (B.s) //string functNamePattern = @"\.sig\s*\|\|([a-zA-Z0-9\$]+)\("; //Regex Formed To Find Word or DollarSign string functNamePattern = @"\""signature"",\s?([a-zA-Z0-9\$]+)\("; //Regex Formed To Find Word or DollarSign

The expected result should be 6 Urls including iTag 140, can some1 confirm this behavior?

Tyrrrz commented 7 years ago

Try YoutubeExplode. Itag 140 is the audio only stream.

2017-03-06 20_47_12-youtubeexplode demo

OurIslam commented 7 years ago

@Tyrrrz is it works for 1080p with sound => without ffmpeg or old school

Tyrrrz commented 7 years ago

@developerss Youtube only returns mixed streams of up to 720p quality, higher ones are video-only that you have to mix yourself

OurIslam commented 7 years ago

@Tyrrrz ur project is great . i took sts mix in video_info Gets nice result . i use that context in my extractor project . Your project code arrangement so cool and proper,

toolboc commented 7 years ago

@RealManOfFewWords , I was able to verify your issue.

That said, the updated Decipherer in #245 works fine with the link you provided. This Decipherer is based on https://github.com/gantt/downloadyoutube which was one of the very first MP4 download scripts that took on encrypted video signatures. It is also one of the fastest to update during breaking changes. If we shift to the strategy employed by @gantt , we can benefit from these properties if/when things break again.

OurIslam commented 7 years ago

@RealManOfFewWords i was done that long time ago just old sig to new signeture in functNamePattern . very simple