Filmbeschaffer Documentation

Functionality

Filmbeschaffer is an application, running on macOS 12 and higher, for downloading MP4 video files from the arte (German language) and zdf info web sites and for downloading M3U8 video streams.

Downloading a stream means to download the data that an HTTP server needs such that one can watch the video in an HTTP browser using this HTTP server. You just put the downloaded data into some folder that the HTTP server uses for the content that it serves, and then open the URL of the M3U master file.

If you use Apache Tomcat as the HTTP server, for example, then you could place the content like the folder "tw1" in

and watch the video under the URL http://host:8080/Filme/tw1/index.m3u8, where host is the host name or IP address of your HTTP server.

A much simpler way to watch a downloaded M3U8 stream is to use the HTTP server functionality of Pix. Alternatively you can convert the stream data to a single video file using ffmpeg — provided that the stream has no separate subtitles file, which is not supported by ffmpeg.

MediathekView is a great application — when it works — with similar (and much more) functionality, but it does not cover zdf info and sometimes does not recognize videos on arte, although they are available on the web site.

Parallel Downloads

The number of parallel downloads of video files, including the segments a video stream consists of, is limited to 5, because 5 downloads usually suffice to exhaust the available network bandwidth, and some WWW sites deny too many concurrent downloads to the same IP address. Thus, if you start a download and find that its state is🧍‍♀️, i.e. "waiting", then it is indeed waiting for one of the 5 download slots to become free.

Installation

The only known way of obtaining Filmbeschaffer is to download the disk image.

By default, Filmbeschaffer tries to check on application start whether a newer version is available at https://www.jakob-spies.de/fb. If so, it will ask you if you want an automatic update. If so, Filmbeschaffer starts a helper application, SoftwareUpdater, which downloads https://www.jakob-spies.de/pix/Filmbeschaffer.zip (note that this is a TLS connection where the web server's identity is verified), decompresses it, verifies the code signature, quits the running old Filmbeschaffer, and replaces it with the downloaded one.

The automatic version check can be switched off in the Preferences dialog.

Usage

Features and properties not explained in this documentation are considered to be obvious or irrelevant.

Starting a Download

The command New… in the menu Download opens a dialog box in which you have to enter the download target and the URL of the WWW page where the video is shown, respectively the URL of the M3U8 master file (something like https://arteptweb-vh.akamaihd.net/i/am/ptweb/067000/067000/067091-006-A_0_VA-STA_AMM-PTWEB_XQ.170329090118879.smil/master.m3u8) and folder to which to download the stream. Hitting the "Start" button starts the download.

The Download Status

… is shown in the "Downloads" window. The "speed" displayed here is the average download speed during the last t seconds, where the value of t can be adjusted in Filmbeschaffer's preferences dialog (default value: 12). Values smaller than 1 get corrected to 12.

The "remaining time" is estimated using this speed value.

Cancelling a Download

… is done using the command Cancel in the menu Download, which will cancel the downloads corresponding to the rows selected in the "Downloads" table. You can also use the context menu on a row. A cancelled download can be resumed.

Resuming a Download

… is done using the command Resume/Retry in the menu Download, which will resume the downloads corresponding to the rows selected in the "Downloads" table. You can also use the context menu on a row. Cancelled and failed downloads can be resumed resp. retried.

Resumption of stream downloads is not implemented yet. I am waiting for the first customer to ask for this feature.

Deleting a Download

… from the "Downloads" table, which of course does not delete the downloaded file, is done analogously. This action is enabled only for downloads that are not running.

Opening the Downloaded Media

… from the "Downloads" table is done analogously. In addition you can hit the return key or just double-klick the download you want to open. M3U8 streams get opened with Pix.

Implementation

The implementation is strongly dependent on the internal structure of the arte and zdf info web sites. As soon as such a web site implementation (topography of resources, HTML and JavaScript code) gets changed, Filmbeschaffer will not work anymore. "Fortunately" these structures are pretty complex, especially for zdf info, so they won't be able to change them frequently.

New in Version 2.8

Adaptation to the new policy of arte to store media on Akamai.

New in Version 2

Limitations

Source Code

… is available here, so you can check that the program does not try to raid your refrigerator.