Overview
The following is a semi-automated guide to install stabbedbybrick's fork of Devine, any dependencies and stabbedbybrick's Devine services!
The fork has these added features:(see full changelog here)
- Adds N_m3u8DL-RE as a downloader
- Download audio and video tracks directly instead of via a proxy
This guide assumes a few things:If any of these are not true, please proceed with caution.
- OS is Windows 11 24H2
- Python is not already installed
- Git is not already installed
- Required binaries will be downloaded to C:\devine-bin
- Devine will be downloaded to C:\devine
- Devine services will be downloaded to C:\devine-services
1. Python Installation
Note: Python 3.13.0 support is not available at the time of posting this guide
- Open a new Command Prompt (cmd.exe) instance
- Download the 3.12.7 64-bit Windows installer release of Python:
Code:curl -L -O https://www.python.org/ftp/python/3.12.7/python-3.12.7-amd64.exe- Execute the following:
Code:python-3.12.7-amd64.exe /passive PrependPath=1 Include_tcltk=0 Include_test=0
2. Git Installation
- Download the latest 64-bit version of git from: https://git-scm.com/downloads/win
- Install - accept all the default options if you are unsure
3. Other Binary Dependencies
- Execute the following:
Code:mkdir C:\devine-bin && cd C:\devine-bin curl -L -O https://github.com/shaka-project/shaka-packager/releases/download/v2.6.1/packager-win-x64.exe curl -L -O https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-7.1-essentials_build.zip tar -x -f ffmpeg-7.1-essentials_build.zip ffmpeg-7.1-essentials_build/bin move ffmpeg-7.1-essentials_build\bin\* . && rmdir /S /Q ffmpeg-7.1-essentials_build && del ffmpeg-7.1-essentials_build.zip curl -L -O https://github.com/nilaoda/N_m3u8DL-RE/releases/download/v0.2.1-beta/N_m3u8DL-RE_Beta_win-x64_20240828.zip tar -x -f N_m3u8DL-RE_Beta_win-x64_20240828.zip move N_m3u8DL-RE_Beta_win-x64\N_m3u8DL-RE.exe . && rmdir /S /Q N_m3u8DL-RE_Beta_win-x64 && del N_m3u8DL-RE_Beta_win-x64_20240828.zip curl -L -O https://mkvtoolnix.download/windows/releases/87.0/mkvtoolnix-64-bit-87.0.7z tar -x -f mkvtoolnix-64-bit-87.0.7z mkvtoolnix/mkvmerge.exe move mkvtoolnix\mkvmerge.exe . && rmdir /S /Q mkvtoolnix && del mkvtoolnix-64-bit-87.0.7z curl -L -O https://github.com/CCExtractor/ccextractor/releases/download/v0.93/CCExtractor.msi msiexec /a CCExtractor.msi TARGETDIR="C:\devine-bin\ccextractor_temp" /q move ccextractor_temp\PFiles\CCExtractor . && rmdir ccextractor_temp /S /Q && del CCExtractor.msi
4. Devine Installation
- Open a new Command Prompt (cmd.exe) instance
- Execute the following:
Code:mkdir C:\devine git clone https://github.com/stabbedbybrick/devine.git C:\devine cd C:\devine git checkout n_m3u8dl_re python.exe -m pip install --upgrade pip pip install --upgrade setuptools pip install poetry python -m venv venv venv\Scripts\activate.bat poetry config virtualenvs.in-project true poetry install
5. Devine Services Installation
- Execute the following:
Code:mkdir C:\devine-services git clone https://cdm-project.com/stabbedbybrick/devine-services.git C:\devine-services
6. Configure Devine
- Execute the following:
Code:mkdir %LOCALAPPDATA%\devine\WVDs- Add your Widevine Device (.wvd) file to this directory - not covered in this guide. Information is readily available elsewhere in this forum!
- Execute the following to create a new config file:
Code:notepad %LOCALAPPDATA%\devine\devine.yaml- Add the following lines to the config file, replacing {} with the correct values:
Code:directories: services: C:\devine-services\services credentials: ALL4: {ALL4 USERNAME}:{ALL4 PASSWORD} cdm: default: {NAME OF WVD FILE WITHOUT EXTENSION} downloader: n_m3u8dl_re n_m3u8dl_re: use_proxy: false dl: downloads: 4 workers: 16 sub_format: srt
7. Final Steps
- Add binary directories to the user path. Execute the following:
Code:for /f "usebackq tokens=2,*" %A in (`reg query HKCU\Environment /v PATH`) do set USER_PATH=%B setx PATH "C:\devine-bin;C:\devine-bin\CCExtractor;%USER_PATH%"- Create a user friendly shortcut. Execute the following:
Code:echo @echo off > "%LOCALAPPDATA%\Programs\Python\Python312\Scripts\devine.bat" echo C:\devine\venv\Scripts\python.exe C:\devine\venv\Scripts\devine %* >> "%LOCALAPPDATA%\Programs\Python\Python312\Scripts\devine.bat"
8. Test
- Open a new Command Prompt (cmd.exe) instance
- Test the install by downloading an episode of Gogglebox from the ALL4 service:
Code:devine dl -w S24E10 all4 gogglebox- Once completed. The video file (mkv) should be in a directory in %USERPROFILE%\Downloads\devine\
Thanks to @pssh for the previous guides - used as a basis for the above!
And finally a special thanks to @stabbedbybrick for the devine fork and of course all the services!
+ Reply to Thread
Results 1 to 22 of 22
-
Last edited by SaintyUK; 27th Nov 2024 at 11:51.
-
Hi Sainty. Here's the bottom half of my attempt to install the Other Binary Dependencies (Step 3). The CLI hangs. Can you interpret what the problem is (something to do with toolnix by the look of it)? Many thanks indeed.
Code:C:\devine-bin>curl -L -O https://mkvtoolnix.download/windows/releases/87.0/mkvtoolnix-64-bit-87.0.7z % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 26.7M 100 26.7M 0 0 2845k 0 0:00:09 0:00:09 --:--:-- 2912k C:\devine-bin>tar -x -f mkvtoolnix-64-bit-87.0.7z mkvtoolnix/mkvmerge.exe tar: LZMA codec is unsupported tar: mkvtoolnix/mkvmerge.exe: Not found in archive tar: Error exit delayed from previous errors. C:\devine-bin>move mkvtoolnix\mkvmerge.exe . && rmdir /S /Q mkvtoolnix && del mkvtoolnix-64-bit-87.0.7z The system cannot find the file specified. C:\devine-bin>curl -L -O https://github.com/CCExtractor/ccextractor/releases/download/v0.93/CCExtractor.msi % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 22.8M 100 22.8M 0 0 2634k 0 0:00:08 0:00:08 --:--:-- 2911k C:\devine-bin>msiexec /a CCExtractor.msi TARGETDIR="C:\devine-bin\ccextractor_temp" /q C:\devine-bin>move ccextractor_temp\PFiles\CCExtractor . && rmdir ccextractor_temp /S /Q && del CCExtractor.msi
-
Thanks for sharing the guide
--[----->+<]>.++++++++++++.---.--------.
[*drm mass downloader: widefrog*]~~~[*how to make your own mass downloader: guide*] -
-
Hello again, Sainty. My C drive is smallish and I like to put as little in there as possible. Accordingly,I put my devine in the folder D:\Free after executing the steps in your guide one at a time to make sure my amendments didn't cause the CLI commands to fail. It seemed to go well until I tried to test it and got this:
Code:D:\Free\devine>devine dl -w S24E10 all4 gogglebox File "D:\Free\devine\venv\Scripts\devine", line 2 D:\Free\devine\venv\Scripts\python.exe ^ SyntaxError: unexpected character after line continuation character
-
-
No problem. The second cap is the script where I thought the problem was (given that it began with a hash and an exclamation mark). I amended it (my amendment is the line below the #! line) but it made no difference.
Last edited by pooksahib; 22nd Nov 2024 at 15:17.
-
Looks pretty good to me. Does the following work?
Code:cd /D D:\Free\devine venv\Scripts\activate.bat devine dl -w S24E10 all4 gogglebox
-
Having thought about this again, I'm not entirely sure why in your instance this is required, but I'm fairly confident this will work for you:
Code:echo "@echo off" > "C:\Program Files\Python312\Scripts\devine.bat" echo """D:\Free\devine\venv\Scripts\python.exe"" ""D:\Free\devine\venv\Scripts\devine"" %*" >> "C:\Python311\Scripts\devine.bat"
-
Hi again. No, that code wasn't a fix, unfortunately. I've moved devine out of the Free folder so it's now D:\devine. Hopefully, I found all the references to Free and deleted them. Here's what happens when I run the 'test download' command. It seems to be running (without having been asked) that command you just gave me. Is there a way to 'clear' that command?
-
Sainty: Step 7b is "Create a user friendly shortcut. Execute the following:..." Is it essential to do this (to my mind shortcut=optional)? And what IS the shortcut, what does it make me do differently when running, say, "devine dl -w S24E10 all4 gogglebox"? Thank you.
-
-
Noted, thanks for that, I've now run the shortcut. Doing your test was only halfway successful, though. The Service was Authenticated but a Token wasn't valid. I couldn't find anything regarding invalid tokens that I could understand so I wonder if you could suggest cause and cure? Thanks.
-
Never seen that before. Try deleting the cache directory for the all4 service: %LOCALAPPDATA%\devine\Cache\ALL4
-
That's got it, nice one, thanks. Howevah... Can you tell me anything about this (again, can't seem to google anything useful). I'm in the UK and I turned off the VPN before running. Continued thanks...
IGNORE. Putting a hash before "downloader: n_m3u8dl_re" in the yaml fixed it. Don't know why...Last edited by pooksahib; 27th Nov 2024 at 05:07.
-
-
If I can put it another way, then: if my Python was already installed would I need to run
Code:(pythonversion).exe /passive PrependPath=1 Include_tcltk=0 Include_test=0
-
No, it does nothing nothing special. Just installs Python and includes in the PATH.
-
Thank you SaintyUK for all this help!
I've installed devine, after falling foul of the 7z trap and the cache problem, both of which you've sorted out above. One thing not mentioned is the naming convention for series: they have to be in lower-case, with space replaced by a hyphen (not an underscore).
I've been playing with ITV downloads and thought it might help others if I gave some examples. The main thing is that you have to find the URL of the whole series by logging on to ITVX. You don't have to set up a new service - it just works
This downloads Ring out your dead from Midsomer Murders. Note s5e3 is fine (no need for leading zeros):
devine dl -w s5e3 itv https://www.itv.com/watch/midsomer-murders/Ya1096
This lists information about all the episodes (which you will probably cancel, since there are so many):
devine dl --list itv https://www.itv.com/watch/midsomer-murders/Ya1096
This lists information about just one episode, so you can check the quality available:
devine dl -–list -w s5e3 itv https://www.itv.com/watch/midsomer-murders/Ya1096
If you want to limit the quality, add a -q flag: devine dl -q 720p -w s5e3 itv https://www.itv.com/watch/midsomer-murders/Ya1096
One thing I haven't worked out is how to change the target directory, because I'd like to make that Downloads rather than the default.
But the main point of this post is to say thank you for such clear instructions and scripts - much better than the usual confusing jumble of things that half work, with steps omitted. -
I'd suggest always checking the help for each service, for example: devine dl all4 -?
Also don't forget about the search functionality. It should give you the correct string to use in the dl command.
Thank you for the feedback. Much appreciated!
Similar Threads
-
VirtualDub2 Fork By v0lt
By CarlOtto in forum Video ConversionReplies: 18Last Post: 1st Feb 2025, 17:53 -
help with install Devine
By macos in forum Video Streaming DownloadingReplies: 2Last Post: 14th Aug 2024, 05:58 -
VirtualDub fork and plugins
By shekh in forum EditingReplies: 186Last Post: 28th Sep 2023, 12:39 -
BDSup2Sub++ new fork
By Ennio in forum SubtitleReplies: 0Last Post: 25th May 2022, 04:12 -
SubXtractor - semi-automated hardcoded subtitle extractor
By TrashBoat in forum SubtitleReplies: 5Last Post: 23rd Apr 2022, 10:13