updates and fixes

This commit is contained in:
VineFeeder
2026-05-11 09:36:54 +01:00
parent 5f4ba355f8
commit 74782f0f3f
6 changed files with 62 additions and 10 deletions
+7 -3
View File
@@ -58,7 +58,7 @@ uv run vinefeeder --help or
uv run envied --help uv run envied --help
``` ```
**Installation for Windows** with a bare machine and novice user. **Installation for Windows** with a bare machine and novice user. (Why not print out these instructions so you can tick them off as you work through them?)
You are going to install all the required binary files and automatically add then to system variable - Path. The Python interpreter will be installed automatically too. You are going to install all the required binary files and automatically add then to system variable - Path. The Python interpreter will be installed automatically too.
@@ -111,7 +111,9 @@ git clone https://github.com/vinefeeder/TwinVine.git
uv run envied dl -? uv run envied dl -?
``` ```
That's it for Windows; uv run vinefeeder to get started! That's it for Windows; uv run vinefeeder OR uv run envied dl -? to get started!
Vinefeeder offers a graphical interace for some services; envied is a command-line tool for all services offered.
**Installation for Linux** with a bare machine. **Installation for Linux** with a bare machine.
@@ -139,7 +141,9 @@ Finally, cd to TwinVine and run each command in order,
``` ```
That's it; uv run vinefeeder to get started! That's it for Linux; uv run vinefeeder OR uv run envied dl -? to get started!
Vinefeeder offers a graphical interace for some services; envied is a command-line tool for all services offered.
**Locations** **Locations**
+8
View File
@@ -1,5 +1,13 @@
**Updates** **Updates**
**11 May 2026**
Vinefeeder update to BBC UHD detection to enable automatic HLG selection.
Some service updates.
**Mar 2026**
Envied updated to match upstream to version 4.0.0
service updates
**19 Jan 2026** **19 Jan 2026**
- upstream envied to 2.3.0 - upstream envied to 2.3.0
@@ -178,14 +178,38 @@ filenames:
# API key for The Movie Database (TMDB) # API key for The Movie Database (TMDB)
tmdb_api_key: "" tmdb_api_key: ""
# conversion_method: #conversion_method:
# - auto (default): Smart routing - subby for WebVTT/SAMI, standard for others # - auto (default): Smart routing - subby for WebVTT/SAMI, pycaption for others
# - subby: Always use subby with advanced processing # - subby: Always use subby with advanced processing
# - pycaption: Use only pycaption library (no SubtitleEdit, no subby) # - pycaption: Use only pycaption library (no SubtitleEdit, no subby)
# - subtitleedit: Prefer SubtitleEdit when available, fall back to pycaption # - subtitleedit: Prefer SubtitleEdit when available, fall back to pycaption
# - pysubs2: Use pysubs2 library (supports SRT/SSA/ASS/WebVTT/TTML/SAMI/MicroDVD/MPL2/TMP)
subtitle: subtitle:
conversion_method: auto conversion_method: auto
# sdh_method: Method to use for SDH (hearing impaired) stripping
# - auto (default): Try subby (SRT only), then SubtitleEdit (if available), then subtitle-filter
# - subby: Use subby library (SRT only)
# - subtitleedit: Use SubtitleEdit tool (Windows only, falls back to subtitle-filter)
# - filter-subs: Use subtitle-filter library directly
sdh_method: auto sdh_method: auto
# strip_sdh: Automatically create stripped (non-SDH) versions of SDH subtitles
# Set to false to disable automatic SDH stripping entirely (default: true)
strip_sdh: true
# convert_before_strip: Auto-convert VTT/other formats to SRT before using subtitle-filter
# This ensures compatibility when subtitle-filter is used as fallback (default: true)
convert_before_strip: true
# preserve_formatting: Preserve original subtitle formatting (tags, positioning, styling)
# When true, skips pycaption processing for WebVTT files to keep tags like <i>, <b>, positioning intact
# Combined with no sub_format setting, ensures subtitles remain in their original format (default: true)
preserve_formatting: true
# output_mode: Output mode for subtitles
# - mux: Embed subtitles in MKV container only (default)
# - sidecar: Save subtitles as separate files only
# - both: Embed in MKV AND save as sidecar files
output_mode: mux
# sidecar_format: Format for sidecar subtitle files
# Options: srt, vtt, ass, original (keep current format)
sidecar_format: srt
# Configuration data for each Service # Configuration data for each Service
@@ -2,6 +2,8 @@
"""The BBC does not follow the same structures as most other srvices """The BBC does not follow the same structures as most other srvices
The BBC does not use script = window.__PARAMS__ = ...""" The BBC does not use script = window.__PARAMS__ = ..."""
from pydoc import html
from vinefeeder.base_loader import BaseLoader from vinefeeder.base_loader import BaseLoader
from vinefeeder.parsing_utils import extract_params_json, parse_json, split, split_options from vinefeeder.parsing_utils import extract_params_json, parse_json, split, split_options
from rich.console import Console from rich.console import Console
@@ -45,11 +47,20 @@ class BbcLoader(BaseLoader):
list: A list of URLs with UHD content. list: A list of URLs with UHD content.
""" """
uhd_url = "https://www.bbc.co.uk/iplayer/help/questions/programme-availability/uhd-content" uhd_url = "https://www.bbc.co.uk/iplayer/help/questions/programme-availability/uhd-content/"
html = self.get_data(uhd_url) html = self.get_data(uhd_url)
sel = Selector(text=html) sel = Selector(text=html)
uhd_list = sel.xpath("(//ul)[9]//a/text()").getall()
#url_list = sel.xpath("(//ul)[9]//a/@href").getall() uhd_list = [
x.xpath("normalize-space(.)").get()
for x in sel.xpath(
'//main//*[self::h2 or self::h3 or self::p or self::strong]'
'[contains(normalize-space(.), "Full list of Ultra HD programmes") '
'or contains(normalize-space(.), "Full list of UHD programmes")]'
'/following::ul[1]/li'
)
]
return uhd_list return uhd_list
+1 -1
View File
@@ -2,7 +2,7 @@
""" """
Selecting -S (subtitles only) as a download option results in an mks file Selecting -S (subtitles only) as a download option results in an mks file
which needs convertion to something acceptable for adding to a video playback. which needs convertion to something acceptable for adding to a video playback.
This is a post processing routne that operated in teh root foler of any number of This is a post processing routine that operates in the root folder of any number of
mks files. mks files.
The sceipt will recursively extract subtitle tracks from .mks files using mkvextract. The sceipt will recursively extract subtitle tracks from .mks files using mkvextract.
+5
View File
@@ -7,6 +7,11 @@ Using a post-processor on the downloaded results may provide a solution.
I have found two unmet needs: I have found two unmet needs:
* Extract srt subtitles * Extract srt subtitles
EDIT There is now an envied option
- mux: Embed subtitles in MKV container only (default)
- sidecar: Save subtitles as separate files only
- both: Embed in MKV AND save as sidecar files
see the envied-working example.yaml and edit for your preference.
* Convert mkv output to mp4 (or any other video container format, with code adjustment) * Convert mkv output to mp4 (or any other video container format, with code adjustment)
Here are two scripts which operate from a root folder (downloads - for instance), and operate on all the mkv files found within. The original files are left in place - for you to remove as necessary. Here are two scripts which operate from a root folder (downloads - for instance), and operate on all the mkv files found within. The original files are left in place - for you to remove as necessary.