Giter Club home page Giter Club logo

hls-downloader's People

Contributors

aaimtt avatar arigon avatar dependabot[bot] avatar jasonw4331 avatar kebkaldanil avatar martin-firth avatar mayfield avatar ndelangen avatar puemos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hls-downloader's Issues

Progress bar

A suggestion for you from a first time user that has used other HLS downloaders. Make the progress bar more visible. Upon initial download, since the progress is 0 or close to 0, users will not know that it is working,will become frustrated, and give you a negative review. I almost did. Upon clicking on the icon again, I saw a small pixel which means nothing. Trying again later, I can see more and realize that it is a circular progress indicator. I suggest you use a number like 1/100 or something for simpletons like myself. Thanks for the extension and I appreciate it being MIT. I hope you find success.

can't save to local disk

after downloading completely, sometimes I can't save the videos to local.
I was downloading many videos at a time

After deleting a download the download page is crashing

Describe the bug
Unable to show the page of Downloads, but the videos are still able to be downloaded and then show the Save page.
I've used this extension for several months and this bug only shows today.

To Reproduce
Unknown

Screenshots
image

Desktop (please complete the following information):

  • OS: Windows 10 Home
  • Browser chrome
  • Version 79.0.3945.117

remove queue

I'm not sure what the intent for the queue is. I would prefer that the download begins right away instead of saving into a queue which I have to click on later. Then, I have to go back and delete item from queue. That seems like more steps than neceassary.

More %NaN-s some possible insights - retry tactics needed

Same "test server" :-)
Start from here for more problematic case (explanation below)
A: https://www7.putlockertv.to/watch/impulse-1.kk7o6/vvxzqm4
This one behaved better "on average" but goes into NaN-s occasionally (explanation below)
B: https://www7.putlockertv.to/watch/impulse-2.720o1

Always go for MyCloud row.

Chrome 78.0.3904.108, updates blocked
Rerelvant extensions:
HLS Downloader 1.7.0
Stream Recorder - 1.2.0
uBlock Origin - 1.24.2
uBlock Origin Extra 2.88

First the "easier case" B

Since I've noticed that you have "list" tooltip with URL for .m3us I tried it and the particular NaN I was seeing looked like 404 - like part of the URL changes in time and "expires" or has something that server s nonce (pseudo-crypto token with a timestamp or a monotonically increasing "integer" (can be in higher base == has letters) that serves as a timestamp).

The most important part was that "recovery" was F5 == retry -- so a bit of retry logic/heuristics/tactics might be helpful.

Also, videos on both A and B are in terrible "shape" on the server - in huge number of cases the player itself trips in the middle of playing or at the very beginning and gives "private message" (This video file cannot be played.(Error Code: 233011)) == timeouts are most probably the factor even for their own player.

Interesting aspect - they don't affect "HLS Downloader" - once it latches on the "good list" (read no NaN-s) it carries on.

On to the A - initially "HLS Downloader" was totally blinded - couldn't see a list for the life of it - F5-s Ctrl-F5-s, new window and copied URL - nada.

Then I clicked "Stream Recorder" (my last ditch savior, albeit terribly slow and annoying - you have to play the whole video in the worst case) and it didn't "see" the list either so I had to let it "restart the page in capture mode" (don't know what it actually does but after that it is able to capture the stream that page's player assembles - except that it breaks easily and in this cafe when the player trips there's no recovery).

BUT - on the page "relaunched in capture mode" by "Stream Recorder" - "HLS Downloader" SAW THE LIST - latched on it and life was good :-)

Meaning - "Stream Recorder" might have some code with good "retry tactics" - the whole "relaunched in capture mode" thing is really just a "stronger" and more controlled retry.

Even more interesting - from that point on, every click for a next video on that page had immediately discoverable and latchable list - no NaN-s, no glitches - bonanza :-)

"HLS Downloader" did lose "list indicator" (little number in blue rectangle) - until I clicked on it. Latched lists were intact but that means that he still got a bit confused when the player got stuck.

npm ERR! write after end

