Chrome-Erweiterung (Manifest V3) zum Herunterladen von HLS-, DASH- und progressiven MP4-Videos direkt im Browser. Funktioniert mit allen gaengigen Video-Plattformen. Das Muxing der Segmente zu einer MP4 läuft lokal via ffmpeg.wasm -- keine Cloud-Dienste, keine externen Tools, keine Telemetrie.
- Progressive MP4 -- direkter Download ohne Umwege, wenn der Stream als progressive MP4 ausgeliefert wird
- HLS (
.m3u8) -- alle Segmente werden parallel geladen und lokal zu einer MP4 zusammengeführt - DASH -- Video- und Audiospuren werden getrennt geladen und zusammengemuxt
- Generische Stream-Erkennung -- erkennt HLS- und MP4-Streams auf beliebigen Webseiten per
stream-detector.js - Qualitätswahl bei HLS -- bei der Einstellung "Fragen" wird ein Quality-Picker mit allen verfügbaren Auflösungen angezeigt (1080p, 720p etc.)
- Chunk-Downloads -- lange Videos werden automatisch in nummerierte Teile aufgeteilt (konfigurierbare Dauer pro Chunk)
- Live-DVR-Aufnahme -- bei Live-HLS-Streams kann eine Aufnahme gestartet werden; Segmente werden laufend gesammelt und bei Stopp zu einer MP4 gemuxt
- Preload-Info -- Auflösung, Codec, Dauer und geschätzte Dateigröße werden im Popup vor dem Download angezeigt
- Titel-Normalisierung -- Plattform-Suffixe werden automatisch aus dem Dateinamen entfernt
- Live-Player-Beobachtung -- Lauscht passiv auf die Stream-Manifeste, die der laufende Player gerade lädt, und nutzt sie direkt (robust gegen Config-Blockaden und Domain-Whitelists)
- ffmpeg.wasm lokal gebundelt -- ca. 23 MB, läuft komplett offline im Browser, kein Cloud-Muxing
- Mehrsprachig -- 20 Sprachen out of the box (de, en, ar, es, fr, hi, id, it, ja, ko, nl, pl, pt-BR, ru, th, tr, uk, vi, zh-CN, zh-TW)
- Dark- und Light-Mode automatisch, folgt dem System-Theme
- Konfigurierbar -- Qualitätspräferenz, parallele Downloads, Dateinamen-Muster, Chunk-Dauer
- Keine Analytics, keine Drittanbieter, keine externen CDNs -- der gesamte Netzwerkverkehr geht ausschließlich an die Quell-CDNs der jeweiligen Video-Plattform
- Chrome 103+ (oder Edge, Brave, sonstige Chromium-basierte Browser)
- Eine Webseite mit einem Video (eingebetteter Player, HLS-/DASH-Streams, progressive MP4, VODs, Live-Streams)
- Bei privaten Videos: Anmeldung bei der jeweiligen Plattform im selben Browserprofil
- Bei Videos mit Embed-Domain-Whitelist: die Erweiterung muss auf der Original-Embedding-Seite verwendet werden
(Link folgt, sobald die Erweiterung im Store ist.)
- Repository herunterladen oder klonen:
git clone https://github.com/HalloWelt42/downlodr-4-hsl-stream-vod-chrome-extention.git
chrome://extensionsim Browser öffnen- Oben rechts den Entwicklermodus aktivieren
- "Entpackte Erweiterung laden" klicken
- Das geklonte Verzeichnis auswählen
Die Erweiterung erscheint danach in der Browserleiste mit dem orangefarbenen Play-Symbol.
- Eine Seite mit einem Video öffnen
- Das Video kurz abspielen (einige Sekunden genügen) -- damit der laufende Player seine Stream-Manifeste lädt und die Erweiterung sie im Hintergrund mitbekommt
- Auf das Symbol in der Browserleiste klicken
- Das Popup listet alle erkannten Videos. Für jedes Video werden die verfügbaren Stream-Varianten angezeigt (Progressive MP4, HLS, DASH)
- Auf die gewünschte Variante klicken -- der Download startet
- Bei HLS und DASH läuft zuerst der Segment-Download (mit Fortschrittsbalken), dann das Muxing mit
ffmpeg.wasm(ebenfalls mit Fortschritt), danach landet die MP4 im Standard-Downloads-Ordner
Per Rechtsklick auf das Symbol → "Optionen", oder über das Zahnrad im Popup:
| Einstellung | Beschreibung |
|---|---|
| Bevorzugte Qualität | Automatisch, immer höchste, immer niedrigste oder immer fragen |
| Parallele Segment-Downloads | 2 bis 16, Voreinstellung 8 -- höher ist schneller, braucht aber mehr Arbeitsspeicher |
| Dateinamen-Muster | Platzhalter {title}, {id}, {date} (z.B. {title} - {id}) |
| Chunk-Dauer | Maximale Dauer pro Chunk in Minuten (0 = kein Splitting). Lange Videos werden automatisch in nummerierte Teile aufgeteilt |
| Benachrichtigungen | Desktop-Hinweis, wenn ein Download fertig ist |
video-hls-stream-downloadr/
├── manifest.json Manifest V3
├── _locales/ 20 Sprachen mit messages.json
├── shared/
│ └── i18n.js DOM-Translate-Helper
├── src/
│ ├── background/
│ │ └── service-worker.js Orchestrierung, webRequest-Observer, Download-Hub
│ ├── content/
│ │ ├── player-detector.js Erkennt Video-URLs im DOM
│ │ └── stream-detector.js Generischer HLS-/MP4-Detektor für beliebige Webseiten
│ ├── lib/ Player-Config, HLS-/DASH-Parser, Segment-Loader, ffmpeg-Wrapper, Titel-Hilfsfunktionen
│ ├── offscreen/ Offscreen-Document mit ffmpeg.wasm
│ ├── popup/ Popup-Oberfläche (HTML/CSS/JS)
│ └── pages/ Options-Seite, gemeinsame Styles
├── vendor/ffmpeg/ ffmpeg.wasm v0.12 (lokal gebundelt)
├── rules/referer-rules.json declarativeNetRequest-Regeln für CDN-Referer
├── assets/icons/ Icon-Varianten (16/32/48/128)
├── docs/ Architektur- und Sicherheits-Dokumentation
├── store/ Chrome-Web-Store-Einreichungsmaterial
├── README.md (diese Datei)
├── PRIVACY.md Datenschutzerklärung
├── TERMS.md Nutzungsbedingungen
└── LICENSE Nicht-kommerzielle Lizenz
Details zu Architektur und Sicherheit: siehe docs/ARCHITECTURE.md und docs/SECURITY.md.
- Keine Cloud-Dienste -- das gesamte Herunterladen und Muxing läuft lokal im Browser
- Keine Telemetrie, keine Analytics, keine externen CDNs zur Laufzeit
- Keine Datenhaltung über den Tab hinweg: Die Erweiterung speichert pro Tab nur die erkannten Video-IDs für die Dauer der Session
- Netzwerkzugriffe ausschließlich auf die Quell-CDNs der jeweiligen Video-Plattform (host_permissions:
*://*/*für die generische Stream-Erkennung) - Einstellungen werden in
chrome.storage.syncgehalten (nur für dich, nicht zu Dritten)
Vollständige Datenschutzerklärung: PRIVACY.md
| Berechtigung | Zweck |
|---|---|
downloads |
Speichert die MP4 über die Browser-Download-API |
activeTab |
Liest Titel/URL des aktiven Tabs zur Video-Erkennung |
storage |
Speichert die Nutzereinstellungen |
scripting |
Injiziert den Detektor dynamisch in den aktiven Tab (für Videos in Drittseiten) |
offscreen |
Erlaubt ein unsichtbares Dokument, in dem ffmpeg.wasm läuft |
declarativeNetRequest |
Setzt den Referer-Header für CDN-Abrufe |
cookies |
Nutzt die angemeldete Sitzung für private Videos |
webRequest |
Lauscht passiv auf Stream-Manifeste des laufenden Players |
host_permissions |
*://*/* -- Zugriff auf beliebige Webseiten für die generische Stream-Erkennung via stream-detector.js und den webRequest-Observer |
Begründung jeder Permission für die Chrome-Web-Store-Einreichung: store/permissions-justification.md
Nicht-kommerzielle Nutzung -- siehe LICENSE.
- Private Nutzung, Installation, persönliche Anpassungen: erlaubt
- Teilen des unveränderten Originalcodes mit Quellenangabe: erlaubt
- Kommerzielle Nutzung, Verkauf, Unterlizenzierung: untersagt
- Veröffentlichung modifizierter Versionen: untersagt
Die Erweiterung bundelt ffmpeg.wasm -- @ffmpeg/ffmpeg (MIT) und @ffmpeg/core (LGPL-2.1-or-later). Diese stehen unter ihren eigenen, freizügigeren Lizenzen und werden hier unverändert eingebunden. Attribution, Quellcode-Verweise und eine kompakte Kompatibilitäts-Übersicht zur eigenen Lizenz: THIRD_PARTY_LICENSES.md
Die Erweiterung ist ein technisches Werkzeug zum lokalen Speichern von Videos. Der Nutzer ist selbst verantwortlich, dass er über die erforderlichen Rechte am heruntergeladenen Material verfügt (eigener Content, Creative-Commons-Videos, Videos mit expliziter Download-Erlaubnis durch den Urheber etc.). Siehe TERMS.md.
- Fehler und Feature-Requests: GitHub Issues
- Quellcode: GitHub Repository
Video HLS-Stream Downloadr ist ein privates Open-Source-Projekt. Kein Tracking, keine Werbung, keine Kompromisse. Wenn dir das Projekt gefällt, freue ich mich über eine Unterstützung -- ist aber völlig optional.
Crypto:
| Coin | Adresse |
|---|---|
| BTC | bc1qnd599khdkv3v3npmj9ufxzf6h4fzanny2acwqr |
| DOGE | DL7tuiYCqm3xQjMDXChdxeQxqUGMACn1ZV |
| ETH | 0x8A28fc47bFFFA03C8f685fa0836E2dBe1CA14F27 |
© 2025-2026 HalloWelt42 -- Nicht-kommerzielle Nutzung / Non-commercial use only
