3 Commits

Author SHA1 Message Date
Andy
bee2abcf5c docs: improve GitHub issue templates for better bug reports and feature requests 2025-10-24 01:16:01 +00:00
Andy
4787be8190 docs: update CHANGELOG for audio description feature 2025-10-24 00:56:28 +00:00
Andy
ec3e150846 feat(dl): add --audio-description flag to download AD tracks
Add support for downloading audio description tracks via the --audio-description/-ad flag. Previously, descriptive audio tracks were always filtered out. Users can now optionally include them.

Fixes #33
2025-10-24 00:53:47 +00:00
4 changed files with 91 additions and 18 deletions

View File

@@ -1,10 +1,9 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
title: ""
labels: ""
assignees: Sp5rky
---
**Describe the bug**
@@ -12,21 +11,55 @@ A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Run command uv run [...]
1. Run command `uv run unshackle [...]`
2. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**System Details**
- OS: [e.g. Windows 11, Ubuntu 22.04, macOS 14]
- unshackle Version: [e.g. 1.0.1]
**Dependency Versions** (if relevant)
- Shaka-packager: [e.g. 2.6.1]
- n_m3u8dl-re: [e.g. 0.3.0-beta]
- aria2c: [e.g. 1.36.0]
- ffmpeg: [e.g. 6.0]
- Other: [e.g. ccextractor, subby]
**Logs/Error Output**
<details>
<summary>Click to expand logs</summary>
```
Paste relevant error messages or stack traces here
```
</details>
**Configuration** (if relevant)
Please describe relevant configuration settings (DO NOT paste credentials or API keys):
- Downloader used: [e.g. requests, aria2c, n_m3u8dl_re]
- Proxy provider: [e.g. NordVPN, none]
- Other relevant config options
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. Windows/Unix]
- Version [e.g. 1.0.1]
- Shaka-packager Version [e.g. 2.6.1]
- n_m3u8dl-re Version [e.g. 0.3.0 beta]
- Any additional software, such as subby/ccextractor/aria2c
**Additional context**
Add any other context about the problem here, if you're reporting issues with services not running or working, please try to expand on where in your service it breaks but don't include service code (unless you have rights to do so.)
Add any other context about the problem here.
---
**⚠️ Important:**
- **DO NOT include service-specific implementation code** unless you have explicit rights to share it
- **DO NOT share credentials, API keys, WVD files, or authentication tokens**
- For service-specific issues, describe the behavior without revealing proprietary implementation details
- Focus on core framework issues (downloads, DRM, track handling, CLI, configuration, etc.)

View File

@@ -1,21 +1,53 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
title: ""
labels: ""
assignees: Sp5rky
---
**Feature Category**
What area does this feature request relate to?
- [ ] Core framework (downloaders, DRM, track handling)
- [ ] CLI/commands (new commands or command improvements)
- [ ] Configuration system
- [ ] Manifest parsing (DASH, HLS, ISM)
- [ ] Output/muxing (naming, metadata, tagging)
- [ ] Proxy system
- [ ] Key vault system
- [ ] Documentation
- [ ] Other (please specify)
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
A clear and concise description of what the problem is.
Example: "I'm always frustrated when [...]"
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
Other tools like Devine/VT had this function [...]
**Reference implementations** (if applicable)
Have you seen this feature in other tools?
- [ ] Vinetrimmer
- [ ] yt-dlp
- [ ] Other: [please specify]
Please describe how it works there (without sharing proprietary code).
**Use case / Impact**
- How would this feature benefit users?
- How often would you use this feature?
- Does this solve a common workflow issue?
**Additional context**
Add any other context or screenshots about the feature request here.
---
**⚠️ Note:**
This project focuses on the core framework and tooling. Service-specific feature requests should focus on what the framework should support, not specific service implementations.

View File

@@ -69,6 +69,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- **Audio Description Track Support**: Added option to download audio description tracks
- Added `--audio-description/-ad` flag to optionally include descriptive audio tracks
- Previously, audio description tracks were always filtered out
- Users can now choose to download AD tracks when needed
- Fixes GitHub issue #33
- **Config Directory Support**: Cross-platform user config directory support
- Fixed config loading to properly support user config directories across all platforms
- Fixes GitHub issue #23

View File

@@ -237,6 +237,7 @@ class dl:
@click.option("-ns", "--no-subs", is_flag=True, default=False, help="Do not download subtitle tracks.")
@click.option("-na", "--no-audio", is_flag=True, default=False, help="Do not download audio tracks.")
@click.option("-nc", "--no-chapters", is_flag=True, default=False, help="Do not download chapters tracks.")
@click.option("-ad", "--audio-description", is_flag=True, default=False, help="Download audio description tracks.")
@click.option(
"--slow",
is_flag=True,
@@ -582,6 +583,7 @@ class dl:
no_subs: bool,
no_audio: bool,
no_chapters: bool,
audio_description: bool,
slow: bool,
list_: bool,
list_titles: bool,
@@ -1065,6 +1067,7 @@ class dl:
# filter audio tracks
# might have no audio tracks if part of the video, e.g. transport stream hls
if len(title.tracks.audio) > 0:
if not audio_description:
title.tracks.select_audio(lambda x: not x.descriptive) # exclude descriptive audio
if acodec:
title.tracks.select_audio(lambda x: x.codec == acodec)