raffaele@raffaele-GL753VD:~/bin/hls-downloader-chrome-extension$ sudo npm install
[ ...........] / postinstall: sill install executeActions
npm ERR! write after end
npm ERR! write after end
npm ERR! write after end

And it continues over and over with this message until I force the code to stop with ctrl+z

Keeping segments separate

Sometimes it may be appreciated to have the possibility to keep TS files separate and download them just in a zip file.

i18n support (Japanese, Chinese)

Is your feature request related to a problem? Please describe.
We have many Japanese and Chinese speaking users but the interface is only in English

Describe the solution you'd like
Develop an i18n that detects the user language and adapting all the labels accordingly

Describe alternatives you've considered
Let the user select the interface language

Additional context
~50% English
~20% Japanese
~20% Chinese

Unwanted Websocket to /socketcluster

Hello

in commit 8d7bee0 in file src/modules/store/index.js you removed the development-server-only part of the websocket connection... this is now causing unwanted connections to my local development server on localhost:8000 for /socketcluster..

Best regards
Alex

Filename disambiguation problem

HLS downloader basically takes the page title and turns it into a filename. There are a lot of pages these days that want to be fancy SPA pages and that means that for N actual streams the title remains constant. A few times the "name conflict" ended up as several streams "materializing" with the actual data from the last or first (forgot which one, not going to go through that anguish again :-)

For a start it needs to disambiguate on it's own, say to append an ordinal.

Then, just at is has a [copy] micro-buttons now it needs a button or a field for [rename] and it needs to "internalize" new name - meaning that the next stream for that page won't have to disambiguate at all.

For a repro and latter trials/test you can use the same link from a prior bug: https://www7.putlockertv.to/watch/impulse-1.kk7o6/vvxzqm4

MyCloud row, take [1] - download, then [2], then [3] (if you really have to, there's no point asking for more trouble :-).

Crunchyroll

Please make the extension work on the Crunchyroll website.

Error when running "npm run build"

I was encountered with an error when I tried to run "npm run build".

The react-scripts package provided by Create React App requires a dependency:

"webpack": "4.41.2"

Don't try to install it manually: your package manager does it automatically.
However, a different version of webpack was detected higher up in the tree:

/home/kaiku/Workspace/hls-downloader-chrome-extension/node_modules/webpack (version: 4.41.6)

I thought it was caused by a higher version of webpack globally, but it's not, and I found

kaiku@DESKTOP-G3V0L9B:~/Workspace/hls-downloader-chrome-extension$ npm ls webpack
@1.7.2 /home/kaiku/Workspace/hls-downloader-chrome-extension
├─┬ @storybook/[email protected]
│ ├─┬ @storybook/[email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected] deduped
│ │ └── [email protected] deduped
│ └── [email protected]
└─┬ [email protected]
└── [email protected]

It's from storybook
2020-02-17T22_37_30_806Z-debug.log

When a download gets stuck - a button is needed to force continuation

This goes back to the lack of retry logic but this one is not at the beginning - it's in the middle. You can repro by pulling out ethernet cable and then reinserting it say 5 min latter. It gets stuck and doesn't know to retry ever again and OK it probably shouldn't on it's own but it needs a button to tell it "retry/continue".

At that point it needs to discard at least the last fetched block (maybe 3 or 5 just to be safe - blocks are small) and if it can't it needs to signal that - say paint the item in red. It it has a way of setting or controling "timeout" (this can come in many shapes or forms) it needs to increase it when the [retry] button is clicked.

I left one sitting at 99% for the last 2h. Left it hanging out of curiosity just to see if it's ever going to remember to retry :-) Started another say and hour ago - it's stuck at 21%. Started another ~ 15 min ago - it finished (all same site/page). ==> retry logic resolves intermittent network problems. If that 99% retried once or twice it probably would have finished.

Part of the self-correction/retry mechanism needs to be taking and keeping at least minimal timestamps - say last 5 or 10 blocks. That will let it guestimate if fetching packets got stuck due to deteriorating connection throughput - that can inform it how much the "timeout" should be increased. Mind you that "timeout" can also mean "number of retries". Yes it gets complicated :-) C'est la vie of network inconsistencies and this extension does deal with cross planetary links.

