Momo707577045 / m3u8-downloader

m3u8 视频在线提取工具
5.97k stars 1.15k forks source link

The resource is empty, please check whether the link is valid #32

Closed yilmazdurmaz closed 3 years ago

yilmazdurmaz commented 3 years ago

Some web sites are using file extension tricks to make tools like yours become useless, with this exact error you used to give. but in reality, files inside an m3u8 are really pointing to an actual .ts or .mp4.

for example, one site I use changes file extensions to *.jpg for this purpose. I myself download such m3u8 files, prefix all file names with hosting directory url, download all fragments with wget and just append them with total commander (windows).

Instead, I would love to be able to use your extension to do the download&concat.

you can code it by yourself or just trust we are trying to get a bunch of video fragments, just not with the exact expected extension, put a .ts or .mp4 to file names, and then concat as usual.

cheers

Momo707577045 commented 3 years ago

Thank you very much for your feedback. If a website is using this method for defense, it proves that it doesn't want to be disturbed. We should reconsider whether our actions have a bad effect.

Momo707577045 commented 3 years ago

But your feedback has made me understand the new defense mechanism, and I have gained more knowledge.

yilmazdurmaz commented 3 years ago

@Momo707577045 in case you consider changes according to this, some sites also use different file endings instead of "*.m3u8". that is surely a good trap for inexperienced coders, and a fair warning for others.

in these cases one needs to check manually in order to be sure of the content. but in most cases if a site uses a file for playing videos, it is most likely to be .m3u8 file and fragments it in are to be .ts file.

by the way, why I opened this topic is how I experience with these sites. They put 720p or 1080p videos to view online, but the host of those videos does throttling and video stops every few seconds to download next part. If I am bored enough and want to watch that video, then do the trick I mentioned above.

yilmazdurmaz commented 3 years ago

one last thing (I hope it wont make you feel offended)

I did make a clone of your extension, changed this line of code just to suit to my need, in a crudest way. in case you decide to implement it later, maybe this gives an idea:

if (item.toLowerCase().indexOf(".ts") > -1 || item.toLowerCase().indexOf(".jpg") > -1) {

wc7086 commented 3 years ago

one last thing (I hope it wont make you feel offended)

I did make a clone of your extension, changed this line of code just to suit to my need, in a crudest way. in case you decide to implement it later, maybe this gives an idea:

if (item.toLowerCase().indexOf(".ts") > -1 || item.toLowerCase().indexOf(".jpg") > -1) {

good job !

Momo707577045 commented 3 years ago

@yilmazdurmaz This is OK. I don't support this function in my program, just because I provide open external services and can't have the tendency of directed cracking. You can do secondary development based on the source code, which is very OK. That's why I don't encrypt the code and try to keep it as simple as possible.