forked from kenzuya/unshackle
chore(config): add comprehensive unshackle.yaml configuration file
- Define tagging options for filenames including group and metadata tags - Configure terminal background color and file naming conventions - Set caching parameters for title metadata with expiration controls - Add muxing and default directories settings - Provide flexible credentials management with profile and default support - Configure CDM devices and remote CDMs for Widevine and PlayReady - Define local and HTTP key vaults with options to disable pushing keys - Set downloader preferences and specific settings for aria2c, n_m3u8dl_re, and curl_impersonate - Introduce default parameters for download commands and subtitle conversion methods - Add service-specific API keys, profiles, and device configurations - Include proxy provider credentials for external VPN services
This commit is contained in:
249
unshackle/unshackle.yaml
Normal file
249
unshackle/unshackle.yaml
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
# Group or Username to postfix to the end of all download filenames following a dash
|
||||||
|
tag: Kenzuya
|
||||||
|
|
||||||
|
# Enable/disable tagging with group name (default: true)
|
||||||
|
tag_group_name: true
|
||||||
|
|
||||||
|
# Enable/disable tagging with IMDB/TMDB/TVDB details (default: true)
|
||||||
|
tag_imdb_tmdb: true
|
||||||
|
|
||||||
|
# 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: true
|
||||||
|
|
||||||
|
# Login credentials for each Service
|
||||||
|
credentials:
|
||||||
|
# Direct credentials (no profile support)
|
||||||
|
EXAMPLE: email@example.com:password
|
||||||
|
|
||||||
|
# Per-profile credentials with default fallback
|
||||||
|
SERVICE_NAME:
|
||||||
|
default: default@email.com:password # Used when no -p/--profile is specified
|
||||||
|
profile1: user1@email.com:password1
|
||||||
|
profile2: user2@email.com:password2
|
||||||
|
|
||||||
|
# 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: chromecdm
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Use pywidevine Serve-compliant Remote CDMs
|
||||||
|
remote_cdm:
|
||||||
|
- name: "chromecdm"
|
||||||
|
device_name: widevine
|
||||||
|
device_type: CHROME
|
||||||
|
system_id: 36586
|
||||||
|
security_level: 3
|
||||||
|
type: "decrypt_labs"
|
||||||
|
host: https://keyxtractor.decryptlabs.com
|
||||||
|
secret: 7547150416_41da0a32d6237d83_KeyXtractor_api_ext
|
||||||
|
- 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)
|
||||||
|
# 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
|
||||||
|
- type: HTTP
|
||||||
|
name: "DRMLab Vault"
|
||||||
|
host: "https://api.drmlab.io/vault/"
|
||||||
|
username: "unshackle"
|
||||||
|
password: "gEX75q7I5YVkvgF5SUkcNd41IbGrDtTT"
|
||||||
|
api_mode: "json"
|
||||||
|
# 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:
|
||||||
|
- orig
|
||||||
|
- id
|
||||||
|
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/77.0.3865.75 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: "8f5c14ef648a0abdd262cf809e11fcd4"
|
||||||
|
|
||||||
|
# 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 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"
|
||||||
|
|
||||||
|
# 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:
|
||||||
|
|
||||||
|
surfsharkvpn:
|
||||||
|
username: wqKD6vru8vXxUtkXJbvx4HAL # Service credentials from https://my.surfshark.com/vpn/manual-setup/main/openvpn
|
||||||
|
password: zyFnwsYFMNxqbzpf3asu36m6 # Service credentials (not your login password)
|
||||||
Reference in New Issue
Block a user