The problem is that the endpoints used for the higher quality streams are more geofenced, especially the one for 2160p. So it doesn't matter what tools you're using, without a residential IP or a solid VPN, you'll hit the same wall no matter what. The yt-dlp devs opted for the PC endpoint to make it more accessible, I'm guessing.
+ Reply to Thread
Results 271 to 300 of 312
-
-
I've just added PLEX and CWTV services to the repository.
As far as free services go, they're surprisingly not that bad these days. Combined with Tubi and Pluto, you'll get a pretty huge library of content. At least for the US territory. -
Envied and TwinVine have been updated to 1.4.5. Neither update follows unshackle into the spammer's lair. No facility to connect to pay-for-cdm-access is provided by design.
I've taken the opportunity to add SBB's two extra services to the update - with grateful thanks.Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
Just tried your plex service with a classic https://watch.plex.tv/show/corner-gas and although unshackle says it downloaded the best video track, the resulting mkv has a rather low bitrate video. Is it possible to grab the 1280×720 @ 5575 kb/s at all? Many thanks.
[Attachment 88655 - Click to enlarge]
[Attachment 88656 - Click to enlarge]
Code:General Format : Matroska Format version : Version 4 File size : 355 MiB Duration : 22 min 22 s Overall bit rate : 2 220 kb/s Frame rate : 23.976 FPS Writing application : mkvmerge 94.0 ('Initiate') 64-bit Writing library : libebml v1.4.5 + libmatroska v1.7.1 Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : Main@L3.1 Format settings : CABAC / 4 Ref Frames Format settings, CABAC : Yes Format settings, Reference frames : 4 frames Codec ID : V_MPEG4/ISO/AVC Duration : 22 min 22 s Bit rate : 2 028 kb/s Width : 1 280 pixels Height : 720 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 23.976 (24000/1001) FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.092 Stream size : 325 MiB (91%) Language : English Default : Yes Forced : No Audio ID : 2 Format : AAC LC Format/Info : Advanced Audio Codec Low Complexity Codec ID : A_AAC-2 Duration : 22 min 22 s Bit rate : 192 kb/s Channel(s) : 2 channels Channel layout : L R Sampling rate : 48.0 kHz Frame rate : 46.875 FPS (1024 SPF) Compression mode : Lossy Stream size : 30.3 MiB (9%) Language : English Default : Yes Forced : No Text ID : 3 Format : UTF-8 Codec ID : S_TEXT/UTF8 Codec ID/Info : UTF-8 Plain Text Duration : 22 min 6 s Bit rate : 94 b/s Frame rate : 0.384 FPS Count of elements : 509 Stream size : 15.4 KiB (0%) Language : English Default : No Forced : No Menu 00:00:00.000 : en:Chapter 01 00:21:26.295 : en:Credits
-
-
-
What is the proper way to add these new services to Unshackle so that I can make a note of that for future reference? Thank you in advance for this information.
-
I had some success with CWTV but had to cycle to a different U.S. City on my Windscribe VPN. As for Plex it keep failing by saying it "couldn't parse I.D. from title". This is what I imputed:
devine dl --list-titles PLEX https://watch.plex.tv/en-GB/show/knots-landing -
-
-
-
I know that with WidevineProxy2 that I can get the episodes one at time individually but I was craving to get them batch style so the program would get them one after another. A show with 14 seasons is daunting to archive as you got to keep coming back and setting it up to download an episode over and over again.
I got a different error when I used this command:
Code:C:\unshackle>uv run unshackle dl --list -w S01E01 PLEX https://watch.plex.tv/show/knots-landing ▄• ▄▌ ▐ ▄ .▄▄ · ▄ .▄ ▄▄▄· ▄▄· ▄ •▄ ▄▄▌ ▄▄▄ . █▪██▌•█▌▐█▐█ ▀. ██▪▐█▐█ ▀█ ▐█ ▌▪█▌▄▌▪██• ▀▄.▀· █▌▐█▌▐█▐▐▌▄▀▀▀█▄██▀▐█▄█▀▀█ ██ ▄▄▐▀▀▄·██▪ ▐▀▀▪▄ ▐█▄█▌██▐█▌▐█▄▪▐███▌▐▀▐█ ▪▐▌▐███▌▐█.█▌▐█▌▐▌▐█▄▄▌ ▀▀▀ ▀▀ █▪ ▀▀▀▀ ▀▀▀ · ▀ ▀ ·▀▀▀ ·▀ ▀.▀▀▀ ▀▀▀ v 1.4.5 - © 2025 - github.com/unshackle-dl/unshackle Service Config loaded Loaded 1/1 Vaults Loaded Widevine CDM: 8158 (L3) ────────────────────────────── Service: PLEX ─────────────────────────────── Service has no Geofence ────────────────────────── Series: Knots Landing ─────────────────────────── 14 seasons, S1(13), S2(18), S3(22), S4(22), S5(25), S6(30), S7(30), S8(30), S9(29), S10(28), S11(29), S12(27), S13(22), S14(19) ──────────────────────── Knots Landing S01E01 Pilot ──────────────────────── Search -> Knots Landing (ID 2595) ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ C:\Users\Tom Saurus\AppData\Local\Programs\Python\Python310\lib\runpy.py:196 │ │ in _run_module_as_main │ │ │ │ 193 │ main_globals = sys.modules["__main__"].__dict__ │ │ 194 │ if alter_argv: │ │ 195 │ │ sys.argv[0] = mod_spec.origin │ │ ❱ 196 │ return _run_code(code, main_globals, None, │ │ 197 │ │ │ │ │ "__main__", mod_spec) │ │ 198 │ │ 199 def run_module(mod_name, init_globals=None, │ │ │ │ C:\Users\Tom Saurus\AppData\Local\Programs\Python\Python310\lib\runpy.py:86 │ │ in _run_code │ │ │ │ 83 │ │ │ │ │ __loader__ = loader, │ │ 84 │ │ │ │ │ __package__ = pkg_name, │ │ 85 │ │ │ │ │ __spec__ = mod_spec) │ │ ❱ 86 │ exec(code, run_globals) │ │ 87 │ return run_globals │ │ 88 │ │ 89 def _run_module_code(code, init_globals=None, │ │ │ │ in <module>:10 │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1442 in __call__ │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1363 in main │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1830 in invoke │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1830 in invoke │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1799 in _process_result │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:794 in invoke │ │ │ │ C:\unshackle\unshackle\commands\dl.py:587 in result │ │ │ │ 584 │ │ │ │ │ 585 │ │ │ with console.status("Getting tracks...", spinner="dots"): │ │ 586 │ │ │ │ title.tracks.add(service.get_tracks(title), warn_only │ │ ❱ 587 │ │ │ │ title.tracks.chapters = service.get_chapters(title) │ │ 588 │ │ │ │ │ 589 │ │ │ # strip SDH subs to non-SDH if no equivalent same-lang no │ │ 590 │ │ │ # uses a loose check, e.g, wont strip en-US SDH sub if a │ │ │ │ C:\unshackle\services\PLEX\__init__.py:202 in get_chapters │ │ │ │ 199 │ │ │ │ pass │ │ 200 │ │ │ │ 201 │ │ chapters = [] │ │ ❱ 202 │ │ for cue in markers: │ │ 203 │ │ │ if cue.get("startTimeOffset", 0) > 0: │ │ 204 │ │ │ │ chapters.append(Chapter(name=cue.get("type", "").title │ │ 205 │ ╰──────────────────────────────────────────────────────────────────────────────╯ TypeError: 'NoneType' object is not iterable
C:\unshackle>
But at least this time is shows the seasons available. I switched to a different City for the VPN maybe that made a difference. Though I am fairly certain it should work even without the VPN turned on.
Thank you for your response.Last edited by Tom Saurus; 19th Sep 2025 at 17:06.
-
I have had a bit of success with this command and it gives me a list of all the Knots Landing episodes:
uv run unshackle dl --list-titles plex https://watch.plex.tv/show/knots-landingLast edited by Tom Saurus; 22nd Sep 2025 at 09:34. Reason: The Episode List was unnessary and taking up a lot of space
-
But failure with this command:
Code:C:\unshackle>uv run unshackle dl --list -w S02E03 PLEX https://watch.plex.tv/show/knots-landing ▄• ▄▌ ▐ ▄ .▄▄ · ▄ .▄ ▄▄▄· ▄▄· ▄ •▄ ▄▄▌ ▄▄▄ . █▪██▌•█▌▐█▐█ ▀. ██▪▐█▐█ ▀█ ▐█ ▌▪█▌▄▌▪██• ▀▄.▀· █▌▐█▌▐█▐▐▌▄▀▀▀█▄██▀▐█▄█▀▀█ ██ ▄▄▐▀▀▄·██▪ ▐▀▀▪▄ ▐█▄█▌██▐█▌▐█▄▪▐███▌▐▀▐█ ▪▐▌▐███▌▐█.█▌▐█▌▐▌▐█▄▄▌ ▀▀▀ ▀▀ █▪ ▀▀▀▀ ▀▀▀ · ▀ ▀ ·▀▀▀ ·▀ ▀.▀▀▀ ▀▀▀ v 1.4.5 - © 2025 - github.com/unshackle-dl/unshackle Service Config loaded Loaded 1/1 Vaults Loaded Widevine CDM: 8158 (L3) ────────────────────────────── Service: PLEX ─────────────────────────────── Service has no Geofence ────────────────────────── Series: Knots Landing ─────────────────────────── 14 seasons, S1(13), S2(18), S3(22), S4(22), S5(25), S6(30), S7(30), S8(30), S9(29), S10(28), S11(29), S12(27), S13(22), S14(19) ─────────────── Knots Landing S02E03 Remember the Good Times ─────────────── Search -> Knots Landing (ID 2595) ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ C:\Users\Tom Saurus\AppData\Local\Programs\Python\Python310\lib\runpy.py:196 │ │ in _run_module_as_main │ │ │ │ 193 │ main_globals = sys.modules["__main__"].__dict__ │ │ 194 │ if alter_argv: │ │ 195 │ │ sys.argv[0] = mod_spec.origin │ │ ❱ 196 │ return _run_code(code, main_globals, None, │ │ 197 │ │ │ │ │ "__main__", mod_spec) │ │ 198 │ │ 199 def run_module(mod_name, init_globals=None, │ │ │ │ C:\Users\Tom Saurus\AppData\Local\Programs\Python\Python310\lib\runpy.py:86 │ │ in _run_code │ │ │ │ 83 │ │ │ │ │ __loader__ = loader, │ │ 84 │ │ │ │ │ __package__ = pkg_name, │ │ 85 │ │ │ │ │ __spec__ = mod_spec) │ │ ❱ 86 │ exec(code, run_globals) │ │ 87 │ return run_globals │ │ 88 │ │ 89 def _run_module_code(code, init_globals=None, │ │ │ │ in <module>:10 │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1442 in __call__ │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1363 in main │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1830 in invoke │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1830 in invoke │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1799 in _process_result │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:794 in invoke │ │ │ │ C:\unshackle\unshackle\commands\dl.py:587 in result │ │ │ │ 584 │ │ │ │ │ 585 │ │ │ with console.status("Getting tracks...", spinner="dots"): │ │ 586 │ │ │ │ title.tracks.add(service.get_tracks(title), warn_only │ │ ❱ 587 │ │ │ │ title.tracks.chapters = service.get_chapters(title) │ │ 588 │ │ │ │ │ 589 │ │ │ # strip SDH subs to non-SDH if no equivalent same-lang no │ │ 590 │ │ │ # uses a loose check, e.g, wont strip en-US SDH sub if a │ │ │ │ C:\unshackle\services\PLEX\__init__.py:202 in get_chapters │ │ │ │ 199 │ │ │ │ pass │ │ 200 │ │ │ │ 201 │ │ chapters = [] │ │ ❱ 202 │ │ for cue in markers: │ │ 203 │ │ │ if cue.get("startTimeOffset", 0) > 0: │ │ 204 │ │ │ │ chapters.append(Chapter(name=cue.get("type", "").title │ │ 205 │ ╰──────────────────────────────────────────────────────────────────────────────╯ TypeError: 'NoneType' object is not iterable C:\unshackle>
Last edited by Tom Saurus; 19th Sep 2025 at 17:09.
-
-
C:\unshackle>uv run unshackle dl -l en -w S02E03 PLEX https://watch.plex.tv/show/knots-landing
Code:▄• ▄▌ ▐ ▄ .▄▄ · ▄ .▄ ▄▄▄· ▄▄· ▄ •▄ ▄▄▌ ▄▄▄ . █▪██▌•█▌▐█▐█ ▀. ██▪▐█▐█ ▀█ ▐█ ▌▪█▌▄▌▪██• ▀▄.▀· █▌▐█▌▐█▐▐▌▄▀▀▀█▄██▀▐█▄█▀▀█ ██ ▄▄▐▀▀▄·██▪ ▐▀▀▪▄ ▐█▄█▌██▐█▌▐█▄▪▐███▌▐▀▐█ ▪▐▌▐███▌▐█.█▌▐█▌▐▌▐█▄▄▌ ▀▀▀ ▀▀ █▪ ▀▀▀▀ ▀▀▀ · ▀ ▀ ·▀▀▀ ·▀ ▀.▀▀▀ ▀▀▀ v 1.4.5 - © 2025 - github.com/unshackle-dl/unshackle Service Config loaded Loaded 1/1 Vaults Loaded Widevine CDM: 8158 (L3) ────────────────────────────── Service: PLEX ─────────────────────────────── Service has no Geofence ────────────────────────── Series: Knots Landing ─────────────────────────── 14 seasons, S1(13), S2(18), S3(22), S4(22), S5(25), S6(30), S7(30), S8(30), S9(29), S10(28), S11(29), S12(27), S13(22), S14(19) ─────────────── Knots Landing S02E03 Remember the Good Times ─────────────── ╭───────────────────── Traceback (most recent call last) ──────────────────────╮ │ C:\Users\Tom Saurus\AppData\Local\Programs\Python\Python310\lib\runpy.py:196 │ │ in _run_module_as_main │ │ │ │ 193 │ main_globals = sys.modules["__main__"].__dict__ │ │ 194 │ if alter_argv: │ │ 195 │ │ sys.argv[0] = mod_spec.origin │ │ ❱ 196 │ return _run_code(code, main_globals, None, │ │ 197 │ │ │ │ │ "__main__", mod_spec) │ │ 198 │ │ 199 def run_module(mod_name, init_globals=None, │ │ │ │ C:\Users\Tom Saurus\AppData\Local\Programs\Python\Python310\lib\runpy.py:86 │ │ in _run_code │ │ │ │ 83 │ │ │ │ │ __loader__ = loader, │ │ 84 │ │ │ │ │ __package__ = pkg_name, │ │ 85 │ │ │ │ │ __spec__ = mod_spec) │ │ ❱ 86 │ exec(code, run_globals) │ │ 87 │ return run_globals │ │ 88 │ │ 89 def _run_module_code(code, init_globals=None, │ │ │ │ in <module>:10 │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1442 in __call__ │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1363 in main │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1830 in invoke │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1830 in invoke │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:1799 in _process_result │ │ │ │ C:\unshackle\.venv\lib\site-packages\click\core.py:794 in invoke │ │ │ │ C:\unshackle\unshackle\commands\dl.py:587 in result │ │ │ │ 584 │ │ │ │ │ 585 │ │ │ with console.status("Getting tracks...", spinner="dots"): │ │ 586 │ │ │ │ title.tracks.add(service.get_tracks(title), warn_only │ │ ❱ 587 │ │ │ │ title.tracks.chapters = service.get_chapters(title) │ │ 588 │ │ │ │ │ 589 │ │ │ # strip SDH subs to non-SDH if no equivalent same-lang no │ │ 590 │ │ │ # uses a loose check, e.g, wont strip en-US SDH sub if a │ │ │ │ C:\unshackle\services\PLEX\__init__.py:202 in get_chapters │ │ │ │ 199 │ │ │ │ pass │ │ 200 │ │ │ │ 201 │ │ chapters = [] │ │ ❱ 202 │ │ for cue in markers: │ │ 203 │ │ │ if cue.get("startTimeOffset", 0) > 0: │ │ 204 │ │ │ │ chapters.append(Chapter(name=cue.get("type", "").title │ │ 205 │ ╰──────────────────────────────────────────────────────────────────────────────╯ TypeError: 'NoneType' object is not iterable C:\unshackle>
Last edited by Tom Saurus; 19th Sep 2025 at 17:10.
-
-
Without wishing to step on StabbedByBrick's toes, I have pushed a work-around (not a code fix) for the PLEX download issue to both https://github.com/vinefeeder/TwinVine and https://github.com/vinefeeder/envied as these come with services installed. Plex links give titles like
Code:https://watch.plex.tv/en-GB/show/mr-bean/season/1/episode/2?detailsSource=vod&context.page=show.season&context.groupID=episodes&context.groupIndex=2&context.itemIndex=1
Code:https://watch.plex.tv/show/mr-bean
[Attachment 88688 - Click to enlarge]
[Attachment 88689 - Click to enlarge]Last edited by A_n_g_e_l_a; 12th Sep 2025 at 11:29.
Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
Even with the correct link that Devine and Unshackle need PLEX is failing for me. Thankfully CWTV is working well as long as I have cycled to a United States City server it likes on my Windscribe VPN. I see though at least one person has had success with PLEX so it must be something in my set up. I will keep trying to get it to work though as I do want to archive Knots Landing. I did get Falcon Crest one at a time but it took quite a while to get but I am glad I put the effort in via WidevineProxy2.
Last edited by Tom Saurus; 12th Sep 2025 at 14:11.
-
stabbedbybrick wrote about how certain services perhaps like iP aka the BBC with YT-DLP are more forgiving when it comes to VPN with the lower quality videos so I wonder if a service can be made that offers you to get whole seasons or whole series for that matter that isn't such a pain about VPN. I know a lot of people want these super high quality videos and they have their reasons to go for that. But it would be nice if somehow there one that maybe maxes out at lower resolution like 540p or 480p and just doesn't have that sensitivity that causes it the regular iP service to not work for us. I have Windscribe and it works thankfully for most of the services but some are more sensitive to the VPN then others. Actually stabbedbybrick describes the technical aspects of it at the top of this page. Perhaps someone could make two iP services and specify this one is less VPN sensitive and offers a lower quality video as a result and then your regular version that goes for the best quality. Though I suppose one could subscribe to Surfshark VPN as I have read that it works with the iP service. But regardless I do have getiPlayer set up and can get episodes one at a time so that is nice. It seems to not get the subtitles though but that isn't necessarily vital.
-
The PLEX issue with chapters being "NoneType" was fixed yesterday, and the addition of the ISO country code in the URL was fixed earlier today. Check the official github repository in my signature to stay up-to-date. And please open issues over there for legit bugs and suggestions. It makes them easier to track and it won't derail this thread.
-
Thank you and I will update and try soon. I apologize for derailing the thread and I will try to remember to open issues over at the Repository to not repeat the derailing. If Plex is working I will be busy visiting the Culdesac and I will be sure say hi to Karen, Val, Gary, Abby and the rest of residents that inhabit Knots Landing.
-
Thank you for this tip. I am testing PLEX right now with a Knots Landing episode and it looks very promising. It just got downloaded and it turned out terrific. The sad thing though like Falcon Crest they have a bit of interlace or de-interlace aspect but that is not the fault of the streaming downloader. VLC has a way to deal with it in the video playback options to a degree anyway. Over at PLUTO U.S. the episodes of Dr. Quinn, Medicine Woman have a severe case of interlace or deinterlace so much so that I didn't bother with them.
Thank you once again Stabbedbybrick CWTV and PLEX are terrific additions to the Devine and Unshackle services. It is terrific you put this effort in making these services and on top of that fixing the issues that Plex had. -
[Attachment 88729 - Click to enlarge]
Plex added as a VineFeeder Service to TwinVine https://github.com/vinefeeder/TwinVine
Only direct url and search for the moment.Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip -
EDIT - sussed it
Can anyone point me past this please? I do have Nord VPN and got my login credentials (from Nord, not login details) but even when I've entered the details where it looks like they should go (I could well be wrong) I get an error. Any help greatly appreciated.
[Attachment 88794 - Click to enlarge]Last edited by jake2k8; 17th Sep 2025 at 08:48.
-
Cool, I didn't know about cwtv some good stuff on there thanks. The services only work with devine for me though, unshackle gives
Code:There's no [] Video Track...
Code:-l all
@Tom Saurus use the code tags bro you're making the thread unreadableLast edited by vidsrme; 19th Sep 2025 at 06:57.
Similar Threads
-
Devine - Modular Movie, TV, and Music Archival Software
By billybanana in forum Video Streaming DownloadingReplies: 1852Last Post: 17th Sep 2025, 12:45 -
Bitrate confusion: HD vs. DV archival
By taigi in forum Capturing and VCRReplies: 3Last Post: 9th Nov 2024, 03:38 -
How do I completely remove the music and sound effects from a movie?
By cns00 in forum EditingReplies: 1Last Post: 15th Jan 2024, 12:11 -
Which software can remove music from show but keep character dialogue?
By Mohamed61020 in forum AudioReplies: 6Last Post: 2nd Jul 2023, 21:32 -
Software for simple music videos?
By dewiclements in forum Software PlayingReplies: 3Last Post: 26th Jul 2022, 01:21