Consider the state: Regular/In_Retry.

Regular: check timing regularly and retry at most 2 times if it looks it got stuck (diff between last 2 block arrivals > 2average or the last block arrived more that 3average time ago).

In_Retry: retry at most 5 times if no new blocks are arriving or the last arrived more that 2* new-average or 3* old-average (old average is the "last good" - kept from the times before the fetching got stuck - say up to 5 blocks before it got stuck).

In_Retry == the [Retry] button was clicked on.

Once you have the basic data collection timing calc you can extend latter and decide what would consist severe degradation which warrants "spontaneous" transition to In_Retry state. For example oit it's still in Regular but has to so retries 3 times in a row that's the signal that it should really be In_Retry already.

DL Quality

Hello!

Superb extension first and foremost, Thank you for creating it.

The question that I have is, is there a reason why most of the time the option for quality goes up to only 594? every no and then I do get options for 720 and 1080p. But, most do comeback with a 594 as the highest quality option. Yes. I know for a fact that higher resolution is available. Is there a setting that I am not aware of?

OS: Win 10 1903
Browser: Chrome 76

Thank you!

No Audio

Every video I download has no audio.

Nothing here on lookmovie

If I use VideoDownloadHelper it can find the hls and download it however hls extension can not see it in the sniffer. This is on lookmovie.ag . Here is the link to the movie: https://lookmovie.ag/movies/view/wonder-woman-2017 although it happens on movie i go on and here is the m3u8 link from videodownloadhelper: https://fe13.lookmovie.ag/b3Z4lAY0_0jm1TYTgc8GhQ/1561907441/storage2/movies/wonder-woman-2017/1080p/index.m3u8 . I would download using VideoDownloadHelper but for some reason the movies always come out with stutters and skipped frame which I think I saw is an encoding issue but I'm not sure.

Temp Folder

Thanks for the extension. It would be convenient if you could choose the temporary folder and the destination folder to save the files, especially for those of us running live os linux. XDM allows this option and the ram is not saturated and the system not freezes.

Saved videos do not play

I downloaded my videos, they appear to be the correct length. But VLC player will not play them. I get no errors, they just do not work.

I am downloading Mysteries at the Museum, full episodes from 'The Travel Channel'. You would need a provider sign on to get in, such as a cable channel subscription.

Set file name while downloading

Is your feature request related to a problem? Please describe.
I like the update to use the page title for the download file name, but not all pages uses good titles. If I download multiple files and they all have the same page title, it can take some work to figure out which video is what.

Describe the solution you'd like
It would be great if I could edit the file name while it is being downloaded. Then once it completes it could just use that name. I'd also like to be able to set the file extension because I prefer to save them as .ts files and then run them through ffmpeg to fix them.

Describe alternatives you've considered
Download one file at a time so I'm not confused as to what is being downloaded.

Additional context
I would image on the download tab it would still default to the page title. But you could click on the title or edit link, change the file name, then hit enter or save. Once it completes downloading it prompts or just saves as that name.

Can't find HLS links on zee5.com website

As the website is region locked to India, you would need to use VPN to switch to an IP from India.

Creating account is free.

when trying for eg "https://www.zee5.com/tvshows/details/bhabi-ji-ghar-par-hain/0-6-199/bhabi-ji-ghar-par-hai-episode-9-march-12-2015-full-episode/0-1-867"

No HLS links are displayed, even though Network tab can show m3u8 HLS links from akamaihd.

e.g "https://netst2z5x-vh.akamaihd.net/i/draco/shows/and_tv/Bhabiji_Ghar_Par_Hai/March/06032015/Bhabiji_Ghar_Par_Hai_Episode_5.smil/index_884736_av.m3u8?e=5736cdfadcf362b7&hdneaq=exp=1552265707~acl=%2f*~hmac=2b597c37b1d21adb74108a745569951eb18ba63cfecd766a725fec6f4ed41438
"

the links auto-expire based on "exp" attribute which is timestamp in epoch.

it will be great if u can debug the issue.

Copy All Links Button

It would be nice to copy all the links on the same site at once. It is very difficult to copy multiple links one by one.

