> HLS streams can be decrypted down into a video segments if you have the keys.
Yeah, if you have the key then great, but my tool doesn't do decoding for you, so you need to download all the individual segments, decode them, then my code could kick in. The code you would be interested in is [merge.py](https://github.com/zmwangx/caterpillar/blob/master/src/caterpillar/merge.py), which works on strictly local playlists and segments.
Okay, thanks for the suggestion, but local M3U8 files are pretty limited, and I don't have a use case for that, so I'm gonna keep my tool at the HLS level. You can take any code you want since the project is MIT-licensed.
Also, unrelated, but it seems that you're trying to scrape a TV streaming service? It probably won't work because they typically use AES encryption or other DRM schemes (an obvious example being Adobe Access), so unless you break the DRM, the segments you download are useless. In the particular example you gave, even if my tool supported local M3U8 files, it wouldn't have gotten you anywhere due to encryption.
> This has to do with your project. I see no way to use a m3u8 file locally stored on a machine, instead of stored on a server.
Sure, misunderstood.
> Your software requires it to be downloaded via http, or at least it seems.
Yeah, This is an HLS (HTTP live Streaming) client, and guess what, HTTP Live Streaming requires HTTP...
When you serve it over HTTP it's totally fine:
```console
$ caterpillar http://127.0.0.1:8080/example.txt
[######################################################################################################################################################] 22/22
...
```
Although I should point out that your first segment can't be decoded. Maybe an ~encoded~ encrypted (excuse the typo) playlist? Not sure.
---
And you may ask: how do I serve it locally? There are myriad ways to spin up a temporary HTTP server. E.g., Python has it builtin:
```console
$ python3 -m http.server
```
See https://docs.python.org/3/library/http.server.html.
I also use this Node [http-server](https://github.com/indexzero/http-server) and like it.
Closing the issue, but feel free to ask if the explanation isn't clear enough.
> a local m3u8 file that contains remote links
> I don't see a way to point to a local file.
Those descriptions sound pretty confusing. Please include an example.
Also, it sounds like this is just a question that has nothing to do with my project? Please use StackOverflow for that.
Documentation of delete_memoized needs update
=============================================
Currently, the documentation of `delete_memoized` uses function name as argument:
https://github.com/sh4nks/flask-caching/blob/34a84f705d5b7dd793257b6790be388b7bfcc994/flask_caching/__init__.py#L719-L753
However, this has been deprecated in code:
https://github.com/sh4nks/flask-caching/blob/34a84f705d5b7dd793257b6790be388b7bfcc994/flask_caching/__init__.py#L825-L828
By the way, I'm toying with the idea to start a separate org to host more advanced formulae and keep options alive. If there are similar-minded past maintainer / power users out there, feel free to ping me (email's on my profile).
Please add back `fdk-aac`. AAC is one of the (two) most widely audio codecs and fdk-aac was the de facto standard of AAC encoding with FFmpeg for years (see https://trac.ffmpeg.org/wiki/Encode/AAC, also search for AAC on https://ffmpeg.org/index.html#news). FFmpeg's builtin AAC encoder only moved out of experimental stage in December 2015, and fdk-aac is still the go-to for HE-AAC. Removing fdk-aac breaks a hell lot of encoding/transcoding scripts.
EDIT: To save you some time reading the Wiki, let me quote this:
> The Fraunhofer FDK AAC codec library. This is currently the highest-quality AAC encoder available with ffmpeg.