You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
The indication for the bug is when the video downloads to 100%; however, when the user clicks "save" nothing happens. This is due to ffmpeg failing to parse the video files. There is no error checking around the return value.
A simplistic solution can be applied to indexdb-fs.ts:
However, the underlying problem (at least in my case) is the missing mp4 init file, which is what caused the ffmpeg failure.
HLS Downloader does not process the "map" information returned from m3u8-parser which is from the EXT-X-MAP entry.
This information can be gained from within m3u8-parser.ts by accessing segment.map.uri, by saving that information to the Fragment it can be further propagated through the system to be downloaded and prepended to the m4s files (https://stackoverflow.com/questions/69574227/how-to-merge-init-mp4-m4s-files). However, each fragment can be associated with a different init (I've seen chunks of around 75 fragments associated with one init, then it has a new one). So each fragment needs to be associated with an init... e.g. via Record<string, Fragment>.
Likely the workflow needs to be something like...
Create buckets for each init+fragments associated to that init
Download the init into the bucket
Download all Fragments for that init into the same bucket starting at index 1
Repeat for all inits
Run ffmpeg as it is on each of the buckets. This will produce a fully complete mp4 file for each bucket.
Run ffmpeg again to compile all of the individual bucket mp4s into a single mp4.
Save file
To Reproduce
Try to download an HLS video that uses EXT-X-MAPs
Expected behavior
The file to download, convert, and save.
Desktop (please complete the following information):
OS: Windows
Browser Firefox
Version 134
Additional context
I have some rough code changes which partially work, but I don't have a ton of experience with React, RxJS, or Typescript... my solution is pretty terrible.
The text was updated successfully, but these errors were encountered:
Hey, thanks for this descriptive issue, think you could publish a fork with whatever fix you have? It's been a while and doesn't seem to be much interest from the repo owner in updating the extension.
Describe the bug
The indication for the bug is when the video downloads to 100%; however, when the user clicks "save" nothing happens. This is due to
ffmpeg
failing to parse the video files. There is no error checking around the return value.A simplistic solution can be applied to indexdb-fs.ts:
However, the underlying problem (at least in my case) is the missing
mp4 init file
, which is what caused the ffmpeg failure.HLS Downloader does not process the "map" information returned from m3u8-parser which is from the EXT-X-MAP entry.
This information can be gained from within
m3u8-parser.ts
by accessingsegment.map.uri
, by saving that information to the Fragment it can be further propagated through the system to be downloaded and prepended to the m4s files (https://stackoverflow.com/questions/69574227/how-to-merge-init-mp4-m4s-files). However, each fragment can be associated with a different init (I've seen chunks of around 75 fragments associated with one init, then it has a new one). So each fragment needs to be associated with an init... e.g. viaRecord<string, Fragment>
.Likely the workflow needs to be something like...
To Reproduce
Try to download an HLS video that uses EXT-X-MAPs
Expected behavior
The file to download, convert, and save.
Desktop (please complete the following information):
Additional context
I have some rough code changes which partially work, but I don't have a ton of experience with React, RxJS, or Typescript... my solution is pretty terrible.
The text was updated successfully, but these errors were encountered: