VideoHelp Forum



Support our site by donate $5 directly to us Thanks!!!

Try StreamFab Downloader and download streaming video from Netflix, Amazon!



+ Reply to Thread
Page 12 of 12
FirstFirst ... 2 10 11 12
Results 331 to 351 of 351
  1. So I've installed unshackle, total newbie here. What do I do now to download as this doesn't work. Obviously I have blanked out the url

    run unshackle dl https://xxxxxxxx/episode/xxxx/xxxxxxxxxxx
    Quote Quote  
  2. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    uv run unshackle dl -w s01e01 itv https://xxxxxxxx/episode/xxxx/xxxxxxxxxxx

    you must have all binaries and services to make it work

    service:
    https://forum.videohelp.com/threads/418705-Unshackle-Modular-Movie-TV-and-Music-Archiv...e9#post2782045

    and also create new unshackle.yaml to add things
    Last edited by iamghost; 28th Oct 2025 at 16:30.
    Quote Quote  
  3. Originally Posted by iamghost View Post
    uv run unshackle dl -w s01e01 itv https://xxxxxxxx/episode/xxxx/xxxxxxxxxxx

    you must have all binaries and services to make it work

    service:
    https://forum.videohelp.com/threads/418705-Unshackle-Modular-Movie-TV-and-Music-Archiv...e9#post2782045

    and also create new unshackle.yaml to add things
    I appear to have done this but nothing works. I've copied the SERVICES folder into unshakable-main, what is meant to be in unshackle.yaml ? You'll have to be a lot more clearer, no idea about any of this
    Last edited by tvdownloaderfan; 28th Oct 2025 at 16:52.
    Quote Quote  
  4. Even though I've installed MKVToolNix it still shows I haven't ??

    Image
    [Attachment 89418 - Click to enlarge]
    Quote Quote  
  5. Almost there but I can't get MKVToolNix installed

    Image
    [Attachment 89423 - Click to enlarge]
    Last edited by tvdownloaderfan; 28th Oct 2025 at 19:07.
    Quote Quote  
  6. Member
    Join Date
    Dec 2022
    Location
    Lesotho
    Search Comp PM
    Originally Posted by tvdownloaderfan View Post
    Almost there but I can't get MKVToolNix installed

    Image
    [Attachment 89423 - Click to enlarge]

    Is that folder in your path (C:\Program Files\MKVToolNix)? Or alternatively put mkvmerge.exe in the binaries folder.
    Quote Quote  
  7. Originally Posted by sipho View Post
    Originally Posted by tvdownloaderfan View Post
    Almost there but I can't get MKVToolNix installed

    Image
    [Attachment 89423 - Click to enlarge]

    Is that folder in your path (C:\Program Files\MKVToolNix)? Or alternatively put mkvmerge.exe in the binaries folder.
    Ok that worked but not sure my unshackle.yaml is as it should be ?
    Quote Quote  
  8. Member
    Join Date
    Dec 2022
    Location
    Lesotho
    Search Comp PM
    Originally Posted by tvdownloaderfan View Post

    Ok that worked but not sure my unshackle.yaml is as it should be ?

    If you use the unshackle-example.yaml and then save it as unshackle.yaml, the only critical sections are the CDM and Services. The rest are for you to tinker with. Use BBC as a test as it doesn't use the CDM and no authentication is required but you need to have the services folder with at a minimum, iP as the first service config.
    Quote Quote  
  9. Originally Posted by sipho View Post
    Originally Posted by tvdownloaderfan View Post

    Ok that worked but not sure my unshackle.yaml is as it should be ?

    If you use the unshackle-example.yaml and then save it as unshackle.yaml, the only critical sections are the CDM and Services. The rest are for you to tinker with. Use BBC as a test as it doesn't use the CDM and no authentication is required but you need to have the services folder with at a minimum, iP as the first service config.
    No idea what you mean. What and where do I add for BBC ITV STV ch4 and ch 5 ?


    # Set terminal background color (custom option not in CONFIG.md)
    set_terminal_bg: false

    # Set file naming convention
    # true for style - Prime.Suspect.S07E01.The.Final.Act.Part.One.1080p. ITV.WEB-DL.AAC2.0.H.264
    # false for style - Prime Suspect S07E01 The Final Act - Part One
    scene_naming: true

    # Whether to include the year in series names for episodes and folders (default: true)
    # true for style - Show Name (2023) S01E01 Episode Name
    # false for style - Show Name S01E01 Episode Name
    series_year: true

    # Check for updates from GitHub repository on startup (default: true)
    update_checks: true

    # How often to check for updates, in hours (default: 24)
    update_check_interval: 24

    # Title caching configuration
    # Cache title metadata to reduce redundant API calls
    title_cache_enabled: true # Enable/disable title caching globally (default: true)
    title_cache_time: 1800 # Cache duration in seconds (default: 1800 = 30 minutes)
    title_cache_max_retention: 86400 # Maximum cache retention for fallback when API fails (default: 86400 = 24 hours)

    # Muxing configuration
    muxing:
    set_title: false

    # Login credentials for each Service
    credentials:
    # Direct credentials (no profile support)
    EXAMPLE: email@example.comassword

    # Per-profile credentials with default fallback
    SERVICE_NAME:
    default: default@email.comassword # Used when no -p/--profile is specified
    profile1: user1@email.comassword1
    profile2: user2@email.comassword2

    # Per-profile credentials without default (requires -p/--profile)
    SERVICE_NAME2:
    john: john@example.com:johnspassword
    jane: jane@example.com:janespassword

    # You can also use list format for passwords with special characters
    SERVICE_NAME3:
    default: ["user@email.com", ":PasswordWith:Colons"]

    # Override default directories used across unshackle
    directories:
    cache: Cache
    cookies: Cookies
    dcsl: DCSL # Device Certificate Status List
    downloads: Downloads
    logs: Logs
    temp: Temp
    wvds: WVDs
    prds: PRDs
    # Additional directories that can be configured:
    # commands: Commands
    services:
    - /path/to/services
    - /other/path/to/services
    # vaults: Vaults
    # fonts: Fonts

    # Pre-define which Widevine or PlayReady device to use for each Service
    cdm:
    # Global default CDM device (fallback for all services/profiles)
    default: WVD_1

    # Direct service-specific CDM
    DIFFERENT_EXAMPLE: PRD_1

    # Per-profile CDM configuration
    EXAMPLE:
    john_sd: chromecdm_903_l3 # Profile 'john_sd' uses Chrome CDM L3
    jane_uhd: nexus_5_l1 # Profile 'jane_uhd' uses Nexus 5 L1
    default: generic_android_l3 # Default CDM for this service

    # NEW: Quality-based CDM selection
    # Use different CDMs based on video resolution
    # Supports operators: >=, >, <=, <, or exact match
    EXAMPLE_QUALITY:
    "<=1080": generic_android_l3 # Use L3 for 1080p and below
    ">1080": nexus_5_l1 # Use L1 for above 1080p (1440p, 2160p)
    default: generic_android_l3 # Optional: fallback if no quality match

    # You can mix profiles and quality thresholds in the same service
    NETFLIX:
    # Profile-based selection (existing functionality)
    john: netflix_l3_profile
    jane: netflix_l1_profile
    # Quality-based selection (new functionality)
    "<=720": netflix_mobile_l3
    "1080": netflix_standard_l3
    ">=1440": netflix_premium_l1
    # Fallback
    default: netflix_standard_l3

    # Use pywidevine Serve-compliant Remote CDMs
    remote_cdm:
    - name: "chrome"
    device_name: chrome
    device_type: CHROME
    system_id: 27175
    security_level: 3
    host: https://domain.com/api
    secret: secret_key
    - name: "chrome-2"
    device_name: chrome
    device_type: CHROME
    system_id: 26830
    security_level: 3
    host: https://domain-2.com/api
    secret: secret_key

    - name: "decrypt_labs_chrome"
    type: "decrypt_labs" # Required to identify as DecryptLabs CDM
    device_name: "ChromeCDM" # Scheme identifier - must match exactly
    device_type: CHROME
    system_id: 4464 # Doesn't matter
    security_level: 3
    host: "https://keyxtractor.decryptlabs.com"
    secret: "your_decrypt_labs_api_key_here" # Replace with your API key
    - name: "decrypt_labs_l1"
    type: "decrypt_labs"
    device_name: "L1" # Scheme identifier - must match exactly
    device_type: ANDROID
    system_id: 4464
    security_level: 1
    host: "https://keyxtractor.decryptlabs.com"
    secret: "your_decrypt_labs_api_key_here"

    - name: "decrypt_labs_l2"
    type: "decrypt_labs"
    device_name: "L2" # Scheme identifier - must match exactly
    device_type: ANDROID
    system_id: 4464
    security_level: 2
    host: "https://keyxtractor.decryptlabs.com"
    secret: "your_decrypt_labs_api_key_here"

    - name: "decrypt_labs_playready_sl2"
    type: "decrypt_labs"
    device_name: "SL2" # Scheme identifier - must match exactly
    device_type: PLAYREADY
    system_id: 0
    security_level: 2000
    host: "https://keyxtractor.decryptlabs.com"
    secret: "your_decrypt_labs_api_key_here"

    - name: "decrypt_labs_playready_sl3"
    type: "decrypt_labs"
    device_name: "SL3" # Scheme identifier - must match exactly
    device_type: PLAYREADY
    system_id: 0
    security_level: 3000
    host: "https://keyxtractor.decryptlabs.com"
    secret: "your_decrypt_labs_api_key_here"

    # Key Vaults store your obtained Content Encryption Keys (CEKs)
    # Use 'no_push: true' to prevent a vault from receiving pushed keys
    # while still allowing it to provide keys when requested
    key_vaults:
    - type: SQLite
    name: Local
    path: key_store.db
    # Additional vault types:
    # - type: API
    # name: "Remote Vault"
    # uri: "https://key-vault.example.com"
    # token: "secret_token"
    # no_push: true # This vault will only provide keys, not receive them
    # - type: MySQL
    # name: "MySQL Vault"
    # host: "127.0.0.1"
    # port: 3306
    # database: vault
    # username: user
    # password: pass
    # no_push: false # Default behavior - vault both provides and receives keys

    # Choose what software to use to download data
    downloader: aria2c
    # Options: requests | aria2c | curl_impersonate | n_m3u8dl_re
    # Can also be a mapping:
    # downloader:
    # NF: requests
    # AMZN: n_m3u8dl_re
    # DSNP: n_m3u8dl_re
    # default: requests

    # aria2c downloader configuration
    aria2c:
    max_concurrent_downloads: 4
    max_connection_per_server: 3
    split: 5
    file_allocation: falloc # none | prealloc | falloc | trunc

    # N_m3u8DL-RE downloader configuration
    n_m3u8dl_re:
    thread_count: 16
    ad_keyword: "advertisement"
    use_proxy: true

    # curl_impersonate downloader configuration
    curl_impersonate:
    browser: chrome120

    # Pre-define default options and switches of the dl command
    dl:
    sub_format: srt
    downloads: 4
    workers: 16
    lang:
    - en
    - fr
    EXAMPLE:
    bitrate: CBR

    # Chapter Name to use when exporting a Chapter without a Name
    chapter_fallback_name: "Chapter {j:02}"

    # Case-Insensitive dictionary of headers for all Services
    headers:
    Accept-Language: "en-US,en;q=0.8"
    User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"

    # Override default filenames used across unshackle
    filenames:
    log: "unshackle_{name}_{time}.log"
    config: "config.yaml"
    root_config: "unshackle.yaml"
    chapters: "Chapters_{title}_{random}.txt"
    subtitle: "Subtitle_{id}_{language}.srt"

    # API key for The Movie Database (TMDB)
    tmdb_api_key: ""

    # conversion_method:
    # - auto (default): Smart routing - subby for WebVTT/SAMI, standard for others
    # - subby: Always use subby with advanced processing
    # - pycaption: Use only pycaption library (no SubtitleEdit, no subby)
    # - subtitleedit: Prefer SubtitleEdit when available, fall back to pycaption
    # - pysubs2: Use pysubs2 library (supports SRT/SSA/ASS/WebVTT/TTML/SAMI/MicroDVD/MPL2/TMP)
    subtitle:
    conversion_method: auto
    sdh_method: auto

    # Configuration for pywidevine's serve functionality
    serve:
    users:
    secret_key_for_user:
    devices:
    - generic_nexus_4464_l3
    username: user
    # devices:
    # - '/path/to/device.wvd'

    # Configuration data for each Service
    services:
    # Service-specific configuration goes here
    # Profile-specific configurations can be nested under service names

    # Example: with profile-specific device configs
    EXAMPLE:
    # Global service config
    api_key: "service_api_key"

    # Service certificate for Widevine L1/L2 (base64 encoded)
    # This certificate is automatically used when L1/L2 schemes are selected
    # Services obtain this from their DRM provider or license server
    certificate: |
    CAUSwwUKvQIIAxIQ5US6QAvBDzfTtjb4tU/7QxiH8c+TBSKOAjCCAQoCggEBAObzvlu2hZRsapAPx4Aa4GUZj 4/GjxgXUtBH4THSkM40x63wQeyVxlEEo
    # ... (full base64 certificate here)

    # Profile-specific device configurations
    profiles:
    john_sd:
    device:
    app_name: "AIV"
    device_model: "SHIELD Android TV"
    jane_uhd:
    device:
    app_name: "AIV"
    device_model: "Fire TV Stick 4K"

    # Example: Service with different regions per profile
    SERVICE_NAME:
    profiles:
    us_account:
    region: "US"
    api_endpoint: "https://api.us.service.com"
    uk_account:
    region: "GB"
    api_endpoint: "https://api.uk.service.com"

    # External proxy provider services
    proxy_providers:
    nordvpn:
    username: username_from_service_credentials
    password: password_from_service_credentials
    server_map:
    us: 12 # force US server #12 for US proxies
    surfsharkvpn:
    username: your_surfshark_service_username # Service credentials from https://my.surfshark.com/vpn/manual-setup/main/openvpn
    password: your_surfshark_service_password # Service credentials (not your login password)
    server_map:
    us: 3844 # force US server #3844 for US proxies
    gb: 2697 # force GB server #2697 for GB proxies
    au: 4621 # force AU server #4621 for AU proxies
    basic:
    GB:
    - "socks5://usernameassword@bhx.socks.ipvanish.com:1080" # 1 (Birmingham)
    - "socks5://usernameassword@gla.socks.ipvanish.com:1080" # 2 (Glasgow)
    AU:
    - "socks5://usernameassword@syd.socks.ipvanish.com:1080" # 1 (Sydney)
    - "https://usernameassword@au-syd.prod.surfshark.com" # 2 (Sydney)
    - "https://usernameassword@au-bne.prod.surfshark.com" # 3 (Brisbane)
    BG: "https://usernameassword@bg-sof.prod.surfshark.com"
    Quote Quote  
  10. Member
    Join Date
    Oct 2025
    Location
    Paraguay
    Search PM
    Originally Posted by TGreatOne View Post
    Hello to all.

    I keep getting a "shaka-packager has stopped working" message after Unshackled finishes downloading both the video and audio for some reason (together and separately), downloading the subs alone work fine though. Has anyone else faced that issue?

    I'm using the latest version of shaka-packager atm, which is the v3.4.2.

    Any help would be greatly appreciated
    I swapped out the version of shaka-packager to v2.6.1 from, as suggested by this Github page (https://github.com/stabbedbybrick/services). The previous error message is now gone, but now it has been replaced by the following one.

    ╭───────────────────── Traceback (most recent call last) ──────────────────────╮
    │ C:\Windows\System32\unshackle\unshackle\commands\d l.py:1009 in result │
    │ │
    │ 1006 │ │ │ │ │ │ │ │ for i, track in enumerate(title.track │
    │ 1007 │ │ │ │ │ │ │ ) │
    │ 1008 │ │ │ │ │ │ ): │
    │ ❱ 1009 │ │ │ │ │ │ │ download.result() │
    │ 1010 │ │ │ except KeyboardInterrupt: │
    │ 1011 │ │ │ │ console.print(Padding(": Download Cancelled...", (0 │
    │ 1012 │ │ │ │ return │
    │ │
    │ C:\Users\dasilva\AppData\Roaming\uv\python\cpython-3.12.12-windows-x86_64-no │
    │ ne\Lib\concurrent\futures\_base.py:449 in result │
    │ │
    │ 446 │ │ │ │ if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]: │
    │ 447 │ │ │ │ │ raise CancelledError() │
    │ 448 │ │ │ │ elif self._state == FINISHED: │
    │ ❱ 449 │ │ │ │ │ return self.__get_result() │
    │ 450 │ │ │ │ │
    │ 451 │ │ │ │ self._condition.wait(timeout) │
    │ 452 │
    │ │
    │ C:\Users\dasilva\AppData\Roaming\uv\python\cpython-3.12.12-windows-x86_64-no │
    │ ne\Lib\concurrent\futures\_base.py:401 in __get_result │
    │ │
    │ 398 │ def __get_result(self): │
    │ 399 │ │ if self._exception: │
    │ 400 │ │ │ try: │
    │ ❱ 401 │ │ │ │ raise self._exception │
    │ 402 │ │ │ finally: │
    │ 403 │ │ │ │ # Break a reference cycle with the exception in self._ │
    │ 404 │ │ │ │ self = None │
    │ │
    │ C:\Users\dasilva\AppData\Roaming\uv\python\cpython-3.12.12-windows-x86_64-no │
    │ ne\Lib\concurrent\futures\thread.py:59 in run │
    │ │
    │ 56 │ │ │ return │
    │ 57 │ │ │
    │ 58 │ │ try: │
    │ ❱ 59 │ │ │ result = self.fn(*self.args, **self.kwargs) │
    │ 60 │ │ except BaseException as exc: │
    │ 61 │ │ │ self.future.set_exception(exc) │
    │ 62 │ │ │ # Break a reference cycle with the exception 'exc' │
    │ │
    │ C:\Windows\System32\unshackle\unshackle\core\track s\track.py:249 in download │
    │ │
    │ 246 │ │ │ │ │ cdm=cdm, │
    │ 247 │ │ │ │ ) │
    │ 248 │ │ │ elif self.descriptor == self.Descriptor.DASH: │
    │ ❱ 249 │ │ │ │ DASH.download_track( │
    │ 250 │ │ │ │ │ track=self, │
    │ 251 │ │ │ │ │ save_path=save_path, │
    │ 252 │ │ │ │ │ save_dir=save_dir, │
    │ │
    │ C:\Windows\System32\unshackle\unshackle\core\manif ests\dash.py:564 in │
    │ download_track │
    │ │
    │ 561 │ │ │
    │ 562 │ │ if drm: │
    │ 563 │ │ │ progress(downloaded="Decrypting", completed=0, total=100) │
    │ ❱ 564 │ │ │ drm.decrypt(save_path) │
    │ 565 │ │ │ track.drm = None │
    │ 566 │ │ │ events.emit(events.Types.TRACK_DECRYPTED, track=track, drm │
    │ 567 │ │ │ progress(downloaded="Decrypting", advance=100) │
    │ │
    │ C:\Windows\System32\unshackle\unshackle\core\drm\w idevine.py:267 in decrypt │
    │ │
    │ 264 │ │ if decrypter == "mp4decrypt": │
    │ 265 │ │ │ return self._decrypt_with_mp4decrypt(path) │
    │ 266 │ │ else: │
    │ ❱ 267 │ │ │ return self._decrypt_with_shaka_packager(path) │
    │ 268 │ │
    │ 269 │ def _decrypt_with_mp4decrypt(self, path: Path) -> None: │
    │ 270 │ │ """Decrypt using mp4decrypt""" │
    │ │
    │ C:\Windows\System32\unshackle\unshackle\core\drm\w idevine.py:374 in │
    │ _decrypt_with_shaka_packager │
    │ │
    │ 371 │ │ │ p.wait() │
    │ 372 │ │ │ │
    │ 373 │ │ │ if p.returncode != 0 or had_error: │
    │ ❱ 374 │ │ │ │ raise subprocess.CalledProcessError(p.returncode, argu │
    │ 375 │ │ │ │
    │ 376 │ │ │ path.unlink() │
    │ 377 │ │ │ if not stream_skipped: │
    ╰───────────────────────────────────────────────── ─────────────────────────────╯
    CalledProcessError: Command
    '['input=E:\\Unshackle\\Temp\\Audio_f9bc085b.mp4,str eam=0,output=E:\\Unshackle\\
    Temp\\Audio_f9bc085b_decrypted.mp4,output_format=M P4',
    '--enable_raw_key_decryption', '--keys',
    'label=0:key_id=00000000000000000000000004122381:k ey=c42487fc7bb540c70d2c7f691f8
    578a8,label=1:key_id=00000000000000000000000000000 000:key=c42487fc7bb540c70d2c7f
    691f8578a8', '--temp_dir', WindowsPath('E:/Unshackle/Temp')]' returned non-zero
    exit status 1.

    ❌ Download Failed...
    An unexpected error occurred in one of the download workers.
    Binary call failed, Process exit code: 1
    See the error trace above for more information.
    I looked through the thread and couldn't find the same error. Suggestions are welcome

    Edit: After looking in the older Devine thread, I saw someone suggest v3.2.0 around a year ago, that finally one fixed the issue. All of the shaka-packager versions that came out afterwards crash for some reason.
    Last edited by TGreatOne; 29th Oct 2025 at 09:10.
    Quote Quote  
  11. Member
    Join Date
    Dec 2022
    Location
    Lesotho
    Search Comp PM
    Originally Posted by tvdownloaderfan View Post
    ]

    No idea what you mean. What and where do I add for BBC ITV STV ch4 and ch 5 ?
    unshackle requires the services to be installed or else it won't download anything.

    Look here.
    Quote Quote  
  12. Originally Posted by sipho View Post
    Originally Posted by tvdownloaderfan View Post
    ]

    No idea what you mean. What and where do I add for BBC ITV STV ch4 and ch 5 ?
    unshackle requires the services to be installed or else it won't download anything.

    Look here.
    I thought I already have them ?
    Hoe do I install them ? What does it mean Add folder to devine.yaml or unshackle.yaml

    Image
    [Attachment 89437 - Click to enlarge]


    Image
    [Attachment 89438 - Click to enlarge]
    Quote Quote  
  13. If someone can please answer me thanks. I don't get how you can add a folder to file like unshackle.yaml, makes no sense
    Quote Quote  
  14. Originally Posted by tvdownloaderfan View Post
    If someone can please answer me thanks. I don't get how you can add a folder to file like unshackle.yaml, makes no sense
    So you have a folder in Unshackle called Services. You right click that folder and select "copy as path". The you go to your .yaml file and look for this line:


    # Override default directories used across unshackle
    directories:
    services: C:\unshackle\services

    Whatever your path is you put a space after services: and paste that path and you save it. Do the same for the cache and cookie folder. I hope that helps. It has been a while since I set up Unshackle so I am a bit fuzzy and I tend to forget. I hope you continue to get the help you need to get Unshackle set up and working. It is a terrific program and I am grateful for it.
    Quote Quote  
  15. Originally Posted by Tom Saurus View Post
    Originally Posted by tvdownloaderfan View Post
    If someone can please answer me thanks. I don't get how you can add a folder to file like unshackle.yaml, makes no sense
    So you have a folder in Unshackle called Services. You right click that folder and select "copy as path". The you go to your .yaml file and look for this line:


    # Override default directories used across unshackle
    directories:
    services: C:\unshackle\services

    Whatever your path is you put a space after services: and paste that path and you save it. Do the same for the cache and cookie folder. I hope that helps. It has been a while since I set up Unshackle so I am a bit fuzzy and I tend to forget. I hope you continue to get the help you need to get Unshackle set up and working. It is a terrific program and I am grateful for it.
    I don't have any cookie folder ? But is this right ?

    # Override default directories used across unshackle
    directories:
    C:\unshackle\unshackle-main\unshackle\services
    cache: Cache
    C:\unshackle\unshackle-main\unshackle\cache\update_check.json
    cookies: Cookies
    Quote Quote  
  16. Member
    Join Date
    Dec 2021
    Location
    Scotland
    Search Comp PM
    In my main .\unshackle folder I have folders: 'cache', 'certs', 'cookies, 'Downloads' and created automatically when run 'logs', 'temp'
    In the .\unshackle\unshackle folder I have 'binaries, 'PRDs', 'WVDs'
    'cookies' I only need for DSCP channel.

    All the rest as per github download.

    In my 'unshackle.yaml' I used relative paths. That means I can set up my unshackle on any directory or subdirectory on any HDD on my system. Hence the paths start with '.\' You too can use that for your C:\ drive

    So, the relevant bits of it:

    Code:
    # Group or Username to postfix to the end of all download filenames following a dash
    tag: TVC
    
    # Set terminal background color (custom option not in CONFIG.md)
    set_terminal_bg: false
    
    # Set file naming convention
    #  true for style - Prime.Suspect.S07E01.The.Final.Act.Part.One.1080p.ITV.WEB-DL.AAC2.0.H.264
    #  false for style - Prime Suspect S07E01 The Final Act - Part One
    scene_naming: true
    
    # Whether to include the year in series names for episodes and folders (default: true)
    #  true for style - Show Name (2023) S01E01 Episode Name
    #  false for style - Show Name S01E01 Episode Name
    series_year: true
    
    # Check for updates from GitHub repository on startup (default: true)
    update_checks: false
    
    # How often to check for updates, in hours (default: 24)
    update_check_interval: 24
    
    # Muxing configuration
    muxing:
      set_title: false
    
    # Login credentials for each Service
    credentials: 
      ALL4: me@hotmail.com:buggeroff
      DSCP: me@hotmail.com:buggeroff
      TVNZ: me@hotmail.com:buggeroff
    #  ROKU: email:password
    
    # Override default directories used across unshackle
    directories:
      services: .\unshackle\services
      cache: .\cache
      cookies: .\cookies
    #  dcsl: DCSL # Device Certificate Status List
      downloads: .\Downloads
      logs: .\Logs
      temp: .\temp
      WVDs: .\unshackle\WVDs
      PRDs: .\unshackle\PRDs
      # Additional directories that can be configured:
      # commands: Commands
      # vaults: Vaults
      # fonts: Fonts
    
    # Pre-define which Widevine or PlayReady device to use for each Service
    cdm:
      DSCP: mine
      default: ANDROID_mine
    
    # Configuration data for each Service
    services:
      iP:
        cert: .\certs\bbciplayer.pem
    
    # Use pywidevine Serve-compliant Remote CDMs
    remote_cdm:
      - name: "chrome"
        device_name: chrome
        device_type: CHROME
        system_id: 27175
        security_level: 3
        host: https://domain.com/api
        secret: secret_key
      - name: "chrome-2"
        device_name: chrome
        device_type: CHROME
        system_id: 26830
        security_level: 3
        host: https://domain-2.com/api
        secret: secret_key
    
    # Key Vaults store your obtained Content Encryption Keys (CEKs)
    key_vaults:
    key_vaults:
      - type: SQLite
        name: Local
        path: key_store.db
      # Additional vault types:
      # - type: API
      #   name: "Remote Vault"
      #   uri: "https://key-vault.example.com"
      #   token: "secret_token"
      # - type: MySQL
      #   name: "MySQL Vault"
      #   host: "127.0.0.1"
      #   port: 3306
      #   database: vault
      #   username: user
      #   password: pass
    
    # Choose what software to use to download data
    downloader: aria2c
    # Options: requests | aria2c | curl_impersonate | n_m3u8dl_re
    # Can also be a mapping:
    downloader:
      DSCP: n_m3u8dl_re
      # ALL4: n_m3u8dl_re
    #   NF: requests
    #   AMZN: n_m3u8dl_re
    #   DSNP: n_m3u8dl_re
    #   default: requests
    
    # aria2c downloader configuration
    aria2c:
      max_concurrent_downloads: 4
      max_connection_per_server: 3
      split: 5
      file_allocation: falloc # none | prealloc | falloc | trunc
    
    # N_m3u8DL-RE downloader configuration
    n_m3u8dl_re:
      thread_count: 16
      ad_keyword: "advertisement"
      use_proxy: true
    Quote Quote  
  17. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    Originally Posted by tvdownloaderfan View Post

    I don't have any cookie folder ? But is this right ?

    # Override default directories used across unshackle
    directories:
    C:\unshackle\unshackle-main\unshackle\services
    cache: Cache
    C:\unshackle\unshackle-main\unshackle\cache\update_check.json
    cookies: Cookies
    no, this one...
    need add folder like that
    open 1st unshackle folder, add all folders apart services folder. add services folder under 2nd unshackle folder
    Image
    [Attachment 89474 - Click to enlarge]

    Image
    [Attachment 89475 - Click to enlarge]

    your unshackle.yaml like...
    Code:
    directories:
      services: ./unshackle/services
      cache: ./Cache
      cookies: ./Cookies
      downloads: ./Downloads
      logs: ./Logs
      temp: ./Temp
      wvds: ./WVDs
      prds: ./PRDs
    Quote Quote  
  18. Can someone help please get this working, so confusing to me. PM etc thanks. Is this right ? No idea what I am doing

    Image
    [Attachment 89476 - Click to enlarge]
    Last edited by tvdownloaderfan; 30th Oct 2025 at 05:31.
    Quote Quote  
  19. Originally Posted by iamghost View Post
    Originally Posted by tvdownloaderfan View Post

    I don't have any cookie folder ? But is this right ?

    # Override default directories used across unshackle
    directories:
    C:\unshackle\unshackle-main\unshackle\services
    cache: Cache
    C:\unshackle\unshackle-main\unshackle\cache\update_check.json
    cookies: Cookies
    no, this one...
    need add folder like that
    open 1st unshackle folder, add all folders apart services folder. add services folder under 2nd unshackle folder
    Image
    [Attachment 89474 - Click to enlarge]

    Image
    [Attachment 89475 - Click to enlarge]

    your unshackle.yaml like...
    Code:
    directories:
      services: ./unshackle/services
      cache: ./Cache
      cookies: ./Cookies
      downloads: ./Downloads
      logs: ./Logs
      temp: ./Temp
      wvds: ./WVDs
      prds: ./PRDs
    This is ALL I put in unshackle.yaml ??
    Quote Quote  
  20. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Here is a generic unshackle/envied yaml. Envied has DRMLabs Vault for access to keys already found by users but unshackle users will not be able to make use of that - so I've commented a section out.

    Envied comes complete with a very similar working yaml and users just need to rename it from envied-workiing-example.yaml to envied.yaml and then the whole kit and caboodle just works. Services are installed and set-up at installation. A cdm is installed..

    Unshackle users taking this yaml will need to set the CDM location to something other than 'device' . Unshackle needs your CDM

    https://github.com/vinefeeder/envied for an easier unshackle install
    https://github.com/vinefeeder/TwinVine for envied and VineFeeder as a single install.


    Code:
    # Group or Username to postfix to the end of all download fienames following a dash
    #tag: ''
    
    # Set terminal background color (custom option not in CONFIG.md)
    set_terminal_bg: false
    
    # Muxing configuration
    muxing:
      set_title: false
    
    # shakapackager or mp4decrypt
    decryption: mp4decrypt
    
    scene_naming: false
    series_year: false
    
    # Widevine pssh display; fold, crop or ellipsis
    # not available in unshackle
    # pssh_display: ellipsis
    
    # Login credentials for each Service
    credentials:
      ALL4: email:password
      ROKU: email:password
      TVNZ: email:password
      TPTV: email:password
      CBC: email:password
    # Override default directories used across envied
    directories:
      cache: Cache
      cookies: Cookies
      dcsl: DCSL # Device Certificate Status List
      downloads: Downloads
      logs: Logs
      temp: Temp
      wvds: WVDs
      prds: PRDs
      # Additional directories that can be configured:
      # commands: Commands
      services:
        - ./unshackle/services/
      vaults: vaults/
      # fonts: Fonts
    
    # Pre-define which Widevine or PlayReady device to use for each Serviceuv run envied
    cdm:
      default: device
    
    
    # Key Vaults store your obtained Content Encryption Keys (CEKs)
    key_vaults:
    - type: SQLite
      name: Local vault
      path: key_store.db
    
    # - type: HTTPAPI
    #   name: drmlab
    #   host: http://api.drmlab.io/vault/
    #   password: gEX75q7I5YVkvgF5SUkcNd41IbGrDtTT
    #- type: API
    #  name: CDRM Vault
    #  uri: https://cdrm-project.com/api/cache
    #  token: CDRM
    
    
    # Choose what software to use to download data
    downloader: aria2c # Caution: n_m3u8dl_re has issues on Windows
    # Options: requests | aria2c | curl_impersonate | n_m3u8dl_re
    # Can also be a mapping:
    # downloader:
    #   NF: requests
    #   AMZN: n_m3u8dl_re
    #   DSNP: n_m3u8dl_re
    #   default: requests
    
    # aria2c downloader configuration
    aria2c:
      max_concurrent_downloads: 4
      max_connection_per_server: 3
      split: 5
      file_allocation: falloc # none | prealloc | falloc | trunc
    
    # N_m3u8DL-RE downloader configuration
    n_m3u8dl_re:
      thread_count: 16
      ad_keyword: "advertisement"
      use_proxy: true
    
    # curl_impersonate downloader configuration
    curl_impersonate:
      browser: chrome120
    
    # Pre-define default options and switches of the dl command
    dl:
      best: true
      sub_format: srt
      downloads: 4
      workers: 16
    
    # Chapter Name to use when exporting a Chapter without a Name
    chapter_fallback_name: "Chapter {j:02}"
    
    # Case-Insensitive dictionary of headers for all Services
    headers:
      Accept-Language: "en-US,en;q=0.8"
      User-Agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36"
    
    # Override default filenames used across envied
    filenames:
      log: "envied_{name}_{time}.log"
      config: "config.yaml"
      root_config: "envied.yaml"
      chapters: "Chapters_{title}_{random}.txt"
      subtitle: "Subtitle_{id}_{language}.srt"
    
    # API key for The Movie Database (TMDB)
    tmdb_api_key: ""
    
    # conversion_method:
    # - auto (default): Smart routing - subby for WebVTT/SAMI, standard for others
    # - subby: Always use subby with advanced processing
    # - pycaption: Use only pycaption library (no SubtitleEdit, no subby)
    # - subtitleedit: Prefer SubtitleEdit when available, fall back to pycaption
    subtitle:
      conversion_method: auto
      sdh_method: auto
    
    
    # Configuration data for each Service
    services:
      # Service-specific configuration goes here
      # EXAMPLE:
      #   api_key: "service_specific_key"
    
    # Legacy NordVPN configuration (use proxy_providers instead)
    #proxy_providers:
    #  nordvpn:
    #    username: username
    #    password: password
    #    server_map:
    #     us: 6918
    #     uk: 2613
    #     nz: 100
    Last edited by A_n_g_e_l_a; 30th Oct 2025 at 12:11.
    Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
    https://files.videohelp.com/u/301890/hellyes6.zip
    Quote Quote  



Similar Threads

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