Was ein Download-Manager kann, was ein Webbrowser nicht kann
Eine vier Gigabyte große Datei, zu neunzig Prozent fertig — und dann ein Anruf, oder einfach nur der gesperrte Bildschirm, und alles ist weg. Das ist die häufigste Beschwerde beim Downloaden unter iOS, und es ist kein Bug. Das Betriebssystem macht genau das, wofür es gebaut wurde — und deshalb gibt es eine eigene Klasse von Apps.
- 30s Ungefähr so lange läuft eine pausierte App weiter, bevor iOS sie stoppt
- 206 Der HTTP-Status, der Fortsetzen überhaupt erst möglich macht
- 1 Byte So viel wird bei einem korrekt fortgesetzten Transfer erneut geladen
Warum der Transfer stoppt, wenn du die App wechselst
iOS lässt eine App nicht einfach weiterlaufen, nur weil sie das gerne würde. Verlässt du eine App, wird sie binnen Sekunden pausiert — und eine pausierte App hat keine CPU-Zeit, keine Netzwerksockets und keine Möglichkeit zu merken, dass sie gestoppt wurde. Alles, was sie im Speicher hielt, liegt noch da, aber eingefroren — und wenn das System den Speicher braucht, wird die App ohne Vorwarnung beendet.
Ein Download über eine gewöhnliche Verbindung innerhalb der App endet deshalb beim Home-Gesture. Manche Apps kaschieren das, indem sie ein paar Extra-Sekunden Hintergrundzeit anfordern — deshalb überlebt ein Download den Wechsel manchmal genau so lange, bis du merkst, dass er doch nicht weiterläuft.
Die richtige Antwort ist von anderer Art. iOS stellt einen Hintergrund-Transfer-Dienst bereit: Du übergibst dem System eine Liste von URLs und Zielen, und das System lädt selbst herunter — in seinem eigenen Prozess, nach seinem eigenen Zeitplan. Deine App darf pausiert, beendet oder gar nicht laufen — der Transfer geht weiter, und die App wird im Hintergrund neu gestartet, wenn es etwas zu melden gibt. Das ist der Mechanismus hinter jedem Download, der einen gesperrten Bildschirm übersteht. Ihn zu nutzen ist eine Designentscheidung der App von vornherein, kein Schalter, den du umlegen kannst.
Die vier Mechanismen, die entscheiden, ob ein Download überlebt
- Range-Anfrage
- Eine HTTP-Anfrage, die ab Byte 5.000.000 statt der ganzen Datei verlangt. Antwortet der Server mit
206 Partial Content, ist Fortsetzen mittendrin möglich; antwortet er mit200 OKund beginnt von vorn, nicht — die Datei muss wieder von Null geladen werden. - Parallele Verbindungen
- Eine Datei in mehrere Bereiche teilen und gleichzeitig abrufen. Das hilft, weil eine einzelne Verbindung oft vom Server gedrosselt oder durch Round-Trip-Latenz begrenzt wird — nicht weil dein Internet mit mehr offenen Sockets schneller wäre.
- Festgeschriebener Offset
- Wie viel der Datei sicher auf der Festplatte liegt, im Gegensatz zu dem, was noch unterwegs ist. Ein Download, der ab dem letzten festgeschriebenen Byte fortsetzt, ist korrekt; einer, der ab dem fortsetzt, was er *glaubt* empfangen zu haben, erzeugt eine korrupte Datei, die sich erst Stunden später zeigt.
- Hintergrund-Session
- Der oben beschriebene, systemgesteuerte Transfer. Er startet langsamer, lässt sich keine beliebige eigene Logik aufdrücken — und er ist das Einzige, das weiterläuft, wenn die App es nicht tut.
Warum ein Download scheitert — und wie jeder Fehler aussieht
Die meisten Meldungen über „hängende Downloads“ gehören zu diesen fünf, und sie sind leicht zu unterscheiden, sobald du die Form erkennst.
| Was du siehst | Was tatsächlich passiert | Was hilft |
|---|---|---|
| Stoppt im Moment, in dem du die App verlässt | Der Transfer lief im Prozess der App, nicht in einer Hintergrund-Session. | Von aussen nichts — das ist ein Designproblem der App. |
| Startet jedes Mal wieder bei 0 % | Der Server ignoriert Range-Anfragen, also gibt es keine Möglichkeit, mittendrin weiterzumachen. | Eine stabile Verbindung oder eine kleinere Datei. Manche Hosts erlauben Ranges nur bei signierten Links. |
| Scheitert nach ein paar Minuten, immer wieder | Der Link ist abgelaufen. Viele Hosts stellen URLs aus, die fünf oder zehn Minuten gelten. | Den Link erneut von der Seite holen und von vorn starten; der alte funktioniert nie wieder. |
| Lädt schnell, aber die Datei lässt sich nicht öffnen | Angekommen ist eine HTML-Fehlerseite oder eine Login-Seite mit dem Namen einer Videodatei. | Die Größe prüfen — ein „Film“ mit 14 KB ist eine Webseite. Den Link prüfen, bevor du dich festlegst. |
| Sehr langsam trotz schneller Verbindung | Drosselung pro Verbindung auf der Server-Seite. | Mehr parallele Verbindungen, wenn der Server sie zulässt. Begrenzt er nach IP-Adresse statt nach Socket, hilft nichts. |
Wenn es gar keine Datei zum Herunterladen gibt
Ein großer Teil des Videos im Netz kommt nicht als Datei. Er kommt als HLS — eine .m3u8-Playlist mit Hunderten kurzer Segmente von wenigen Sekunden, oft in mehreren Qualitätsstufen, damit der Player bei Verbindungswechseln umschalten kann. Es gibt keine einzelne URL, die den Film hält, weil der Film nur als Abfolge existiert.
Speichern heißt: jedes Segment holen und dann remuxen — Video- und Audiospuren in einen normalen MP4-Container schreiben. Nichts wird neu kodiert, also geht nichts verloren, und es dauert Sekunden statt so lange wie der Film. Das Ergebnis ist eine gewöhnliche Datei, die überall abspielt.
Deshalb braucht „diesen Stream herunterladen“ spürbar länger zum Starten als ein Datei-Download: Die Playlist muss geholt und geparst, eine Qualitätsstufe gewählt werden — erst dann kommen Segmente. Und deshalb lassen sich manche Streams gar nicht speichern: Sind die Segmente unter einem DRM-Schema verschlüsselt, sind die Schlüssel absichtlich nicht erhältlich, und kein Tool, das das Gesetz achtet, kommt daran vorbei.
Was einen echten Download-Manager von einem Download-Button trennt
Er überlebt das Schliessen der App
Hintergrund-Transfers an das System übergeben, mit einer Übergabe, die beim gleichen festgeschriebenen Byte weitermacht statt die Datei neu zu starten.
Er sagt dir, was ein Link ist, bevor du dich festlegst
Größe, Typ und ob der Server Fortsetzen unterstützt — alles mit einer einzigen HEAD-Anfrage erkennbar, und alles nützlich, bevor du vier Gigabyte deines Datentarifs verbrauchst.
Er reiht ein statt zu überfluten
Zehn Dateien gleichzeitig sind langsamer als drei nacheinander, weil jede Verbindung einen kleineren Anteil bekommt und Fehler sich vervielfachen. Eine Warteschlange mit sinnvoller Parallelitätsgrenze ist früher fertig.
Was ankommt, ist eine normale Datei
In einem Ordner, den du sehen kannst, sinnvoll benannt, abspielbar mit allem — kein Datenbank-Blob, den nur diese App öffnen kann.
Gewohnheiten, die die meisten Download-Probleme verhindern
- Große Dateien per WLAN starten und den Bildschirm die ersten Sekunden anlassen
Die Übergabe an die Hintergrund-Session passiert früh; danach spielt der Bildschirm keine Rolle mehr.
- Nicht zwanzig Einträge auf einmal einreihen
Drei bis fünf parallele Transfers sind auf fast jeder Verbindung der Sweet Spot.
- Freien Speicher vorher prüfen, nicht hinterher
Ein Transfer, der die Festplatte vollschreibt, scheitert bei 98 %, und iOS hat vielleicht schon deine Caches geleert, um Platz zu schaffen.
- Sofortiges „fertig“ mit Misstrauen behandeln
Ein Film, der in zwei Sekunden fertig war, ist eine Fehlerseite. Die Dateigröße ansehen.
- Abgelaufene Links erneut von ihrer Seite holen
Eine tote signierte URL schlägt für immer fehl, egal wie oft die App es versucht.
Wie sich das auf den Geräten unterscheidet
Die strengste Umgebung: Pausieren ist aggressiv, Speicher ist knapp. Hintergrund-Sessions sind hier keine Optimierung — sie sind das Einzige, was funktioniert.
Dieselben Regeln, mit mehr Spielraum — und das eine iOS-Gerät, auf dem eine große Bibliothek vernünftig auf einem externen Laufwerk statt im internen Speicher landen kann.
Gar kein Pausieren, also verhalten sich lange Transfers wie auf jedem Desktop. Die praktische Grenze ist der Server, nicht das Betriebssystem.
Fragen, die sich daraus ergeben
Bedeuten mehr Verbindungen immer einen schnelleren Download?
Nein. Sie helfen, wenn ein Server die Geschwindigkeit jeder einzelnen Verbindung begrenzt — das kommt häufig vor. Sie bringen nichts, wenn die Grenze deine eigene Verbindung ist, und sie können schaden, wenn ein Host Sockets pro IP-Adresse zählt und sie ablehnt. Irgendwo zwischen vier und acht liegt der sinnvolle Bereich; dreißig ist kontraproduktiv.
Kann ein Download weiterlaufen, während der Bildschirm gesperrt ist?
Ja, wenn er dem Hintergrund-Transfer-Dienst des Systems übergeben wurde. Der Sperrbildschirm ist für diesen Dienst irrelevant — entscheidend ist, dass die App pausiert wird, und genau deshalb läuft der Mechanismus weiter, egal was.
Warum startet mein Download neu statt fortzusetzen?
Der Server hat die Range-Anfrage nicht respektiert. Du erkennst es daran, dass der Fortschritt auf null zurückspringt statt weiterzugehen. Manche Hosts unterstützen Ranges nur bei signierten Download-URLs, manche gar nicht, und ein paar nur bei kleinen Dateien, nicht bei großen.
Ist das Umwandeln eines Streams in MP4 dasselbe wie Neu-Kodieren?
Nein. Remuxen verschiebt vorhandenes Video und Audio unangetastet in einen MP4-Container — verlustfrei und schnell genug, um in Sekunden fertig zu sein. Neu-Kodieren baut das Bild mit einem anderen Codec neu und verliert immer Qualität. Dauert das Speichern eines zweistündigen Streams zwei Stunden, wird irgendwo neu kodiert, obwohl es nicht nötig wäre.
So lädt FoxDL herunter
Die Engine hat zwei Spuren: eine im Prozess, die schnell ist, solange die App im Vordergrund ist, und die System-Hintergrund-Session, die ab dem gleichen Byte übernimmt, wenn sie es nicht ist.
- Parallele Chunks für eine einzelne Datei, direkt an ihre endgültige Position auf der Festplatte geschrieben — nicht in temporäre Teile, die danach zusammengefügt werden müssen.
- Hintergrund-Transfers, die weiterlaufen, wenn die App den Bildschirm verlässt, und beim letzten festgeschriebenen Offset ansetzen — nicht beim letzten Byte, von dem die App glaubte, es zu haben.
- Fortsetzen nach Abbruch, Neustart oder Force-Quit, sofern der Server Range-Anfragen respektiert. Tut er das nicht, sagt FoxDL es — statt endlos zu schleifen.
- HLS-Streams zu MP4 remuxt, sodass in der Bibliothek eine gewöhnliche Datei landet, kein Ordner voller Segmente.
- Ein Download-Inspektor, der echte Größe, Typ und Fortsetzungs-Unterstützung eines Links meldet, bevor du startest.
- Alles landet in einem normalen Ordner, den die Dateien-App sehen kann.
Freikontingente unterscheiden sich je Plattform: auf iPhone und iPad eine kleine Zahl an Pässen, aufgefüllt durch ein kurzes Reward-Video, das du selbst startest; auf dem Mac, wo es gar keine Werbung gibt, eine feste Tageszahl. Pro hebt das Limit auf jedem Gerät auf.
Häufige Fragen dazu
- Laufen Downloads weiter, wenn ich die App verlasse?
- Kann ein unterbrochener Download dort weitermachen, wo er aufgehört hat?
- Kann FoxDL einen HLS-(m3u8)-Stream herunterladen?
- Warum ist mein Download langsam, und kann ich ihn beschleunigen?
- Wie viele Downloads kann ich in der kostenlosen Version machen?
Weiterlesen
Was passieren muss, bevor eine Webseite dir ihre Datei gibt
Die vier Wege, wie eine Seite Video ausliefert — und warum nur einer davon eine Datei ist, die du behalten kannst.
Wo deine Dateien auf dem iPhone wirklich liegen — und wer sie sehen kann
Die Sandbox, wohin Downloads wirklich gehen, und warum das Umbenennen einer Datei so viele Apps kaputtmacht.
Warum dein iPhone die eine Videodatei öffnet und die nächste ablehnt
Container, Codecs und die drei Wege, eine Datei anzusehen, die iOS nicht öffnet.
Deine Bibliothek, endlich an einem Ort.
Kostenlos laden. Kein Konto, keine Anmeldung — der volle Funktionsumfang steckt in der Gratisversion.