image

Cannot download

I see the download link (very low visible) but when I click on it, nothing happens.

Cannot pause and resume automatically

Hi,

1 It cannot be paused and resumed automatically, sometimes it cannot be resumed after the network is disconnected

2 Removed videos cannot be downloaded again.

thanks.

download saved as 0-sized file

OK here's another one - same server - nothing better for catching bugs than a shaky server :-)

Repro URL: http://serije.lako.biz/epizode/vratadovrata.php?ep=1.Specijal

Sniffer OK, take 712x400. It's 2 bugs - there shouldn't be 2 items listed as 712x400 - the same issue happens with all other resolutions. Might be related.

BTW is hls-downloader-chrome-extension/public/ installable in Dev mode? Or do you have another place with releases?

extension not usable when video has DRM

I encounter more and more videos which are copy protected by DRM .. so this extension does not work to save such videos .. i find no method to save such videos .. DRM seems "unbreakable" .. but how ? Such video IS played in my browser, so why is it impossible to capture it ? The bits are coming into my PC !? The only method i can think of is to capture such video by a screencast .. BTW. i use Linux Ubuntu 18.04.

Copy at once all the links HLS has found

Would nice to get in one shot the list of the list of the URLs HLS downloader has intercepted so that they can be processed via other tools.

It happened to me to go through the list and clicked more than 100 times.

A "copy all button" in my opinion would be appreciated.

Extension breaks dailymotion and rutube

Opera Snapshot_2019-07-10_154638_rutube ru
Opera Snapshot_2019-07-10_154801_www dailymotion com
Hi! I love your extension. However, whenever I try to play videos on rutube or dailymotion I have to disable this extension. Otherwise it makes the videos unplayable and say that the video is temporarily unavailable or that there's a server error. The videos play/work when I disable the extension.

WebSocket connection Error

In chrome://extensions/?errors=onpiiolicjjcilbnkdgkajnpknndneom:

WebSocket connection to 'ws://localhost:8000/socketcluster/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

Do I have to run websocket server locally somehow? I just followed the installation steps:

npm install
npm run build
chrome://extensions
LOAD UNPACKED

Not working with BBC iPlayer or ESPN?

Hi,

Thanks for the extension, been trying to use it to download ESPN and/or BBC iPlayer stuff and it's not picking it up, this URL http://vod-hls-uk-live.akamaized.net/usp/auth/vod/piff_abr_full_hd/8421f3-b007j8w4/vf_b007j8w4_5184b861-0781-4733-b985-c74c70f96fb5.ism.hlsv2.ism/vf_b007j8w4_5184b861-0781-4733-b985-c74c70f96fb5.ism.hlsv2-audio_eng=128000-video=5070000.m3u8?__gda__=1531232135_8d70f94f4640b92dc1f2afb167cc7975 when playing in HLS player (https://www.hlsplayer.net/) is completely ignored, same with ESPN videos being played in a tab, are there only certain HLS stream types your extension is capable of picking up?

misses M3U8 here :

Thanks a lot for the DL-er, it's pretty cool.

It detects M3U8s on some sites, and offers DLs for the different bandwidths available, but fails to detect M3U8s on others, for example -
https:// www2. solarmoviex. to/watch/high-noon.pr9j/61jp34 (added spaces to the link. It's some old movie, open with your adblocker running, though there's nothing too ad-extreme in there).

would be great if you could

Preserving query strings in downloading segments

My experience is that it does not preserve the parameters that may follow a question mark like

http://video.example.com/videos/vid003/playlist.m3u8?user=mazinga&signature=xr483ntc1totn8yty9n245x42t

hence if segments inside playlist.m3u8 are specified as follows

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:4
#EXTINF:10.000,
segment001.ts
#EXTINF:10.000,
segment002.ts
#EXTINF:10.000,
segment003.ts
#EXTINF:10.000,
segment004.ts
#EXTINF:10.000,
segment005.ts

and the website accepts requests only with

http://video.example.com/videos/vid003/segment001.ts?user=mazinga&signature=xr483ntc1totn8yty9n245x42t

