mirror of
https://github.com/vinefeeder/TwinVine.git
synced 2026-07-15 18:10:04 +02:00
updates and fixes
This commit is contained in:
@@ -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**
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user