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 290 of 290
-
-
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:
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. -
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-landing
So this is encouraging:
C:\devine>devine dl --list-titles PLEX https://watch.plex.tv/show/knots-landing
/ __ \/ ____/ | / / _/ | / / ____/
/ / / / __/ | | / // // |/ / __/
/ /_/ / /___ | |/ // // /| / /___
/_____/_____/ |___/___/_/ |_/_____/
⠀
v3.3.3 Copyright © 2019-2025 rlaphoenix
https://github.com/devine-dl/devine
Service Config loaded
Loaded Cdm Widevine CDM: 4464 (L3)
Loaded 0 Vaults
────────────────────────────── Service: PLEX ───────────────────────────────
Service has no Geofence
────────────────────────── Series: Knots Landing ───────────────────────────
14 Seasons, 344 Episodes
├── Season 01: 13 episodes
│ ├── 01. Pilot
│ ├── 02. Community Spirit
│ ├── 03. Let Me Count the Ways
│ ├── 04. The Lie
│ ├── 05. Will the Circle Be Unbroken
│ ├── 06. Home is For Healing
│ ├── 07. Land of the Free
│ ├── 08. Civil Wives
│ ├── 09. Constant Companion
│ ├── 10. Small Surprises
│ ├── 11. Courageous Convictions
│ ├── 12. Bottom of the Bottle (1)
│ └── 13. Bottom of the Bottle (2)
├── Season 02: 18 episodes
│ ├── 01. Hitchhike (1)
│ ├── 02. Hitchhike (2)
│ ├── 03. Remember the Good Times
│ ├── 04. Chance of a Lifetime
│ ├── 05. Kristin
│ ├── 06. Step One (a.k.a.) Husbands and Lovers
│ ├── 07. Breach of Faith
│ ├── 08. Scapegoats
│ ├── 09. A Family Matter
│ ├── 10. Choices
│ ├── 11. A State of Mind
│ ├── 12. Players
│ ├── 13. The Loudest Word
│ ├── 14. Moments of Truth
│ ├── 15. Man of the Hour
│ ├── 16. More Than Friends
│ ├── 17. Designs
│ └── 18. Squeezeplay
├── Season 03: 22 episodes
│ ├── 01. The Vigil
│ ├── 02. Critical Condition
│ ├── 03. Aftermath
│ ├── 04. Moving In
│ ├── 05. The Surprise
│ ├── 06. One of a Kind
│ ├── 07. Secrets
│ ├── 08. Mistaken Motives
│ ├── 09. The Rose and the Briar
│ ├── 10. The Three Sisters
│ ├── 11. Power Play
│ ├── 12. Possibilities
│ ├── 13. Reunion
│ ├── 14. Cricket
│ ├── 15. Best Intentions
│ ├── 16. Silver Shadows
│ ├── 17. Letting Go (a.k.a.) Shadow Waltz
│ ├── 18. Expose
│ ├── 19. Night (a.k.a.) Nervous Breakdown
│ ├── 20. Acts of Love
│ ├── 21. China Dolls (a.k.a.) Obsession
│ └── 22. Living Dangerously
├── Season 04: 22 episodes
│ ├── 01. A Brand New Day
│ ├── 02. Daniel
│ ├── 03. Encounters
│ ├── 04. Svengali
│ ├── 05. Catharsis
│ ├── 06. New Beginnings (a.k.a.) The Infatuation
│ ├── 07. Investments (a.k.a.) Fool's Gold
│ ├── 08. Man in the Middle
│ ├── 09. The Best Kept Secret
│ ├── 10. Emergency
│ ├── 11. Abby's Choice
│ ├── 12. The Block Party (a.k.a.) For All That, and All That
│ ├── 13. Cutting the Ties That Bind
│ ├── 14. And Teddy Makes Three (a.k.a.) Decisions
│ ├── 15. To Have and To Hold
│ ├── 16. A New Family
│ ├── 17. The Morning After
│ ├── 18. Celebration
│ ├── 19. Loss of Innocence
│ ├── 20. The Fatal Blow
│ ├── 21. The Burden of Proof
│ └── 22. Willing Victims
├── Season 05: 25 episodes
│ ├── 01. The People vs. Gary Ewing
│ ├── 02. Fugitives
│ ├── 03. Nowhere to Run
│ ├── 04. Marital Privileges
│ ├── 05. One Kind of Justice
│ ├── 06. ...And Never Brought to Mind
│ ├── 07. Sacred Vows
│ ├── 08. A Change of Heart
│ ├── 09. Money Talks
│ ├── 10. Homecoming
│ ├── 11. I'll Tell You No Lies
│ ├── 12. Denials
│ ├── 13. Witness
│ ├── 14. Secrets Cry Aloud
│ ├── 15. Forsaking All Others
│ ├── 16. Reconcilable Differences
│ ├── 17. Second Chances
│ ├── 18. Lest the Truth be Known
│ ├── 19. So Shall You Reap
│ ├── 20. High Ideals
│ ├── 21. No Trumpets, No Drums
│ ├── 22. Silent Missions
│ ├── 23. Finishing Touches
│ ├── 24. Yesterday, It Rained
│ └── 25. Negotiations
├── Season 06: 30 episodes
│ ├── 01. Buying Time
│ ├── 02. Calculated Risks
│ ├── 03. Hanging Fire
│ ├── 04. A Little Help
│ ├── 05. Ipso Facto
│ ├── 06. Truth and Consequences
│ ├── 07. Love to Take You Home
│ ├── 08. Tomorrow Never Knows
│ ├── 09. We Come Together
│ ├── 10. Message in a Bottle
│ ├── 11. Distant Locations
│ ├── 12. Uncharted Territory
│ ├── 13. Weighing of Evils
│ ├── 14. #14 With a Bullet
│ ├── 15. Inside Information
│ ├── 16. Out of the Past
│ ├── 17. Lead Me to the Altar
│ ├── 18. Fly Away Home
│ ├── 19. Rough Edges
│ ├── 20. The Emperor's Clothes
│ ├── 21. The Deluge
│ ├── 22. A Piece of the Pie
│ ├── 23. The Forest for the Trees
│ ├── 24. A Man of Good Will
│ ├── 25. For Better, For Worse
│ ├── 26. Four, No Trump
│ ├── 27. A Price to Pay
│ ├── 28. One Day in a Row
│ ├── 29. Vulnerable
│ └── 30. The Long and Winding Road
├── Season 07: 30 episodes
│ ├── 01. The Longest Day
│ ├── 02. Here in My Arms
│ ├── 03. While the Cat's Away
│ ├── 04. The Christening
│ ├── 05. A Little Assistance
│ ├── 06. A Question of Trust
│ ├── 07. Awakenings
│ ├── 08. Pictures at a Wedding
│ ├── 09. Until Parted by Death
│ ├── 10. Rise and Fall
│ ├── 11. To Sing His Praise
│ ├── 12. All's Well
│ ├── 13. Aftershocks
│ ├── 14. Unbroken Bonds
│ ├── 15. Web of Lies
│ ├── 16. The Confession
│ ├── 17. Alterations
│ ├── 18. Friendly Enemies
│ ├── 19. A Key to a Woman's Heart
│ ├── 20. A Very Special Gift
│ ├── 21. Irrevocably Yours
│ ├── 22. High School Confidential
│ ├── 23. Distant Rumblings
│ ├── 24. Phoenix Rising
│ ├── 25. The Legacy
│ ├── 26. Arsenic and Old Waste
│ ├── 27. A Change of Heart
│ ├── 28. His Brother's Keeper
│ ├── 29. Thicker Than Water
│ └── 30. The Longest Night
├── Season 08: 30 episodes
│ ├── 01. Just Disappeared (1)
│ ├── 02. Distant Echoes (2)
│ ├── 03. Reunion
│ ├── 04. Past Tense
│ ├── 05. Slow Burn
│ ├── 06. For Appearance's Sake
│ ├── 07. All Over But the Shouting
│ ├── 08. Pressure Points
│ ├── 09. Brothers and Mothers (a.k.a.) Brotherly Love and Family
│ │ Business
│ ├── 10. Over the Edge
│ ├── 11. A Turn of Events
│ ├── 12. Touch and Go
│ ├── 13. The Inside Man
│ ├── 14. Gifts
│ ├── 15. Truth Will Out
│ ├── 16. The Unraveling
│ ├── 17. No Miracle Worker
│ ├── 18. My True Love
│ ├── 19. Never Trick a Trickster
│ ├── 20. A Plan of Action
│ ├── 21. Survival of the Fittest
│ ├── 22. In Mourning
│ ├── 23. Nightmare
│ ├── 24. Neighborly Conduct
│ ├── 25. Deadly Combination
│ ├── 26. Our Secret
│ ├── 27. Breakup
│ ├── 28. Parental Guidance
│ ├── 29. Do Not Fold, Spindle, or Mutilate
│ └── 30. Cement the Relationship
├── Season 09: 29 episodes
│ ├── 01. Missing Persons
│ ├── 02. The Trouble with Peter
│ ├── 03. Under Pressure
│ ├── 04. Half-Truths
│ ├── 05. There are Smiles
│ ├── 06. The Gift of Life
│ ├── 07. Say Uncle
│ ├── 08. Love In
│ ├── 09. Flight of the Sunbirds
│ ├── 10. Noises Everywhere (1)
│ ├── 11. Noises Everywhere (2)
│ ├── 12. Weak Moment
│ ├── 13. Only 'Til Friday
│ ├── 14. Ties That Bind
│ ├── 15. Another Modest Proposal
│ ├── 16. If Not Now, When?
│ ├── 17. In Too Deep (a.k.a.) Courtland Tubor
│ ├── 18. The Blushing Bride
│ ├── 19. Lawfully Wedded
│ ├── 20. Bouncing Babies
│ ├── 21. A Fair Race
│ ├── 22. Full Disclosure
│ ├── 23. Her Letter
│ ├── 24. Mother Knows Best
│ ├── 25. With a Heavy Heart
│ ├── 26. Just Desserts
│ ├── 27. Discovery
│ ├── 28. The Perfect Alibi
│ └── 29. The Perfect Crime
├── Season 10: 28 episodes
│ ├── 01. Suicidal
│ ├── 02. Borderline
│ ├── 03. Deserted
│ ├── 04. The Pick-Up Game
│ ├── 05. Sex and Violence
│ ├── 06. A Weekend Getaway
│ ├── 07. The Briar Patch
│ ├── 08. A Fine Romance
│ ├── 09. A Many Splendored Thing
│ ├── 10. Cabin Fever
│ ├── 11. Merger Made in Heaven
│ ├── 12. Mrs. Peacock in the Library with the Lead Pipe
│ ├── 13. Colonel Mustard in the Conservatory with the Wrench
│ ├── 14. Without a Clue
│ ├── 15. The Spin Doctor
│ ├── 16. Poor Jill
│ ├── 17. Double Jeopardy
│ ├── 18. A Grave Misunderstanding
│ ├── 19. Guilty Until Proven Innocent
│ ├── 20. Birds Do It, Bees Do It
│ ├── 21. Giganticus II: The Revenge
│ ├── 22. Dial M for Modem
│ ├── 23. That's What Friends Are For
│ ├── 24. The Perfect Opportunity
│ ├── 25. Straight Down the Line
│ ├── 26. The Heat of Passion
│ ├── 27. Down Came the Rain and Washed the Spider Out (1)
│ └── 28. Down Came the Rain and Washed the Spider Out (2)
├── Season 11: 29 episodes
│ ├── 01. Up the Spout Again
│ ├── 02. Poetic Justice
│ ├── 03. Prince Charming
│ ├── 04. Close Call
│ ├── 05. Best Interests
│ ├── 06. When Push Comes to Shove
│ ├── 07. Mixed Messages
│ ├── 08. The Good Guys
│ ├── 09. Perfect Couples
│ ├── 10. Never Judge a Book By Its Cover
│ ├── 11. Twice Victim
│ ├── 12. What a Swell Party This Is
│ ├── 13. Oh, Brother
│ ├── 14. Road Trip
│ ├── 15. My First Born
│ ├── 16. Out of Control
│ ├── 17. My Bullet
│ ├── 18. The Ripple Effect
│ ├── 19. The Grim Reaper
│ ├── 20. Wrong For Each Other
│ ├── 21. Good News, Bad News
│ ├── 22. Devil on My Shoulder
│ ├── 23. Home Sweet Home
│ ├── 24. Only Just Begun
│ ├── 25. The One to Blame
│ ├── 26. My Love Always
│ ├── 27. If I Die Before I Wake
│ ├── 28. The Fan Club
│ └── 29. Let's Get Married
├── Season 12: 27 episodes
│ ├── 01. Return Engagement
│ ├── 02. Blind Side
│ ├── 03. God Will
│ ├── 04. Dead But Not Buried
│ ├── 05. What If?
│ ├── 06. You Can Call Me Nick
│ ├── 07. Do not Attempt to Remove
│ ├── 08. The Best Laid Plans
│ ├── 09. Side by Side
│ ├── 10. The Lady or the Tiger
│ ├── 11. Asked to Rise
│ ├── 12. A Merry Little Christmas
│ ├── 13. The Unknown
│ ├── 14. Simmer
│ ├── 15. A Sense of Urgency
│ ├── 16. Always on Your Side
│ ├── 17. In the Dog House
│ ├── 18. Call Me Dimitri
│ ├── 19. Bad Dog
│ ├── 20. Gone Microfiching
│ ├── 21. Upwardly Mobile
│ ├── 22. An American Hero
│ ├── 23. Where There's a Will, There's a Way
│ ├── 24. The Last One Out
│ ├── 25. A Horse is a Horse
│ ├── 26. Play, Pause, Search (1)
│ └── 27. Dead Skunk (2)
├── Season 13: 22 episodes
│ ├── 01. The Gun Also Rises
│ ├── 02. The Question Game
│ ├── 03. Eye of the Beholder
│ ├── 04. I, Claudia
│ ├── 05. Home Again, Home Again
│ ├── 06. Business With Pleasure
│ ├── 07. 1,001 Nights of Anne Matheson
│ ├── 08. House of Cards
│ ├── 09. Victoria's Secret
│ ├── 10. Lost at Sea
│ ├── 11. Holiday on Ice
│ ├── 12. And the Walls Came Tumbling Down
│ ├── 13. The Torrents of Winter
│ ├── 14. Fair Warning
│ ├── 15. Letting Go
│ ├── 16. Baths and Showers
│ ├── 17. Denials
│ ├── 18. Dedicated to the One I Love
│ ├── 19. Trials and Tribulations
│ ├── 20. Sea of Love
│ ├── 21. Do You Love Me?
│ └── 22. Little Girl Lost
└── Season 14: 19 episodes
├── 01. Found and Lost
├── 02. Lovers and Other Strangers
├── 03. The Children's Hour
├── 04. Rescue Me
├── 05. Love and Death
├── 06. The Price
├── 07. Bye-Bye, Love
├── 08. A Death in the Family
├── 09. Some Like it Hot
├── 10. The Invisible Man
├── 11. The Getaway
├── 12. Call Waiting
├── 13. Farewell, My Lovely
├── 14. The Way Things Were
├── 15. Hints and Evasions
├── 16. My Kingdom for a Horse
├── 17. Day of the Assassin
├── 18. Just Like Old Times (1)
└── 19. Just Like Old Times (2)
C:\devine> -
But failure with this command:
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> -
-
C:\unshackle>uv run unshackle dl -l en -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 ───────────────
╭───────────────────── 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> -
-
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/en-GB/show/mr-bean
Code:https://watch.plex.tvshow/mr-bean
[Attachment 88688 - Click to enlarge]
[Attachment 88689 - Click to enlarge]Noob Starter Pack. Just download every Widevine mpd! Not kidding!.
https://files.videohelp.com/u/301890/hellyes6.zip
Similar Threads
-
Devine - Modular Movie, TV, and Music Archival Software
By billybanana in forum Video Streaming DownloadingReplies: 1831Last Post: 31st Aug 2025, 08:40 -
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