HLS fails at downloading them.

I wrote a bash script that used as input the URL caught by HLS and by preserving the query string, that sometimes is used to authenticate users, I was able to download all the segments.

I would fork the code but I'm new to chrome extensions, I'm just learning now...

another M3U8

Auto Save

Hello, this is Nick the guy that asked for Auto Download a few mos ago which you quickly implemented.

Can you also do Auto Save? On the streaming site I use this for, I'll eventually get a dialog box after it's done downloading, asking for save location. I would like this all automated and saved to my default download folder.

Also, note, that it doesn't catch the file extension. It's always a long string of characters (which is fine), but to automatically add .mp4 at the end would be great.

Thanks.
-Nick.

"Downloads" mini-tab empty and shrunk - exception

HLS_bug_UI_Downloads Tab

The other two are in good state - it did latch on and downloaded and saved an item while in that state but the mini-never recovered as UI - hat to kill extensions process and let Chrome reload it.

Let me copy what I was able to collect from Dev Console.

2.522e8fb2.chunk.js:2 Uncaught TypeError: Cannot read property 'title' of undefined
at Q (main.129a7291.chunk.js:193)
at sa (2.522e8fb2.chunk.js:2)
at Tu (2.522e8fb2.chunk.js:2)
at ml (2.522e8fb2.chunk.js:2)
at pl (2.522e8fb2.chunk.js:2)
at il (2.522e8fb2.chunk.js:2)
at 2.522e8fb2.chunk.js:2
at t.unstable_runWithPriority (2.522e8fb2.chunk.js:2)
at Vo (2.522e8fb2.chunk.js:2)
at Yo (2.522e8fb2.chunk.js:2)

HTML for chrome-extension://apomkbibleomoihlhhdbeghnfioffbej/downloads

<style data-styled="active" data-styled-version="5.0.0"></style> You need to enable JavaScript to run this app.
<script src="/static/js/runtime-main.25c6d117.js"></script> <script src="/static/js/2.522e8fb2.chunk.js"></script> <script src="/static/js/main.129a7291.chunk.js"></script>

It would be good to add release section

Every release should have exactly the same structure and files that will be under ...\Extensions\apomkbibleomoihlhhdbeghnfioffbej<version> once it's present in google store (sans _metadata of course).

Chrome segfault on linux

Hi!
Was testing this extension on a file of the following type:
#EXTM3U
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=715116,AVERAGE-BANDWIDTH=635000,RESOLUTION=640x360,FRAME-RATE=29.970,CODECS="avc1.64001F,mp4a.40.2"

Whose referred file contains this:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:6
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6.006000
chop/segment-1.ts
#EXTINF:6.006000
chop/segment-2.ts
#EXTINF:6.006000
chop/segment-3.ts
#EXTINF:6.006000
chop/segment-4.ts
#EXTINF:6.006000
chop/segment-5.ts
#EXTINF:6.006000
chop/segment-6.ts
#EXTINF:6.006000
chop/segment-7.ts
#EXTINF:6.006000
chop/segment-8.ts
#EXTINF:4.304300
chop/segment-9.ts
#EXT-X-ENDLIST

Unfortunately, chrome throws a segmentation fault when I attempt to save after a download. Any idea why this would happen?

Suggestion: Automatically download.

Hello,

There is no reason to have to sniff the download, wait for it to complete, then separately download it, too.

Just make it so we select which stream we want to sniff, then when it's done, it just downloads it.

Otherwise, it's a perfect extension.

NanN% shown on the Downloads pane - doesn't download anything

Repro URL:

http://serije.lako.biz/epizode/junacinasegdoba.php?ep=1

Sniffer (apparently) does it's part fine, shows 3 items with different bandwidths.

Oh and "Stream Recorder" (https://www.hlsloader.com/index.html) downloads it just fine, in "Normal Mode" => stream is OK (normal mode is when it recognizes stream(s) and is able to drain and assemble pieces on it's own).

That particular server might be a bit problematic (the player on that page trips after 5-15 min) but not at the very beginning. "Stream Recorder" gets correct number of blocks and fetches them without a hiccup.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.