Skip to content

Repository files navigation

Video HLS-Stream Downloadr

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.

Video HLS-Stream Downloadr - Popup

Features

  • 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

Voraussetzungen

  • 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

Installation

Aus dem Chrome Web Store

(Link folgt, sobald die Erweiterung im Store ist.)

Manuell (Entwicklermodus)

  1. Repository herunterladen oder klonen:
    git clone https://github.com/HalloWelt42/downlodr-4-hsl-stream-vod-chrome-extention.git
  2. chrome://extensions im Browser öffnen
  3. Oben rechts den Entwicklermodus aktivieren
  4. "Entpackte Erweiterung laden" klicken
  5. Das geklonte Verzeichnis auswählen

Die Erweiterung erscheint danach in der Browserleiste mit dem orangefarbenen Play-Symbol.

Verwendung

  1. Eine Seite mit einem Video öffnen
  2. Das Video kurz abspielen (einige Sekunden genügen) -- damit der laufende Player seine Stream-Manifeste lädt und die Erweiterung sie im Hintergrund mitbekommt
  3. Auf das Symbol in der Browserleiste klicken
  4. Das Popup listet alle erkannten Videos. Für jedes Video werden die verfügbaren Stream-Varianten angezeigt (Progressive MP4, HLS, DASH)
  5. Auf die gewünschte Variante klicken -- der Download startet
  6. 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

Einstellungen

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

Projektstruktur

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.

Datenschutz

  • 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.sync gehalten (nur für dich, nicht zu Dritten)

Vollständige Datenschutzerklärung: PRIVACY.md

Berechtigungen

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

Lizenz

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

Dritt-Komponenten

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

Rechtlicher Hinweis

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.

Support

Unterstützen

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.

Ko-fi

Crypto:

Coin Adresse
BTC bc1qnd599khdkv3v3npmj9ufxzf6h4fzanny2acwqr
DOGE DL7tuiYCqm3xQjMDXChdxeQxqUGMACn1ZV
ETH 0x8A28fc47bFFFA03C8f685fa0836E2dBe1CA14F27

© 2025-2026 HalloWelt42 -- Nicht-kommerzielle Nutzung / Non-commercial use only