VideoHelp Forum




+ Reply to Thread
Page 32 of 33
FirstFirst ... 22 30 31 32 33 LastLast
Results 931 to 960 of 985
  1. Originally Posted by stabbedbybrick View Post
    Originally Posted by Tom Saurus View Post
    I can get CRAV to successful load a list of titles and also to show quality available for a title but beyond that is is failing for me.

    Code:
    AttributeError: 'CRAV' object has no attribute 'license_url'
    That was actually an error on my part and has been fixed in the latest update. Widevine L3 will only work up to 720p, though, so keep that in mind.

    Edit: Actually, it looks like some titles can license 1080p L3. Either way, I'd recommend using playready for anything higher quality.
    Thank you for this fix. I am testing it right now and it seems to be working. I will have to learn about Playready though and work at adding that as an option in my Unshackle set up. I am happy with these lower resolutions as my DSL is not all that fast and with the price of hard drives going up it is what is best for me to be content with that.
    Quote Quote  
  2. Member
    Join Date
    May 2024
    Location
    Australia
    Search Comp PM
    So after using devine for the past year, i'm finally making the move to unshackle.
    All working well except for downloads that use n_m3u8dl_re.

    I keep getting this error:
    Code:
         1 Video     └── [H.264, SDR] | en-US | 960x540 @ 1782 kb/s, 23.976 FPS
             ⠏ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • --:-- • Parsing streams...
         1 Audio
         └── [AAC] | en-US | 2.0 | 130 kb/s | United States
             ⠏ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • --:-- • Parsing streams...
    
    
         Widevine(AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQB1oxzyEKT...)
         └── 075a31cf210a4e0fac141dfe26668cce:f0c5249ab18ae2e12c4affe509e218f7*
             from drmlab HTTPAPI
    
    
    
    
         ❌ Download Failed...
            Output directory does not exist: Temp\Video_1710c6ed.mp4_segments
            An unexpected error occurred in one of the download workers.
            See the error trace above for more information.
    The Temp directory is there.
    The other download workers work fine.
    So scratching my head trying to resolve this.

    Any suggestions?
    Last edited by davebee; 2nd May 2026 at 22:24.
    Quote Quote  
  3. Originally Posted by davebee View Post
    So after using devine for the past year, i'm finally making the move to unshackle.
    All working well except for downloads that use n_m3u8dl_re.

    I keep getting this error:
    Code:
         1 Video     └── [H.264, SDR] | en-US | 960x540 @ 1782 kb/s, 23.976 FPS
             ⠏ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • --:-- • Parsing streams...
         1 Audio
         └── [AAC] | en-US | 2.0 | 130 kb/s | United States
             ⠏ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • --:-- • Parsing streams...
    
    
         Widevine(AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQB1oxzyEKT...)
         └── 075a31cf210a4e0fac141dfe26668cce:f0c5249ab18ae2e12c4affe509e218f7*
             from drmlab HTTPAPI
    
    
    
    
         ❌ Download Failed...
            Output directory does not exist: Temp\Video_1710c6ed.mp4_segments
            An unexpected error occurred in one of the download workers.
            See the error trace above for more information.
    The Temp directory is there.
    The other download workers work fine.
    So scratching my head trying to resolve this.

    Any suggestions?
    Back a page or two iamghost posted a link to the binaries needed for Unshackle. Maybe you have not got the correct version of N_m3u8DL-RE installed. It is good you have everything else working in Unshackle. Don't give up you will probably get some help figuring this out.
    Quote Quote  
  4. Is anyone able to help? Im getting an error when trying to run unshackle I have my own wvd keys locally so not sure why its trying to use remotecdm can provide any info if anyone has any ideas thanks:

    Traceback (most recent call last):
    File "<frozen runpy>", line 198, in _run_module_as_main
    File "<frozen runpy>", line 88, in _run_code
    File "C:\unshackle\.venv\Scripts\unshackle.exe\__main__ .py", line 4, in <module>
    main()
    ^^^^^^^^^^^
    File "C:\unshackle\unshackle\core\__main__.py", line 14, in <module>
    from unshackle.core.commands import Commands
    File "C:\unshackle\unshackle\core\commands.py", line 12, in <module>
    _MODULES = {path.stem: getattr(import_module_by_path(path), path.stem) for path in _COMMANDS}
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\unshackle\unshackle\core\utilities.py", line 113, in import_module_by_path
    spec.loader.exec_module(module)
    File "C:\unshackle\unshackle\commands\dl.py", line 47, in <module>
    from unshackle.core.cdm import CustomRemoteCDM, DecryptLabsRemoteCDM
    ImportError: cannot import name 'CustomRemoteCDM' from 'unshackle.core.cdm' (C:\unshackle\unshackle\core\cdm\__init__.py)
    Quote Quote  
  5. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    uv run unshackle env info
    it can show you where WVDs folder location,
    or add in yaml WVDs copy paste wvds folder path and save
    Quote Quote  
  6. Hi guys Im having a problem with downloading dsnp

    Code:
    License request failed: 400 Client Error: Bad Request for url:             
         https://disney.playback.edge.bamgrid.com/playready/v1/obtain-license.asmx
    Im not sure if it's because im using a revoked sl3000.prd and have no idea how to fill the config.yaml

    still using the default config.yaml
    Code:
    certificate: |
      CAUSugUKtAIIAxIQbj3s4jO5oUyWjDWqjfr9WRjA2afZBSKOAjCCAQoCggEBALhKWfnyA+FGn5P3tl6ffDjoGq2Oq86hKGl6aZIaGaF7XHPO5mIk7Q35ml
      ZIgg1A458Udb4eXRws1n+kJFqtZXCY5S1yElLP0Om1WQsoEY2stpl+PZTGnVv/CsOJGKQ8K4KMr7rKjZem9lA9BrBoxgfXY3tbwlnSf3wTEohyANb5Qfpa
      xsU4v8tQDA8PcjzzV9ICodl6crcFZhAy4QMNXfbWOv/ZrGFx5blSXrzP1sMQ64IY8bjUYw4coZM34NDhu8aCA692g8k2mTz2494x7u3Is8v7RKC9ZNiETE
      K5/4oeVclXPpelNQokR4uvggnCD1L2EULG/pp6wnk1yWNNLxcCAwEAAToHYmFtdGVjaBKAA2FqHlqkE7EUmdOLiCi0hy5jRgBDJrU1CWNHfH6r2i6s5T5k
      6LK7ZfD65Tv6uyqq1k82PsDz4++kxbpfJDZaypFbae4XPc6lZxRCc5X0toX/x9TftOQQ4N82l5Hxoha569EPRkrnNy7rO7xrRILa3ZVj1alttEnEEjxEuw
      SV8usdlUg8/LvLA2C59T/HA2I77k7yVbTrVdy0f81r2l+E2SslivCy1JD3xKlgoaKl4xBnRxItWt8+DCw1Xm2lemYl2LGoh1Wk9gvlXQvr2Jv2+dFX3RNs
      i5sd00KS9sePszfjoTkQ6fmpRd7ZgFCGFWYB9JZ92aGUFQRE14OTST2uwSf32YCfsoATDNs4V6dB8YDoTGKFGrcoc4gtHPKySGNt7z/fOW4/01ZGzKqoVY
      Fp3jPq7R0qyt5P6fU5NshbLh5VKcnQvwg62BuKsdwV9u4NV36b2a546hGRl/GBneQ+QDA7NRrgITR33Sz02Oq8yJr3sy24GfZRTbtLJ4qiWkjtw==
    
    ## config ( {configVersion}/{clientId}/{deviceFamily}/{sdkVersion}/{applicationRuntime}/{deviceProfile}/{environment} ) ##
    # Browser (windows, chrome) : /browser/v34.2/windows/chrome/prod.json
    # Android Phone : /android/v15.0.0/google/handset/prod.json
    # Android TV : /android/v15.0.0/google/tv/prod.json
    # Amazon Fire TV : /android/v15.0.0/amazon/tv/prod.json
    
    endpoints:
      config: "https://client-sdk-configs.bamgrid.com/bam-sdk/v7.0/disney-svod-3d9324fc/android/v15.0.0/google/tv/prod.json"
    
    ## user_agent (okhttp/5.0.0-alpha.14) ##
    # android-phone : BAMSDK/v15.0.1 (disney-svod-3d9324fc 4.21.1+rc3-2026.01.06.0; v7.0/v15.0.0; android; phone)
    # android-tv : BAMSDK/v15.0.1 (disney-svod-3d9324fc 4.21.1+rc3-2026.01.06.0; v7.0/v15.0.0; android; tv)
    
    ## api_key ##
    # browser : ZGlzbmV5JmJyb3dzZXImMS4wLjA.Cu56AgSfBTDag5NiRA81oLHkDZfu5L3CKadnefEAY84
    # android : ZGlzbmV5JmFuZHJvaWQmMS4wLjA.bkeb0m230uUhv8qrAXuNu39tbE_mD5EEhM_NAcohjyA
    
    ## yp_service_id ##
    # browser : 63626081279ebe65eb50fb54
    # android : 624b805dafc5c73635b1a216
    
    bamsdk:
      sdk_version: "15.0.1"
      application_version: "4.21.1+rc3-2026.01.06.0"
      explore_version: "v1.13"
      client: "disney-svod-3d9324fc"
      user_agent: "BAMSDK/v15.0.1 (disney-svod-3d9324fc 4.21.1+rc3-2026.01.06.0; v7.0/v15.0.0; android; tv)"
      api_key: "ZGlzbmV5JmFuZHJvaWQmMS4wLjA.bkeb0m230uUhv8qrAXuNu39tbE_mD5EEhM_NAcohjyA"
      yp_service_id: "624b805dafc5c73635b1a216"
    
    device:
      family: "android"
      profile: "tv"
      platform: "android/google/tv" # {deviceFamily}/{applicationRuntime}/{deviceProfile}
      platform_id: "android-tv"
      applicationRuntime: "android"
      operatingSystem: "Android"
      operatingSystemVersion: "16"
      deviceLanguage: "ko" # Device language data independent of account language data
    
    # Specifies the index of the profile to use. (0 = first profile, 1 = second profile, etc.)
    # Automatically select a profile when commenting.
    profile:
       index: 2
    Quote Quote  
  7. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    D+ is paid site so we cant talk on this forum
    Quote Quote  
  8. Hi Stabby, thanks for your continued support on the services, is there any chance you can add HMAX to your collection as I've been using your instructions to edit the DSCP to make it work for HMAX.

    Cheers for the help Stabby.
    Last edited by kev043; 4th May 2026 at 08:28.
    Quote Quote  
  9. How does on configure the command line to get a certain audio to download when you have multiple ones to chose from and multiple language? Also specify to just get English subtitles and avoid getting other language subtitles? Thank you in advance.

    I looked at the usage arguments for Devine and this works for me:

    uv run unshackle dl --acodec DD --lang en -sl en -q 540 -w S01E01 SERVICE URL
    Last edited by Tom Saurus; 4th May 2026 at 00:10.
    Quote Quote  
  10. Member
    Join Date
    May 2024
    Location
    Australia
    Search Comp PM
    Originally Posted by Tom Saurus View Post
    Originally Posted by davebee View Post
    So after using devine for the past year, i'm finally making the move to unshackle.
    All working well except for downloads that use n_m3u8dl_re.

    I keep getting this error:
    Code:
         1 Video     └── [H.264, SDR] | en-US | 960x540 @ 1782 kb/s, 23.976 FPS
             ⠏ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • --:-- • Parsing streams...
         1 Audio
         └── [AAC] | en-US | 2.0 | 130 kb/s | United States
             ⠏ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • --:-- • Parsing streams...
    
    
         Widevine(AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQB1oxzyEKT...)
         └── 075a31cf210a4e0fac141dfe26668cce:f0c5249ab18ae2e12c4affe509e218f7*
             from drmlab HTTPAPI
    
    
    
    
         ❌ Download Failed...
            Output directory does not exist: Temp\Video_1710c6ed.mp4_segments
            An unexpected error occurred in one of the download workers.
            See the error trace above for more information.
    The Temp directory is there.
    The other download workers work fine.
    So scratching my head trying to resolve this.

    Any suggestions?
    Back a page or two iamghost posted a link to the binaries needed for Unshackle. Maybe you have not got the correct version of N_m3u8DL-RE installed. It is good you have everything else working in Unshackle. Don't give up you will probably get some help figuring this out.
    I already had the right version (Ran Angela's tools downloader when setting up.)
    Turns out it was a PATH issue as I also had an older version elsewhere that was interferring.
    So found and replaced that and now all working.
    Your suggestion made me look. So thanks for the advice.
    Quote Quote  
  11. Originally Posted by davebee View Post
    Originally Posted by Tom Saurus View Post
    Originally Posted by davebee View Post
    So after using devine for the past year, i'm finally making the move to unshackle.
    All working well except for downloads that use n_m3u8dl_re.

    I keep getting this error:
    Code:
         1 Video     └── [H.264, SDR] | en-US | 960x540 @ 1782 kb/s, 23.976 FPS
             ⠏ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • --:-- • Parsing streams...
         1 Audio
         └── [AAC] | en-US | 2.0 | 130 kb/s | United States
             ⠏ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • --:-- • Parsing streams...
    
    
         Widevine(AAAAVnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADYIARIQB1oxzyEKT...)
         └── 075a31cf210a4e0fac141dfe26668cce:f0c5249ab18ae2e12c4affe509e218f7*
             from drmlab HTTPAPI
    
    
    
    
         ❌ Download Failed...
            Output directory does not exist: Temp\Video_1710c6ed.mp4_segments
            An unexpected error occurred in one of the download workers.
            See the error trace above for more information.
    The Temp directory is there.
    The other download workers work fine.
    So scratching my head trying to resolve this.

    Any suggestions?
    Back a page or two iamghost posted a link to the binaries needed for Unshackle. Maybe you have not got the correct version of N_m3u8DL-RE installed. It is good you have everything else working in Unshackle. Don't give up you will probably get some help figuring this out.
    I already had the right version (Ran Angela's tools downloader when setting up.)
    Turns out it was a PATH issue as I also had an older version elsewhere that was interferring.
    So found and replaced that and now all working.
    Your suggestion made me look. So thanks for the advice.
    It is nice to help as often I am the one asking for help; so it feels good to be of use to others when one can.
    Quote Quote  
  12. Hey guys,

    I am currently struggling with the whole local_storage situation with TVNZ. Any one able to give me a hand? Thanks in advance.


    Code:
    HTTPError: 401 Client Error: Unauthorized for url:
    https://watch-cdn.edge-api.tvnz.co.nz/media/content/authorize
    Last edited by JaxMedia; 5th May 2026 at 00:22.
    Quote Quote  
  13. Image
    [Attachment 92203 - Click to enlarge]


    Use this extension works in chrome or edge to export local storage
    Quote Quote  
  14. Yeah, I have been using that extension.
    Quote Quote  
  15. Member
    Join Date
    Oct 2023
    Location
    Afghanistan
    Search PM
    Originally Posted by JaxMedia View Post
    Yeah, I have been using that extension.
    I exported my local storage file with a couple of different extensions and neither of them would work.

    In the finish I did the manual thing and it worked fine. In your browser press F12 to go to Dev Tools, go to the Console tab, paste in the below and hit enter

    Code:
    Object.assign(document.createElement('a'), {
      href: URL.createObjectURL(new Blob([JSON.stringify({
        accessToken: localStorage.accessToken,
        refreshToken: localStorage.refreshToken,
        deviceref: localStorage.deviceref
      }, null, 2)])),
      download: 'local_storage.json'
    }).click();
    Also pays before you export:

    Go to TVNZ site, log out, then log back in again. Then do the export.

    And make sure you have a separate account for the script. Login to the website once with your new account - do your export, log out and never use that account again in the browser.
    Last edited by billybanana; 5th May 2026 at 03:23. Reason: Edited
    Quote Quote  
  16. Now I receive this error:
    Code:
    ConnectionError: Failed to get contact: {'GetContactResponseMessage':
    {'failureMessage': [{'errorCode': 'eV2124', 'errorMessage': 'Invalid Session
    Token'}], 'responseCode': '0'}}
    Just to clarify:
    1. VPN set to New Zealand
    2. Log out of current account
    3. Login and select profile
    4. F12 > paste code into console
    5. Log out of account, log in to different account
    5. Put local_storage.json file into unshackle/Cache/TVNZ
    6. Run command
    Quote Quote  
  17. I did a git pull to update to the new 5.0 version of Unshackle. It seemed to go fine and then I did the uv sync and that seemed to be fine. However when I do something with Unshackle it says it is version 4.0.0. I did another git pull and it says Unshackle is already up to date. The program seems to working fine. I was kind of concerned about updating as there was a line about ignore binaries and the binaries folder is my preferred way of running the programs that Unshackle uses. I also have to redo my TVNZ local storage cache as that is not working now but that probably has nothing to do with the update.
    Quote Quote  
  18. Member
    Join Date
    Dec 2023
    Location
    Spain
    Search Comp PM
    Looks like version 5 got took back out for now:
    https://github.com/unshackle-dl/unshackle/releases
    Quote Quote  
  19. Originally Posted by mkjustuk View Post
    Looks like version 5 got took back out for now:
    https://github.com/unshackle-dl/unshackle/releases
    Yes you are correct.
    Quote Quote  
  20. Originally Posted by Tom Saurus View Post
    I did a git pull to update to the new 5.0 version of Unshackle. It seemed to go fine and then I did the uv sync and that seemed to be fine. However when I do something with Unshackle it says it is version 4.0.0. I did another git pull and it says Unshackle is already up to date. The program seems to working fine. I was kind of concerned about updating as there was a line about ignore binaries and the binaries folder is my preferred way of running the programs that Unshackle uses. I also have to redo my TVNZ local storage cache as that is not working now but that probably has nothing to do with the update.
    If you specifically 'need' v5 you can pull the dev branch from github. Currently git pull will fetch the main branch, so just tell git to change from main to dev with this:-
    Code:
    git branch -u origin/dev main
    Then issue a 'git pull' and run 'uv sync' to fix the changes.
    Quote Quote  
  21. Thank you for this information. Maybe I better wait and see as he may be working out some kinks in Unshackle 5.0
    Quote Quote  
  22. Some breaking changes have been made to the TVNZ service:

    Instead of the previous way of exporting the local_storage to file and using that to auth, the script now uses the OTP flow to login. You set your credentials in the config like normal, enter the OTP code when prompted, and you're done. No need for browser interference at all, and you should be able to use a single account for everything without messing up any sessions.

    After pulling the update, clear your cache and run the script. You should be good to go.

    As always, read the notes for more info:
    Code:
    unshackle dl TVNZ --help
    Quote Quote  
  23. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    ..nevermind
    Last edited by iamghost; 6th May 2026 at 15:31.
    Quote Quote  
  24. Member
    Join Date
    Sep 2004
    Location
    Australia
    Search Comp PM
    Where can I download services files?
    Quote Quote  
  25. Originally Posted by Shaorin View Post
    Where can I download services files?
    A post on this page from stabbedbybrick has a link to the services at the bottom of the post called "smaller services for Unshackle". Click on that link. In the services folder in Unshackle you can right click and select open in terminal. You scroll down stabbedbybrick's webpage and notice there is a line there about git clone. You select that line of code and paste that into your terminal and it will download a folder of services.
    Quote Quote  
  26. Unfortunately, this has not fixed my 401 Client Error issue.

    This is my log:

    Service Config loaded
    Successfully loaded vault: Local (SQLite)
    Loaded 1/1 Vaults
    Active vaults: Local
    Loaded Widevine CDM: 22589 (L3)
    Starting new HTTPS connection (1): api.nordvpn.com:443
    https://api.nordvpn.com:443 "GET /v1/servers/countries HTTP/1.1" 200
    None
    Loaded Basic: 3 Countries (3 Servers)
    Loaded NordVPN: 137 Countries (9421 Servers)

    ────────────────────────────── Service: TVNZ ───────────────────────────────

    Starting new HTTPS connection (1): ipinfo.io:443
    https://ipinfo.io:443 "GET /json HTTP/1.1" 200 None
    Service is not Geoblocked in your region
    - No cached user tokens found, setting up new login...
    Starting new HTTPS connection (1): rest-prod-tvnz.evergentpd.com:443
    https://rest-prod-tvnz.evergentpd.com:443 "POST /tvnz/createOTP
    HTTP/1.1" 200 123
    + OTP code was sent to your email address
    Enter OTP code: 123333
    https://rest-prod-tvnz.evergentpd.com:443 "POST /tvnz/confirmOTP
    HTTP/1.1" 200 1735
    https://rest-prod-tvnz.evergentpd.com:443 "POST /tvnz/getEntitlements
    HTTP/1.1" 200 1439
    Starting new HTTPS connection (1): watch-cdn.edge-api.tvnz.co.nz:443
    https://watch-cdn.edge-api.tvnz.co.nz:443 "POST /oauth2/token
    HTTP/1.1" 200 1212
    https://watch-cdn.edge-api.tvnz.co.nz:443 "POST /device/app/register
    HTTP/1.1" 200 267
    Authenticated with Service
    Cache miss for https://tvnz.co.nz/player/tvepisode/blue-murder-motel-1
    fetching fresh data
    Starting new HTTPS connection (1):
    data-store-cdn.cms-api.tvnz.co.nz:443
    https://data-store-cdn.cms-api.tvnz.co.nz:443 "GET
    /content/urn/resource/catalog/tvepisode/blue-murder-motel-1?reg=nz&dt=
    androidtv&client=tvnz-tvnz-androidtv&pf=Regular&allowpg=true HTTP/1.1"
    200 1531
    Successfully fetched titles for
    https://tvnz.co.nz/player/tvepisode/blue-murder-motel-1, updating
    cache

    ──────────────────────── Series: Blue Murder Motel ─────────────────────────

    1 seasons, S1(1)

    ──────────────────── Blue Murder Motel S01E01 Party Boy ────────────────────

    Searching IMDBApi for 'Blue Murder Motel' (tv, None)
    Starting new HTTPS connection (1): api.imdbapi.dev:443
    https://api.imdbapi.dev:443 "GET
    /search/titles?query=Blue+Murder+Motel&limit=20 HTTP/1.1" 200 None
    IMDBApi -> Blue Murder Motel (ID tt38772225)
    Cached imdbapi data for
    https://tvnz.co.nz/player/tvepisode/blue-murder-motel-1
    https://watch-cdn.edge-api.tvnz.co.nz:443 "POST
    /media/content/authorize HTTP/1.1" 401 208
    ╭───────────────────── Traceback (most recent call last) ──────────────────────╮
    │ C:\Users\oraba\AppData\Local\Programs\Python\Pytho n310\lib\runpy.py:196 in │
    │ _run_module_as_main │
    │ │
    │ 193 │ main_globals = sys.modules["__main__"].__dict__ │
    │ 194 │ if alter_argv: │
    │ 195 │ │ sys.argv[0] = mod_spec.origin │
    │ ❱ 196 │ return _run_code(code, main_globals, None, │
    │ 197 │ │ │ │ │ "__main__", mod_spec) │
    │ 198 │
    │ 199 def run_module(mod_name, init_globals=None, │
    │ │
    │ C:\Users\oraba\AppData\Local\Programs\Python\Pytho n310\lib\runpy.py:86 in │
    │ _run_code │
    │ │
    │ 83 │ │ │ │ │ __loader__ = loader, │
    │ 84 │ │ │ │ │ __package__ = pkg_name, │
    │ 85 │ │ │ │ │ __spec__ = mod_spec) │
    │ ❱ 86 │ exec(code, run_globals) │
    │ 87 │ return run_globals │
    │ 88 │
    │ 89 def _run_module_code(code, init_globals=None, │
    │ │
    │ in <module>:10 │
    │ │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1514 in __call__ │
    │ │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1435 in main │
    │ │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1902 in invoke │
    │ │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1902 in invoke │
    │ │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1871 in _process_result │
    │ │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:853 in invoke │
    │ │
    │ C:\unshackle\unshackle\commands\dl.py:1367 in result │
    │ │
    │ 1364 │ │ │ │
    │ 1365 │ │ │ with console.status("Getting tracks...", spinner="dots"): │
    │ 1366 │ │ │ │ try: │
    │ ❱ 1367 │ │ │ │ │ title.tracks.add(service.get_tracks(title), warn_ │
    │ 1368 │ │ │ │ │ title.tracks.chapters = service.get_chapters(titl │
    │ 1369 │ │ │ │ except Exception as e: │
    │ 1370 │ │ │ │ │ if self.debug_logger: │
    │ │
    │ C:\unshackle\unshackle\services\TVNZ\__init__.py:2 26 in get_tracks │
    │ │
    │ 223 │ │ │ json=json_data, │
    │ 224 │ │ │ timeout=30, │
    │ 225 │ │ ) │
    │ ❱ 226 │ │ response.raise_for_status() │
    │ 227 │ │ data = response.json() │
    │ 228 │ │ if data.get("header", {}).get("message", "").lower() != "succe │
    │ 229 │ │ │ raise ConnectionError(f"Failed to authorize playback: {dat │
    │ │
    │ C:\unshackle\.venv\lib\site-packages\requests\models.py:1028 in │
    │ raise_for_status │
    │ │
    │ 1025 │ │ │ ) │
    │ 1026 │ │ │
    │ 1027 │ │ if http_error_msg: │
    │ ❱ 1028 │ │ │ raise HTTPError(http_error_msg, response=self) │
    │ 1029 │ │
    │ 1030 │ def close(self): │
    │ 1031 │ │ """Releases the connection back to the pool. Once this method │
    ╰───────────────────────────────────────────────── ─────────────────────────────╯
    HTTPError: 401 Client Error: Unauthorized for url:
    https://watch-cdn.edge-api.tvnz.co.nz/media/content/authorize
    Last edited by JaxMedia; 10th May 2026 at 20:18.
    Quote Quote  
  27. 2nd Army Bridgeburners. WhiskeyJack's Avatar
    Join Date
    Aug 2024
    Location
    Torshavn
    Search PM
    you might want to check your set up.

    Code:
    unshackle dl -w s01e01 tvnz  https://tvnz.co.nz/tvseries/blue-murder-motel
                                                                                    
                    ▄• ▄▌ ▐ ▄ .▄▄ ·  ▄ .▄ ▄▄▄·  ▄▄· ▄ •▄ ▄▄▌  ▄▄▄ .                 
                    █▪██▌•█▌▐█▐█ ▀. ██▪▐█▐█ ▀█ ▐█ ▌▪█▌▄▌▪██•  ▀▄.▀·                 
                    █▌▐█▌▐█▐▐▌▄▀▀▀█▄██▀▐█▄█▀▀█ ██ ▄▄▐▀▀▄·██▪  ▐▀▀▪▄                 
                    ▐█▄█▌██▐█▌▐█▄▪▐███▌▐▀▐█ ▪▐▌▐███▌▐█.█▌▐█▌▐▌▐█▄▄▌                 
                     ▀▀▀ ▀▀ █▪ ▀▀▀▀ ▀▀▀ · ▀  ▀ ·▀▀▀ ·▀  ▀.▀▀▀  ▀▀▀                  
               v 5.0.0 - © 2025-2026 - github.com/unshackle-dl/unshackle            
                                                                                    
         Service Config loaded                                                      
         Loaded 1/1 Vaults                                                          
         Loaded Widevine CDM: 8162 (L3)                                             
                                                                                    
      ────────────────────────────── Service: TVNZ ───────────────────────────────  
                                                                                    
         Service is Geoblocked in your region, getting a Proxy to nz                
          + Using cached user tokens                                                
         Authenticated with Service                                                 
                                                                                    
      ──────────────────────── Series: Blue Murder Motel ─────────────────────────  
                                                                                    
         1 seasons, S1(8)                                                           
                                                                                    
      ──────────────────── Blue Murder Motel S01E01 Party Boy ────────────────────  
                                                                                    
         Cached 1 Key to 1/1 Vaults                                                 
                                                                                    
         1 Video                                                                    
         └── [H.264, SDR] | en | 1920x1080 @ 4000 kb/s, 25.000 FPS                  
              ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • 04:18 • Downloaded         
         1 Audio                                                                    
         └── [AAC] | en | 2.0 | 128 kb/s                                            
              ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • 04:13 • Downloaded         
         2 Subtitles                                                                
         ├── [WVTT] | en                                                            
         │    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • 03:13 • Downloaded         
         └── [VTT] | en                                                             
              ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • 00:08 • Downloaded         
         2 Chapters                                                                 
         ├── 00:00:00.000                                                           
         └── 00:45:29.000 | Credits                                                 
                                                                                    
         Widevine(AAAAXHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADwIARIQDvvDlJzqT...)     
         └── 0efbc3949cea4dc888a353da190fcaac:36c4d63205ec58fca1f45680e98aae3a*     
                                                                                    
         Track downloads finished in 4m18s                                          
         Multiplexing...  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ • 00:11 •        
                                                                                    
         🎉 Title downloaded in 4m30s!                                              
                                                                                    
         Processed all titles in 4m44s
    Quote Quote  
  28. Any suggestions on what to check for? I believe my setup is 100%. This is the only service I have issues with and the same issue for TVNZ applies to Ozivine as well.
    Quote Quote  
  29. 2nd Army Bridgeburners. WhiskeyJack's Avatar
    Join Date
    Aug 2024
    Location
    Torshavn
    Search PM
    Originally Posted by JaxMedia View Post
    Any suggestions on what to check for? I believe my setup is 100%. This is the only service I have issues with and the same issue for TVNZ applies to Ozivine as well.
    Might want to check your vpn. Disable it and use the service linked proxy. I'm not in NZ, and didn't use a vpn to download the above.
    Quote Quote  
  30. Code:
    C:\unshackle>uv run unshackle dl --proxy=nz TVNZ https://tvnz.co.nz/player/tvepisode/blue-murder-motel-1
    
                    ▄• ▄▌ ▐ ▄ .▄▄ ·  ▄ .▄ ▄▄▄·  ▄▄· ▄ •▄ ▄▄▌  ▄▄▄ .
                    █▪██▌•█▌▐█▐█ ▀. ██▪▐█▐█ ▀█ ▐█ ▌▪█▌▄▌▪██•  ▀▄.▀·
                    █▌▐█▌▐█▐▐▌▄▀▀▀█▄██▀▐█▄█▀▀█ ██ ▄▄▐▀▀▄·██▪  ▐▀▀▪▄
                    ▐█▄█▌██▐█▌▐█▄▪▐███▌▐▀▐█ ▪▐▌▐███▌▐█.█▌▐█▌▐▌▐█▄▄▌
                     ▀▀▀ ▀▀ █▪ ▀▀▀▀ ▀▀▀ · ▀  ▀ ·▀▀▀ ·▀  ▀.▀▀▀  ▀▀▀
               v 4.0.0 - © 2025-2026 - github.com/unshackle-dl/unshackle
    
         Service Config loaded
         Loaded 1/1 Vaults
         Loaded Widevine CDM: 22589 (L3)
         Loaded Basic: 3 Countries (3 Servers)
         Loaded NordVPN: 137 Countries (9426 Servers)
         Using NordVPN Proxy:
         https://ZYojX6L8i8n2ahGkPtsszaoj:shGEHn94m1PvuBPVwq47e4Mp@nz107.proxy.
         nordvpn.com:89
    
      ────────────────────────────── Service: TVNZ ───────────────────────────────
    
          + Using cached user tokens
         Authenticated with Service
    
      ──────────────────────── Series: Blue Murder Motel ─────────────────────────
    
         1 seasons, S1(1)
    
      ──────────────────── Blue Murder Motel S01E01 Party Boy ────────────────────
    
    ╭───────────────────── Traceback (most recent call last) ──────────────────────╮
    │ C:\Users\oraba\AppData\Local\Programs\Python\Python310\lib\runpy.py:196 in   │
    │ _run_module_as_main                                                          │
    │                                                                              │
    │   193 │   main_globals = sys.modules["__main__"].__dict__                    │
    │   194 │   if alter_argv:                                                     │
    │   195 │   │   sys.argv[0] = mod_spec.origin                                  │
    │ ❱ 196 │   return _run_code(code, main_globals, None,                         │
    │   197 │   │   │   │   │    "__main__", mod_spec)                             │
    │   198                                                                        │
    │   199 def run_module(mod_name, init_globals=None,                            │
    │                                                                              │
    │ C:\Users\oraba\AppData\Local\Programs\Python\Python310\lib\runpy.py:86 in    │
    │ _run_code                                                                    │
    │                                                                              │
    │    83 │   │   │   │   │      __loader__ = loader,                            │
    │    84 │   │   │   │   │      __package__ = pkg_name,                         │
    │    85 │   │   │   │   │      __spec__ = mod_spec)                            │
    │ ❱  86 │   exec(code, run_globals)                                            │
    │    87 │   return run_globals                                                 │
    │    88                                                                        │
    │    89 def _run_module_code(code, init_globals=None,                          │
    │                                                                              │
    │ in <module>:10                                                               │
    │                                                                              │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1514 in __call__          │
    │                                                                              │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1435 in main              │
    │                                                                              │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1902 in invoke            │
    │                                                                              │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1902 in invoke            │
    │                                                                              │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:1871 in _process_result   │
    │                                                                              │
    │ C:\unshackle\.venv\lib\site-packages\click\core.py:853 in invoke             │
    │                                                                              │
    │ C:\unshackle\unshackle\commands\dl.py:1367 in result                         │
    │                                                                              │
    │   1364 │   │   │                                                             │
    │   1365 │   │   │   with console.status("Getting tracks...", spinner="dots"): │
    │   1366 │   │   │   │   try:                                                  │
    │ ❱ 1367 │   │   │   │   │   title.tracks.add(service.get_tracks(title), warn_ │
    │   1368 │   │   │   │   │   title.tracks.chapters = service.get_chapters(titl │
    │   1369 │   │   │   │   except Exception as e:                                │
    │   1370 │   │   │   │   │   if self.debug_logger:                             │
    │                                                                              │
    │ C:\unshackle\unshackle\services\TVNZ\__init__.py:226 in get_tracks           │
    │                                                                              │
    │   223 │   │   │   json=json_data,                                            │
    │   224 │   │   │   timeout=30,                                                │
    │   225 │   │   )                                                              │
    │ ❱ 226 │   │   response.raise_for_status()                                    │
    │   227 │   │   data = response.json()                                         │
    │   228 │   │   if data.get("header", {}).get("message", "").lower() != "succe │
    │   229 │   │   │   raise ConnectionError(f"Failed to authorize playback: {dat │
    │                                                                              │
    │ C:\unshackle\.venv\lib\site-packages\requests\models.py:1028 in              │
    │ raise_for_status                                                             │
    │                                                                              │
    │   1025 │   │   │   )                                                         │
    │   1026 │   │                                                                 │
    │   1027 │   │   if http_error_msg:                                            │
    │ ❱ 1028 │   │   │   raise HTTPError(http_error_msg, response=self)            │
    │   1029 │                                                                     │
    │   1030 │   def close(self):                                                  │
    │   1031 │   │   """Releases the connection back to the pool. Once this method │
    ╰──────────────────────────────────────────────────────────────────────────────╯
    HTTPError: 401 Client Error: Unauthorized for url:
    https://watch-cdn.edge-api.tvnz.co.nz/media/content/authorize
    Proxy only.
    Last edited by JaxMedia; 11th May 2026 at 14:46.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!