Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Normalize line endings for our own source to LF (matches .editorconfig).
# Git auto-detects text vs binary; text files are stored as LF in the repo and
# checked out as LF in the working tree.
* text=auto eol=lf

# --- Vendored third-party libraries: keep byte-for-byte (do not touch EOLs) ---
video-url-parser/bs/** -text
video-url-parser/js/jquery-3.4.1.min.js -text
video-url-parser/js/jquery-ui.js -text
video-url-parser/js/MD5.js -text
video-url-parser/js/m_inc.js -text
video-url-parser/css/jquery-ui.css -text
*.min.js -text
*.min.css -text

# --- Captured HTML test fixtures: data files, LF-normalized but exempt from
# whitespace linting (their internal indentation mirrors real-world pages) ---
video-url-parser/test/data/** -whitespace

# --- Build output (also gitignored) ---
video-url-parser/dist/** -text

# --- Binary assets (no EOL handling, no text diff) ---
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.ico binary
*.woff binary
*.woff2 binary
*.ttf binary
*.eot binary
32 changes: 16 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
*.zip
node_modules/
.vscode/
# Test coverage
coverage/
.nyc_output/
# Logs
*.log
npm-debug.log*
# OS files
.DS_Store
Thumbs.db
*.zip
node_modules/
.vscode/

# Test coverage
coverage/
.nyc_output/

# Logs
*.log
npm-debug.log*

# OS files
.DS_Store
Thumbs.db

dist/
29 changes: 23 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,14 @@ websites. Built and maintained by [@justyy](https://justyy.com/).
## Features

- One-click detection of downloadable video URLs on the current page.
- Site-specific parsers plus generic fallbacks (`og:video` meta tags, `<video>` tags, and embedded
`video_url` / `mp4` references).
- **One-click download** of detected videos, audio and images via the browser's download manager,
plus **Copy**, **Download All** and **Copy All** actions.
- **Right-click context menu** to download a video/audio element directly, or find videos on the
current page.
- A **toolbar badge** showing how many media URLs were detected on the page.
- **Dark mode** for the popup.
- Site-specific parsers plus generic fallbacks (`og:video` meta tags, `<video>` and `<source>`
tags, HLS `.m3u8` playlists, and embedded `video_url` / `mp4` references).
- Zero runtime dependencies — the parser is plain, dependency-free JavaScript.
- Built on Chrome Extension **Manifest V3**.

Expand All @@ -51,9 +57,11 @@ extraction strategies for everything else:
| weibo.com | `https://www.weibo.com/<uid>/<id>` |
| xiaokaxiu.com | `https://v.xiaokaxiu.com/v/<id>.html` |
| facebook.com | `https://www.facebook.com/<user>/videos/<id>/` |
| dailymotion.com | `https://www.dailymotion.com/video/<id>` |
| vimeo.com | `https://vimeo.com/<id>` |

Generic fallbacks also recognise `og:video` headers, HTML `<video src>` tags, and embedded
`video_url` / `mp4` URLs.
Generic fallbacks also recognise `og:video` headers, HTML `<video src>` and `<source src>` tags,
HLS `.m3u8` playlists, and embedded `video_url` / `mp4` URLs.

See [tested URLs](video-url-parser/tested-urls.txt) for verified pages and
[the wishlist](video-url-parser/todo-urls.txt) for sites we would like to support next.
Expand All @@ -67,8 +75,17 @@ Install the published (cut-down) version directly:

### Load the unpacked extension

1. Download a [release archive](https://github.com/DoctorLai/VideoDownloadHelper/releases) or build
the bundle yourself (see [Development](#development)).
The content-script bundle (`video-url-parser/dist/dist.min.js`) is produced by the build and is
**not** committed to the repository, so build it before loading:

1. Install dependencies and build the bundle:

```bash
cd video-url-parser
npm install
npm run build
```

2. Open `chrome://extensions` and enable **Developer mode**.
3. Click **Load unpacked** and select the `video-url-parser/` folder.

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "video-download-helper",
"version": "3.1.0",
"version": "3.2.0",
"private": true,
"description": "Repository root for the Simple Video Download Helper browser extension. The extension and its tooling live in the video-url-parser/ directory; the scripts below simply delegate there so they can be run from the repository root.",
"scripts": {
Expand Down
18 changes: 9 additions & 9 deletions video-url-parser/_locales/de_DE/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
}
{
"appName": {
"message": "Video Download Helper",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/en/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
}
{
"appName": {
"message": "Video Download Helper",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/en_GB/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
}
{
"appName": {
"message": "Video Download Helper",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/en_US/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
}
{
"appName": {
"message": "Video Download Helper",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "A Powerful Video URL Parser - Get Video URL (Quick&Correct). "
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/es_SP/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "Un potente analizador de URL de video - Obtener URL de video (rápido y correcto)"
},
"appDesc": {
"message": "Video Download Helper (Analizador de URL de video)",
"description": "Un potente analizador de URL de video - Obtener URL de video (rápido y correcto)"
}
{
"appName": {
"message": "Video Download Helper",
"description": "Un potente analizador de URL de video - Obtener URL de video (rápido y correcto)"
},
"appDesc": {
"message": "Video Download Helper (Analizador de URL de video)",
"description": "Un potente analizador de URL de video - Obtener URL de video (rápido y correcto)"
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/fr_FR/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "Un puissant analyseur d'URL vidéo - Obtenir l'URL de la vidéo (rapide et correct)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Un puissant analyseur d'URL vidéo - Obtenir l'URL de la vidéo (rapide et correct)."
}
{
"appName": {
"message": "Video Download Helper",
"description": "Un puissant analyseur d'URL vidéo - Obtenir l'URL de la vidéo (rapide et correct)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Un puissant analyseur d'URL vidéo - Obtenir l'URL de la vidéo (rapide et correct)."
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/it_IT/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "Un potente parser di URL video - Ottieni URL video (rapido e corretto)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Un potente parser di URL video - Ottieni URL video (rapido e corretto)."
}
{
"appName": {
"message": "Video Download Helper",
"description": "Un potente parser di URL video - Ottieni URL video (rapido e corretto)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Un potente parser di URL video - Ottieni URL video (rapido e corretto)."
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/nl_NL/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "Een krachtige video-URL-parser - video-URL ophalen (snel en correct)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Een krachtige video-URL-parser - video-URL ophalen (snel en correct)."
}
{
"appName": {
"message": "Video Download Helper",
"description": "Een krachtige video-URL-parser - video-URL ophalen (snel en correct)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Een krachtige video-URL-parser - video-URL ophalen (snel en correct)."
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/pl_PL/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
}
{
"appName": {
"message": "Video Download Helper",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
},
"appDesc": {
"message": "Video Download Helper (Video URL Parser)",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/pt_BR/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Video Download Helper",
"description": "Um analisador de URL de vídeo - Analisador de URL de vídeo (abreviação de URL de vídeo (schnell und korrekt)."
},
"appDesc": {
"message": "Auxiliar de Download de Vídeo (Analisador de URL de Vídeo)",
"description": "Um analisador de URL de vídeo - Analisador de URL de vídeo (abreviação de URL de vídeo (schnell und korrekt)."
}
{
"appName": {
"message": "Video Download Helper",
"description": "Um analisador de URL de vídeo - Analisador de URL de vídeo (abreviação de URL de vídeo (schnell und korrekt)."
},
"appDesc": {
"message": "Auxiliar de Download de Vídeo (Analisador de URL de Vídeo)",
"description": "Um analisador de URL de vídeo - Analisador de URL de vídeo (abreviação de URL de vídeo (schnell und korrekt)."
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/ro_RO/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Ajutor pentru descărcare video",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
},
"appDesc": {
"message": "Ajutor pentru descărcare video (parser URL URL video)",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
}
{
"appName": {
"message": "Ajutor pentru descărcare video",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
},
"appDesc": {
"message": "Ajutor pentru descărcare video (parser URL URL video)",
"description": "Ein leistungsstarker Video-URL-Parser - Video-URL abrufen (schnell und korrekt)."
}
}
18 changes: 9 additions & 9 deletions video-url-parser/_locales/ru_RU/messages.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"appName": {
"message": "Помощник по загрузке видео",
"description": "Мощный анализатор URL видео - получить URL видео (быстро и правильно)."
},
"appDesc": {
"message": "Помощник по загрузке видео (Парсер URL-адреса видео)",
"description": "Мощный анализатор URL видео - получить URL видео (быстро и правильно)."
}
{
"appName": {
"message": "Помощник по загрузке видео",
"description": "Мощный анализатор URL видео - получить URL видео (быстро и правильно)."
},
"appDesc": {
"message": "Помощник по загрузке видео (Парсер URL-адреса видео)",
"description": "Мощный анализатор URL видео - получить URL видео (быстро и правильно)."
}
}
Loading
Loading