VideoHelp Forum




+ Reply to Thread
Page 1 of 2
1 2 LastLast
Results 1 to 30 of 53
  1. I know there are several variations of scripts for All4, but I have yet to see any that offers batch downloading so I made one.

    You need pywidevine module and your own CDM. If you already have something like WKS, this script should fit right in.

    This program takes URL as input and supports single episode, range of episodes, full season, and quality selection. See script documentation for examples.

    You'll find the script here: https://github.com/stabbedbybrick/freevine

    Please use Freevine support thread from here on out: https://forum.videohelp.com/threads/411643-Freevine-support-thread
    Last edited by stabbedbybrick; 18th Sep 2023 at 10:40. Reason: Added script to github
    Quote Quote  
  2. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Working for a release group? That labelling is a give away.
    Quote Quote  
  3. Originally Posted by A_n_g_e_l_a View Post
    Working for a release group? That labelling is a give away.
    Definitely not. I just like to follow naming conventions for archival purposes.
    Quote Quote  
  4. Member
    Join Date
    Dec 2022
    Location
    Lesotho
    Search Comp PM
    @stabbedbybrick Thanks very much!
    Quote Quote  
  5. Originally Posted by sipho View Post
    @stabbedbybrick Thanks very much!
    You're very welcome!
    Quote Quote  
  6. Hello,
    I've tried your first example (python all4.py --episode S01E01 https://www.channel4.com/programmes/spin-city) with this set of WKS-KEYS https://github.com/weapon121/WKS-KEY/releases/tag/WKS-KEY and I've received this message: 'None type' object is not subscriptable.
    What's wrong?
    Quote Quote  
  7. Originally Posted by Isotta View Post
    Hello,
    I've tried your first example (python all4.py --episode S01E01 https://www.channel4.com/programmes/spin-city) with this set of WKS-KEYS https://github.com/weapon121/WKS-KEY/releases/tag/WKS-KEY and I've received this message: 'None type' object is not subscriptable.
    What's wrong?
    It works fine here so you're missing something. Do you have a valid UK IP-address? Is your CDM valid? Paste the entire error message and we can maybe get a better idea of what's going on.
    Quote Quote  
  8. Originally Posted by stabbedbybrick View Post
    It works fine here so you're missing something. Do you have a valid UK IP-address? Is your CDM valid? Paste the entire error message and we can maybe get a better idea of what's going on.
    Thank you. Well, my CDM should be valid (I've tested with www.tg4.ie) and the UK IP address is working, I can see the show on the site.
    I'm using Windows 11 and Python 3.11.5.
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot3a.jpg
Views:	227
Size:	222.9 KB
ID:	73462  

    Quote Quote  
  9. Originally Posted by stabbedbybrick View Post
    You're running the wrong script... That is the script for CTV. You want all4.py: https://github.com/stabbedbybrick/freevine/blob/main/all4.py
    I must say I had the doubt after seeing the content of the script, but you have to edit your first post then.
    Just tried with the new script and now there's another message.

    Edit: I've tried to install the module lxml and now I got the message: "Getting decryption keys...Failed to get license! Error: An internal error with the LSP Module occurred"
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot4.jpg
Views:	67
Size:	50.4 KB
ID:	73463  

    Last edited by Isotta; 27th Aug 2023 at 11:54.
    Quote Quote  
  10. Originally Posted by Isotta View Post
    Originally Posted by stabbedbybrick View Post
    You're running the wrong script... That is the script for CTV. You want all4.py: https://github.com/stabbedbybrick/freevine/blob/main/all4.py
    I must say I had the doubt after seeing the content of the script, but you have to edit your first post then.
    Just tried with the new script and now there's another message.

    Edit: I've tried to install the module lxml and now I got the message: "Getting decryption keys...Failed to get license! Error: An internal error with the LSP Module occurred"
    Okay, that's on me. I keep messing up the links on this forum for some reason. I updated the first post.

    Run this command to install necessary Python libraries:

    Code:
    pip install httpx lxml click rich sortedcontainers google protobuf==3.19.5 pycryptodomex pycryptodome
    Quote Quote  
  11. Originally Posted by stabbedbybrick View Post
    Okay, that's on me. I keep messing up the links on this forum for some reason. I updated the first post.

    Run this command to install necessary Python libraries:

    Code:
    pip install httpx lxml click rich sortedcontainers google protobuf==3.19.5 pycryptodomex pycryptodome
    Same error.

    Don't know if it can help, but this is the list of my modules:
    Code:
    Package                  Version
    ------------------------ ---------
    anyio                    3.7.1
    beautifulsoup4           4.12.2
    cachetools               5.3.1
    certifi                  2023.7.22
    charset-normalizer       3.2.0
    click                    8.1.7
    colorama                 0.4.6
    google                   3.0.0
    google-api-core          2.11.1
    google-api-python-client 2.97.0
    google-auth              2.22.0
    google-auth-httplib2     0.1.0
    googleapis-common-protos 1.60.0
    h11                      0.14.0
    httpcore                 0.17.3
    httplib2                 0.22.0
    httpx                    0.24.1
    idna                     3.4
    lxml                     4.9.3
    markdown-it-py           3.0.0
    mdurl                    0.1.2
    pip                      23.2.1
    protobuf                 3.19.5
    pyasn1                   0.5.0
    pyasn1-modules           0.3.0
    pycryptodome             3.18.0
    pycryptodomex            3.18.0
    pyfiglet                 0.8.post1
    Pygments                 2.16.1
    pyparsing                3.1.1
    pyperclip                1.8.2
    pysubs2                  1.6.1
    requests                 2.31.0
    rich                     13.5.2
    rsa                      4.9
    selectolax               0.3.16
    setuptools               65.5.0
    six                      1.16.0
    sniffio                  1.3.0
    sortedcontainers         2.4.0
    soupsieve                2.4.1
    termcolor                2.3.0
    uritemplate              4.1.1
    urllib3                  1.26.16
    Image Attached Thumbnails Click image for larger version

Name:	Screenshot5.jpg
Views:	41
Size:	31.6 KB
ID:	73464  

    Last edited by Isotta; 27th Aug 2023 at 13:00.
    Quote Quote  
  12. Looks like there's an issue with your CDM. From where did you get it? A regular L3 is confirmed to work fine:

    Code:
    python all4.py --episode S01E01 https://www.channel4.com/programmes/spin-city
    
    19:55:49.843 INFO : Spin City: 6 Season(s), 145 Episode(s)
    
    19:55:51.288 INFO : Spin.City.S01E01.Pilot.1080p.ALL4.WEB-DL.AAC2.0.H.264
    19:55:51.288 INFO : b7cc79d6cb4dbadbe290d6ce749ba9d6:70a9f4b8e203770b8a5211e492972c0e
    Quote Quote  
  13. Originally Posted by stabbedbybrick View Post
    Looks like there's an issue with your CDM. From where did you get it? A regular L3 is confirmed to work fine:

    Code:
    python all4.py --episode S01E01 https://www.channel4.com/programmes/spin-city
    
    19:55:49.843 INFO : Spin City: 6 Season(s), 145 Episode(s)
    
    19:55:51.288 INFO : Spin.City.S01E01.Pilot.1080p.ALL4.WEB-DL.AAC2.0.H.264
    19:55:51.288 INFO : b7cc79d6cb4dbadbe290d6ce749ba9d6:70a9f4b8e203770b8a5211e492972c0e
    I'm using the files of this .rar https://github.com/weapon121/WKS-KEY/releases/tag/WKS-KEY
    Quote Quote  
  14. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    @stabbedbybrick And so it begins...

    Originally Posted by Isotta View Post
    Hello,
    I've tried your first example (python all4.py --episode S01E01 https://www.channel4.com/programmes/spin-city) with this set of WKS-KEYS https://github.com/weapon121/WKS-KEY/releases/tag/WKS-KEY and I've received this message: 'None type' object is not subscriptable.
    What's wrong?
    Quote Quote  
  15. Originally Posted by Isotta View Post
    You're using the CDM that comes with it? Well, there's your problem. It's dead. You need to get a new one. Channel4 unfortunately doesn't work with remote CDM either. Check the first stickied post on how to get one.



    Originally Posted by A_n_g_e_l_a
    @stabbedbybrick And so it begins...
    Quote Quote  
  16. Okay, I'll try. At least now I know the cause. Thank you for your patience!
    Quote Quote  
  17. Originally Posted by stabbedbybrick View Post

    You're using the CDM that comes with it? Well, there's your problem. It's dead. You need to get a new one. Channel4 unfortunately doesn't work with remote CDM either. Check the first stickied post on how to get one.
    I've changed my CDM and it works perfectly. I'm over the moon. Thank you very much!!!
    Quote Quote  
  18. I am very new to all of this. I've tried generating a CDM using Android Studio just like in the stickied post and have been trying to test it out with these scripts. Unfortunately I am getting errors I have no idea how to fix.

    Code:
    C:\Users\Oozer Naym\Downloads\freevine-main\freevine-main>python all4.py --episode S01E01 https://www.channel4.com/programmes/spin-city
    04:44:01.055 INFO : Spin City: 6 Season(s), 145 Episode(s)
    
    04:44:04.042 INFO : Spin.City.S01E01.Pilot.1080p.ALL4.WEB-DL.AAC2.0.H.264
    04:44:04.043 INFO : b7cc79d6cb4dbadbe290d6ce749ba9d6:70a9f4b8e203770b8a5211e492972c0e
    
    Traceback (most recent call last):
      File "C:\Users\Oozer Naym\Downloads\freevine-main\freevine-main\all4.py", line 478, in download
        subprocess.run(args, check=True)
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 505, in run
        with Popen(*popenargs, **kwargs) as process:
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 951, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1360, in _execute_child
        args = list2cmdline(args)
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 565, in list2cmdline
        for arg in map(os.fsdecode, seq):
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\os.py", line 822, in fsdecode
        filename = fspath(filename)  # Does type-checking of `filename`.
    TypeError: expected str, bytes or os.PathLike object, not NoneType
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "C:\Users\Oozer Naym\Downloads\freevine-main\freevine-main\all4.py", line 528, in <module>
        main()
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\site-packages\click\core.py", line 1157, in __call__
        return self.main(*args, **kwargs)
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\site-packages\click\core.py", line 1078, in main
        rv = self.invoke(ctx)
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\site-packages\click\core.py", line 1434, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "C:\Users\Oozer Naym\AppData\Local\Programs\Python\Python39\lib\site-packages\click\core.py", line 783, in invoke
        return __callback(*args, **kwargs)
      File "C:\Users\Oozer Naym\Downloads\freevine-main\freevine-main\all4.py", line 520, in main
        get_stream(**kwargs)
      File "C:\Users\Oozer Naym\Downloads\freevine-main\freevine-main\all4.py", line 420, in get_stream
        get_episode(quality, url, episode.upper()) if episode else None
      File "C:\Users\Oozer Naym\Downloads\freevine-main\freevine-main\all4.py", line 340, in get_episode
        download(episode, quality, str(series))
      File "C:\Users\Oozer Naym\Downloads\freevine-main\freevine-main\all4.py", line 480, in download
        raise ValueError(
    ValueError: Download failed. Install necessary binaries before downloading
    Odds are I've done something wrong but I don't know how to begin figuring out what it is. Advice would be appreciated.
    Quote Quote  
  19. Originally Posted by Isotta View Post
    I've changed my CDM and it works perfectly. I'm over the moon. Thank you very much!!!
    Nice, glad to hear it
    Quote Quote  
  20. Originally Posted by Trivial_Man View Post
    I am very new to all of this. I've tried generating a CDM using Android Studio just like in the stickied post and have been trying to test it out with these scripts. Unfortunately I am getting errors I have no idea how to fix.

    Code:
    code
    Odds are I've done something wrong but I don't know how to begin figuring out what it is. Advice would be appreciated.
    Your CDM is obviously fine, it looks like the error is related to N_m3u8DL-RE or actually saving the file. Do you have all the required libraries and tools properly installed? Do you have the proper ownership to that folder? Try running the script from a folder on your desktop with all binaries placed inside that folder and see if the error is still the same.

    I haven't used Windows in a minute so I'm a bit rusty, but from what I can remember the ownership could be a pain in the ass.
    Quote Quote  
  21. It was as simple as having N_m3u8DL-RE in the wrong location. Complete user error. Thank you.
    Quote Quote  
  22. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    can you check your freevine
    Code:
    dl.py all4 --episode S01E01 https://www.channel4.com/programmes/spin-city
    it showing error like Invalid assetID
    Quote Quote  
  23. Originally Posted by iamghost View Post
    can you check your freevine
    Code:
    dl.py all4 --episode S01E01 https://www.channel4.com/programmes/spin-city
    it showing error like Invalid assetID
    It's been updated and should be working now.
    Quote Quote  
  24. Member
    Join Date
    Dec 2021
    Location
    england
    Search Comp PM
    Originally Posted by stabbedbybrick View Post
    Originally Posted by iamghost View Post
    can you check your freevine
    Code:
    dl.py all4 --episode S01E01 https://www.channel4.com/programmes/spin-city
    it showing error like Invalid assetID
    It's been updated and should be working now.
    thank you, it working now
    Quote Quote  
  25. Hello.

    I created my own ID and Key with the emulated Android guide in this forum and I have the following files in this location:
    Image
    [Attachment 73778 - Click to enlarge]


    When trying to download anything I get the message "no client ID blob available for this device".

    Could you advise, please? I'm not sure where I'm going wrong. Thanks.
    Quote Quote  
  26. Rename them as expected in cdm/deviceconfig.py; or put your filenames into the dict in that file.

    Names expected are device_client_id_blob and device_private_key - without any file ending!
    Quote Quote  
  27. Originally Posted by Obo View Post
    Rename them as expected in cdm/deviceconfig.py; or put your filenames into the dict in that file.

    Names expected are device_client_id_blob and device_private_key - without any file ending!
    Awesome, this works. First time I ever got something downloaded from Channel 4 and I've tried several methods today but always got stuck somewhere. Thanks all.
    Quote Quote  
  28. Member
    Join Date
    Dec 2021
    Location
    Scotland
    Search Comp PM
    I've tried this with Angela's amended pywidevine which allows protobuf 4 as per: https://forum.videohelp.com/threads/411509-WKS_KEYS-updated-protobuf-to-version-4. What a superb piece of script in terms of automation and ability to collect multiple episodes. Thank you stabbedbybrick. I've tried various combinations for All4, UKTV, STV (both normal and encrypted). Great. I couldn't download from ITVX though with any show. freevine.py --titles works fine for ITVX. But downloading, it fails after initial INFO (when fetching titles).
    Quote Quote  
  29. Originally Posted by deccavox View Post
    I couldn't download from ITVX though with any show. freevine.py --titles works fine for ITVX. But downloading, it fails after initial INFO (when fetching titles).
    What's the error message? I just tried 4 random shows from the ITV start page and they all worked.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!