MrMovies-Dev a9c677c349 feat: Native ExpressVPN HTTPS Proxy Provider (#126)
* feat: add native ExpressVPN HTTPS proxy provider

Introduces ExpressVPN as a first-class native proxy provider for unshackle.

This provider implements the full browser extension proxy authentication flow — from OAuth PKCE bootstrap through subscription validation to authenticated HTTPS proxy endpoints — without requiring any external tools or manual token management.

Supports smart location selection, city-level targeting with intelligent abbreviation matching, and pinned server selection. All tokens are automatically cached and refreshed.

No new dependencies required.

* fix: address PR #126 review feedback

- __repr__ no longer triggers network/OAuth calls; reads cached locations only
- _match_city uses tiered priority buckets (abbrev > exact > prefix > substring)
- Token cache writes race-free: os.open + os.fchmod(0o600) on Unix, fallback on Windows
- Cookie/cache paths resolve under config.directories, not CWD
- _get_connection_token parses response JSON once
- Drop unused PKCE state parameter (never validated)
- Add inline doc for _is_jwt_expired no-exp behavior
- Fix 3 lines exceeding 120-col project style

---------

Co-authored-by: MrMovies-Dev <MrMovies-Dev@users.noreply.github.com>
Co-authored-by: sp4rk.y <george+slight@slight.me>
2026-06-17 16:51:33 -06:00
2025-07-18 00:46:05 +00:00
2025-07-18 00:46:05 +00:00
2025-07-18 00:46:05 +00:00
2025-07-18 00:46:05 +00:00
2025-07-18 00:46:05 +00:00

no_encryption unshackle
Movie, TV, and Music Archival Software
Discord

Install  ·  Wiki  ·  Docs  ·  Discord


A modular archival tool for movies, TV, and music. Fork of Devine with DASH/HLS/ISM parsing, Widevine & PlayReady DRM, and a REST API.

unshackle demo

Install

uv tool install git+https://github.com/unshackle-dl/unshackle.git
unshackle --help

Tip

Prefer uv run unshackle ... inside a clone to keep the virtual environment active.

Requirements

External tools on your PATH (recommended versions):

Optional:

License

GPL-3.0. Do not use unshackle for content you lack the rights to. Keep the core free and open; keep service code private. Be kind.

Description
No description provided
Readme GPL-3.0 20 MiB
Languages
Python 99.9%