├── LICENSE ├── README.md ├── YouTube-DL Suite ├── YouTube-DL Suite.cmd └── tools │ ├── check │ ├── mpv │ ├── d3dcompiler_43.dll │ ├── input.conf │ ├── mpv.conf │ └── mpv.exe │ ├── msvcr100.dll │ ├── phantomjs.exe │ ├── unzip_me.7z │ ├── version │ ├── wget.exe │ └── yt-dlp.exe ├── _config.yml └── img └── logo.png /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 | ## Introduction 6 | 7 | [**YouTube-DL Suite**](https://github.com/MinorMole/YouTube-DL-Suite/releases/latest) lets you use [**yt-dlp**](https://github.com/yt-dlp/yt-dlp) with ease and typeless command. 8 | 9 | ## Feature 10 | 11 | - Fully Portable with Everything you ever need for [**yt-dlp**](https://github.com/yt-dlp/yt-dlp) 12 | - Download Video 13 | - Download Audio Only 14 | - Video Archival Mode 15 | - Audio Only Archival Mode 16 | - Download Subtitle 17 | - Download Thumbnail 18 | - Download Live Streaming with an [**FFmpeg**](https://ffmpeg.org) 19 | - Watch Live Streaming with an [**mpv**](https://mpv.io) 20 | - Extractor Listing Mode 21 | - Playlist Extraction Format Presets 22 | - Full Authorization (Login, Cookie, Referrer, and User-Agent) 23 | - All essential commands (Embed Subtitle, Description, Thumbnail, and More!) 24 | - Auto-Update both [**YouTube-DL Suite**](https://github.com/MinorMole/YouTube-DL-Suite/releases/latest) and [**yt-dlp**](https://github.com/yt-dlp/yt-dlp) 25 | 26 | ## Usage 27 | 28 | 1. [**Download YouTube-DL Suite.**](https://github.com/MinorMole/YouTube-DL-Suite/releases/latest/download/YouTube-DL.Suite.zip) Then extract the folder to where you want. 29 | 30 | 2. There are two ways of opening **YouTube-DL Suite**. 31 | 32 | 1. Copy links into your clipboard (one link for each line) then open **"YouTube-DL Suite.cmd"**, it will get links from your clipboard. 33 | 34 | 2. Drag and Drop text file (.txt) that contains links (one link for each line) into **"YouTube-DL Suite.cmd"**, it will get links from your text file. 35 | 36 | > **It also supports the playlist link even a search link, it will download all the video in the link. The link can be any form, for example:** 37 | > - https://www.youtube.com/watch?v=fsnGeRfAI2I 38 | > - https://youtu.be/kXoeH9xUef4 39 | > - https://www.youtube.com/playlist?list=PLZ34fLWik_iAP2AdGLOHthUhAJTrEXqGb 40 | > - https://www.youtube.com/playlist?list=UUqm3BQLlJfvkTsX_hvm0UmA 41 | > - https://www.youtube.com/channel/UCqm3BQLlJfvkTsX_hvm0UmA 42 | > - https://www.youtube.com/results?search_query=watame 43 | 44 | 3. Follow the instruction that shows in the command line window. You can select the choice by either press the number on the Numpad or press the **Y** or **N** key on your keyboard for **Yes** or **No** answer. 45 | 46 | 4. Enjoy. 47 | 48 | ## Note 49 | 50 | - If you want to download the whole YouTube channel. You can do so by using a URL of the channel. 51 | - We recommend using authorization with referrer when download a large batch even on a public YouTube video to prevent a robotic checker on your address. 52 | - Yes, with authorization you can download a member-only video or paid program. 53 | - Please do not re-upload the video or redistribute them publicly if you don't have a right to do so. 54 | 55 | ## ⚠ Warning ⚠ 56 | 57 | - Don't select text on the console while it running, it'll pause the console, and video will be lost during a pause. If you don't want unintentionally pause the console, you can disable the QuickEdit by following this [**instruction**](https://stackoverflow.com/questions/37578529/disable-quickedit-in-windows-10-cmd-exe?answertab=votes#tab-top). 58 | - When you use cookie authorization make sure you keep your cookies.txt on an uncompromised computer. 59 | 60 | ## Licence 61 | 62 | [**The Unlicense.**](https://github.com/MinorMole/YouTube-DL-Suite/blob/master/LICENSE) 63 | -------------------------------------------------------------------------------- /YouTube-DL Suite/YouTube-DL Suite.cmd: -------------------------------------------------------------------------------- 1 | @ECHO OFF & CLS 2 | SET DEBUG=False 3 | SET VERSION=2022.07.27 4 | SET USER_AGENT=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36 5 | TITLE YouTube-DL Suite [%VERSION%] 6 | 7 | FOR /F %%a IN ('PowerShell -Command "Get-Date -format HHmmssffff"') DO SET TIMENOW=%%a 8 | IF %DEBUG%==True SET VERBOSE=--verbose 9 | IF "%~1"=="" ( 10 | PowerShell -Command "Get-Clipboard" > "%TEMP%\%TIMENOW%_Link.txt" 11 | SET LINK="%TEMP%\%TIMENOW%_Link.txt" 12 | ) ELSE ( 13 | IF EXIST "%~1" ( 14 | IF "%~x1"==".txt" ( 15 | SET LINK="%~1" 16 | ) ELSE ( 17 | CLS & ECHO ################################# & ECHO. & ECHO ONLY TEXT FILE ^(.txt^) ARE ALLOWED & ECHO. & ECHO ################################# & ECHO. & PAUSE 18 | GOTO :END 19 | ) 20 | ) ELSE ( 21 | CLS & ECHO ############## & ECHO. & ECHO FILE NOT FOUND & ECHO. & ECHO ############## & ECHO. & PAUSE 22 | GOTO :END 23 | ) 24 | ) 25 | TASKLIST /FI "IMAGENAME EQ yt-dlp.exe" 2>NUL | FIND /I /N "yt-dlp.exe">NUL 26 | IF NOT %ERRORLEVEL%==0 CALL :DAILY_CHECK_UPDATE 27 | 28 | :MODE 29 | CLS 30 | ECHO [0] Download Video 31 | ECHO [1] Download Video ^(Archival^) 32 | ECHO [2] Download Audio Only 33 | ECHO [3] Download Audio Only ^(Archival^) 34 | ECHO [4] Download Live Streaming 35 | ECHO [5] Watch Live Streaming 36 | ECHO [6] Get Subtitle 37 | ECHO [7] Get Thumbnail 38 | ECHO [8] Listing Supported Websites 39 | ECHO. 40 | CHOICE /C 012345678 /N /M "Choose Mode:" 41 | IF %ERRORLEVEL%==1 SET MODE=VIDEO 42 | IF %ERRORLEVEL%==2 SET MODE=VIDEO_ARCHIVAL 43 | IF %ERRORLEVEL%==3 SET MODE=AUDIO 44 | IF %ERRORLEVEL%==4 SET MODE=AUDIO_ARCHIVAL 45 | IF %ERRORLEVEL%==5 SET MODE=DOWNLOAD_LIVE 46 | IF %ERRORLEVEL%==6 SET MODE=LIVE 47 | IF %ERRORLEVEL%==7 SET MODE=SUBTITLE 48 | IF %ERRORLEVEL%==8 SET MODE=THUMBNAIL 49 | IF %ERRORLEVEL%==9 CALL :LIST_WEBSITE 50 | 51 | IF %MODE%==VIDEO ( 52 | CALL :VIDEO_SELECTION 53 | CALL :PLAYLIST 54 | ) 55 | IF %MODE%==VIDEO_ARCHIVAL ( 56 | SET ARCHIVAL=True 57 | SET DATABASE=--write-annotations --download-archive "%~d0%~p0YouTube-DL Suite (Archive).txt" 58 | CALL :VIDEO_SELECTION 59 | CALL :PLAYLIST 60 | ) 61 | IF %MODE%==AUDIO ( 62 | CALL :AUDIO_SELECTION 63 | CALL :PLAYLIST 64 | ) 65 | IF %MODE%==AUDIO_ARCHIVAL ( 66 | SET ARCHIVAL=True 67 | SET DATABASE=--write-annotations --download-archive "%~d0%~p0YouTube-DL Suite (Archive).txt" 68 | CALL :AUDIO_SELECTION 69 | CALL :PLAYLIST 70 | ) 71 | IF %MODE%==DOWNLOAD_LIVE ( 72 | CALL :DOWNLOAD_LIVE_SELECTION 73 | ) 74 | IF %MODE%==LIVE ( 75 | CALL :LIVE_SELECTION 76 | ) 77 | IF %MODE%==SUBTITLE ( 78 | CALL :SUBTITLE 79 | CALL :PLAYLIST 80 | ) ELSE ( 81 | IF %MODE%==THUMBNAIL ( 82 | SET THUMBNAIL=--skip-download --write-thumbnail --convert-thumbnails png 83 | CALL :PLAYLIST 84 | ) ELSE ( 85 | SET THUMBNAIL=--embed-thumbnail 86 | SET SUBTITLE=--all-subs --embed-subs --sub-format best 87 | ) 88 | ) 89 | 90 | :AUTH 91 | CLS 92 | ECHO Authorization is necessary when the link is not publicly available or age restriction. 93 | ECHO. 94 | CHOICE /C yn /M "Authorization Requirements" 95 | IF %ERRORLEVEL%==1 CALL :AUTH_MODE 96 | 97 | IF %MODE%==VIDEO CALL :VIDEO 98 | IF %MODE%==VIDEO_ARCHIVAL CALL :VIDEO 99 | IF %MODE%==AUDIO CALL :AUDIO 100 | IF %MODE%==AUDIO_ARCHIVAL CALL :AUDIO 101 | IF %MODE%==DOWNLOAD_LIVE CALL :DOWNLOAD_LIVE 102 | IF %MODE%==LIVE CALL :LIVE 103 | IF %MODE%==SUBTITLE CALL :VIDEO 104 | IF %MODE%==THUMBNAIL CALL :VIDEO 105 | 106 | GOTO :END 107 | 108 | :VIDEO 109 | CLS & "%~d0%~p0tools\yt-dlp.exe" %VERBOSE% %COOKIES_CMD% %LOGIN_CMD% %REFERER% %DELAY% --user-agent "%USER_AGENT%" --no-check-certificate --geo-bypass -i --ignore-config --no-warnings --fragment-retries infinite --console-title --yes-playlist %PLAYLIST_REVERSE% --prefer-ffmpeg --ffmpeg-location "%~d0%~p0tools\ffmpeg.exe" %DATABASE% --embed-metadata %SUBTITLE% %THUMBNAIL% %VIDEO_FORMAT% -a %LINK% -o %SAVE_PATH% 110 | EXIT /B 111 | 112 | :AUDIO 113 | CLS & "%~d0%~p0tools\yt-dlp.exe" %VERBOSE% %COOKIES_CMD% %LOGIN_CMD% %REFERER% %DELAY% --user-agent "%USER_AGENT%" --no-check-certificate --geo-bypass -i --ignore-config --no-warnings --fragment-retries infinite --console-title --yes-playlist %PLAYLIST_REVERSE% --prefer-ffmpeg --ffmpeg-location "%~d0%~p0tools\ffmpeg.exe" %DATABASE% --embed-metadata --extract-audio --audio-quality 0 --audio-format %AUDIO_FORMAT% -f "ba[ext=webm]/ba[ext=m4a]/ba/b" -a %LINK% -o %SAVE_PATH% 114 | EXIT /B 115 | 116 | :DOWNLOAD_LIVE 117 | CLS & TITLE youtube-dl - Live Stream Downloading ^(Please wait until the console closes automatically^) & "%~d0%~p0tools\yt-dlp.exe" %VERBOSE% %COOKIES_CMD% %LOGIN_CMD% %REFERER% --user-agent "%USER_AGENT%" --no-check-certificate --geo-bypass -i --ignore-config --no-warnings --keep-video --no-part --no-post-overwrites --prefer-ffmpeg --ffmpeg-location "%~d0%~p0tools\ffmpeg.exe" %DOWNLOAD_LIVE_FORMAT% -a %LINK% -o "%~d0%~p0%%(title)s.%%(ext)s" 118 | EXIT /B 119 | 120 | :LIVE 121 | CLS & "%~d0%~p0tools\yt-dlp.exe" %COOKIES_CMD% %LOGIN_CMD% %REFERER% --user-agent "%USER_AGENT%" --no-check-certificate --geo-bypass -i --ignore-config --no-warnings --no-playlist --simulate --get-filename --restrict-filenames -a %LINK% -o "%%(uploader)s %%(title)s">"%TEMP%\%TIMENOW%_Title.txt" 122 | SET /P TITLE=<"%TEMP%\%TIMENOW%_Title.txt" 123 | START "%TITLE%" /HIGH CMD /Q /C ""%~d0%~p0tools\yt-dlp.exe" %VERBOSE% %COOKIES_CMD% %LOGIN_CMD% %REFERER% --user-agent "%USER_AGENT%" --no-check-certificate --geo-bypass -i --ignore-config --no-warnings --skip-unavailable-fragments --no-playlist --prefer-ffmpeg --ffmpeg-location "%~d0%~p0tools\ffmpeg.exe" %LIVE_FORMAT% -o - -a %LINK% | "%~d0%~p0tools\mpv\mpv.exe" - --title="%TITLE%" --cache-dir="%TEMP%" --no-border --ontop" 124 | EXIT /B 125 | 126 | :PLAYLIST 127 | CLS 128 | ECHO [0] Normal & ECHO. ^> Clip A.mkv & ECHO. ^> Clip B.mkv & ECHO. 129 | ECHO [1] Music Playlist & ECHO. ^> Album Name\#01 - Track A.mp3 & ECHO. ^> Album Name\#02 - Track B.mp3 & ECHO. 130 | ECHO [2] Series Playlist & ECHO. ^> Series Name\(01) Title A.mp4 & ECHO. ^> Series Name\(02) Title B.mp4 & ECHO. 131 | ECHO [3] Channel Playlist & ECHO. ^> Channel Name\[20200712] Clip A.mkv & ECHO. ^> Channel Name\[20200730] Clip B.mkv & ECHO. 132 | ECHO [4] Channel Playlist with ID & ECHO. ^> Channel Name\[20200712] Clip A (P8OjkcLzYCM).mkv & ECHO. ^> Channel Name\[20200730] Clip B (MvlgyKTSSEA).mkv & ECHO. 133 | ECHO [5] Bilibili Playlist & ECHO. ^> Playlist Title - E1 - Episode Name.mkv & ECHO. ^> Playlist Title - E2 - Episode Name.mkv & ECHO. 134 | ECHO [6] Custom Playlist & ECHO. 135 | CHOICE /C 0123456 /N /M "Choose Playlist Extraction Format:" 136 | IF %ERRORLEVEL%==1 ( 137 | SET PLAYLIST_REVERSE=--playlist-reverse 138 | IF "%ARCHIVAL%"=="True" ( 139 | SET SAVE_PATH="%~d0%~p0Archive\%%(uploader)s\%%(title)s.%%(ext)s" 140 | ) ELSE ( 141 | SET SAVE_PATH="%~d0%~p0%%(title)s.%%(ext)s" 142 | ) 143 | ) 144 | IF %ERRORLEVEL%==2 ( 145 | IF "%ARCHIVAL%"=="True" ( 146 | SET SAVE_PATH="%~d0%~p0Archive\%%(uploader)s\%%(playlist)s\#%%(playlist_index)s - %%(title)s.%%(ext)s" 147 | ) ELSE ( 148 | SET SAVE_PATH="%~d0%~p0%%(playlist)s\#%%(playlist_index)s - %%(title)s.%%(ext)s" 149 | ) 150 | ) 151 | IF %ERRORLEVEL%==3 ( 152 | IF "%ARCHIVAL%"=="True" ( 153 | SET SAVE_PATH="%~d0%~p0Archive\%%(uploader)s\%%(playlist)s\(%%(playlist_index)s) %%(title)s.%%(ext)s" 154 | ) ELSE ( 155 | SET SAVE_PATH="%~d0%~p0%%(playlist)s\(%%(playlist_index)s) %%(title)s.%%(ext)s" 156 | ) 157 | ) 158 | IF %ERRORLEVEL%==4 ( 159 | SET PLAYLIST_REVERSE=--playlist-reverse 160 | IF "%ARCHIVAL%"=="True" ( 161 | SET SAVE_PATH="%~d0%~p0Archive\%%(uploader)s\[%%(upload_date)s] %%(title)s.%%(ext)s" 162 | ) ELSE ( 163 | SET SAVE_PATH="%~d0%~p0%%(uploader)s\[%%(upload_date)s] %%(title)s.%%(ext)s" 164 | ) 165 | ) 166 | IF %ERRORLEVEL%==5 ( 167 | SET PLAYLIST_REVERSE=--playlist-reverse 168 | IF "%ARCHIVAL%"=="True" ( 169 | SET SAVE_PATH="%~d0%~p0Archive\%%(uploader)s\[%%(upload_date)s] %%(title)s (%%(id)s).%%(ext)s" 170 | ) ELSE ( 171 | SET SAVE_PATH="%~d0%~p0%%(uploader)s\[%%(upload_date)s] %%(title)s (%%(id)s).%%(ext)s" 172 | ) 173 | ) 174 | IF %ERRORLEVEL%==6 ( 175 | IF "%ARCHIVAL%"=="True" ( 176 | SET SAVE_PATH="%~d0%~p0Archive\%%(playlist_title)s\%%(playlist_title)s - %%(title)s.%%(ext)s" 177 | ) ELSE ( 178 | SET SAVE_PATH="%~d0%~p0%%(playlist_title)s\%%(playlist_title)s - %%(title)s.%%(ext)s" 179 | ) 180 | ) 181 | IF %ERRORLEVEL%==7 CALL :CUSTOM_PLAYLIST_FORM 182 | EXIT /B 183 | 184 | :CUSTOM_PLAYLIST_FORM 185 | CLS 186 | ECHO Custom Playlist 187 | ECHO. 188 | ECHO Example: 189 | ECHO. - %%(title)s.%%(ext)s 190 | ECHO. - %%(uploader)s\%%(title)s.%%(ext)s 191 | ECHO. - %%(playlist)s\#%%(playlist_index)s - %%(title)s.%%(ext)s 192 | ECHO. - %%(uploader)s\%%(playlist)s\#%%(playlist_index)s - %%(title)s.%%(ext)s 193 | ECHO. - %%(playlist)s\(%%(playlist_index)s) %%(title)s.%%(ext)s 194 | ECHO. - %%(uploader)s\%%(playlist)s\(%%(playlist_index)s) %%(title)s.%%(ext)s 195 | ECHO. - %%(uploader)s\[%%(upload_date)s] %%(title)s.%%(ext)s 196 | ECHO. - %%(uploader)s\[%%(upload_date)s] %%(title)s (%%(id)s).%%(ext)s 197 | ECHO. - %%(playlist_title)s\%%(playlist_title)s - %%(title)s.%%(ext)s 198 | ECHO. 199 | ECHO Documentation: https://github.com/yt-dlp/yt-dlp#output-template 200 | ECHO. 201 | SET /P CUSTOM_PLAYLIST=Enter Template Here: 202 | IF "%ARCHIVAL%"=="True" ( 203 | SET SAVE_PATH="%~d0%~p0Archive\%CUSTOM_PLAYLIST%" 204 | ) ELSE ( 205 | SET SAVE_PATH="%~d0%~p0%CUSTOM_PLAYLIST%" 206 | ) 207 | EXIT /B 208 | 209 | :AUTH_MODE 210 | CLS 211 | ECHO [0] Cookies (Recommended) 212 | ECHO [1] Login 213 | ECHO. 214 | CHOICE /C 01 /N /M "Choose Authorization Mode:" 215 | IF %ERRORLEVEL%==1 CALL :COOKIES_FORM 216 | IF %ERRORLEVEL%==2 CALL :LOGIN_FORM 217 | CLS & SET /P REFERER=Referer URL e.g. https://www.youtube.com (leave empty to skip): 218 | IF DEFINED REFERER SET REFERER=--referer %REFERER% 219 | IF NOT %MODE%==DOWNLOAD_LIVE ( 220 | IF NOT %MODE%==LIVE ( 221 | CALL :DELAY 222 | ) 223 | ) 224 | EXIT /B 225 | 226 | :DELAY 227 | CLS & ECHO Delay 60s to 180s between each download for a playlist & ECHO.to prevent connection blockage or account inhabitation. & ECHO.Note: YouTube are not required & ECHO. 228 | CHOICE /C yn /M "Delay" 229 | IF %ERRORLEVEL%==1 SET DELAY=--min-sleep-interval 60 --max-sleep-interval 180 230 | EXIT /B 231 | 232 | :COOKIES_FORM 233 | CLS & ECHO Install this extension to get cookies.txt of your account: & ECHO. & ECHO https://chrome.google.com/webstore/detail/get-cookiestxt/bgaddhkoddajcdgocldbbfleckgcbcid & ECHO. 234 | SET /P COOKIES_PATH=Drag and Drop cookies.txt Here to Get Path: 235 | CALL :COOKIES_CHECK %COOKIES_PATH% 236 | SET COOKIES_CMD=--cookies %COOKIES_PATH% 237 | EXIT /B 238 | 239 | :COOKIES_CHECK 240 | IF NOT DEFINED COOKIES_PATH CLS & ECHO ################ & ECHO. & ECHO INPUT WAS EMPTY! & ECHO. & ECHO ################ & ECHO. & PAUSE & GOTO :AUTH 241 | IF NOT "%~x1"==".txt" CLS & ECHO ################################# & ECHO. & ECHO ONLY TEXT FILE ^(.txt^) ARE ALLOWED & ECHO. & ECHO ################################# & ECHO. & PAUSE & GOTO :AUTH 242 | IF NOT EXIST %COOKIES_PATH% CLS & ECHO ####################### & ECHO. & ECHO COOKIES FILE NOT FOUND! & ECHO. & ECHO ####################### & ECHO. & PAUSE & GOTO :AUTH 243 | EXIT /B 244 | 245 | :LOGIN_FORM 246 | CLS & SET /P USER=Username: 247 | CLS & SET /P PASS=Password: 248 | CLS & SET /P TWOFACTOR=Two-factor Authentication Code (leave empty to skip): 249 | IF DEFINED TWOFACTOR SET TWOFACTOR=--twofactor %TWOFACTOR% 250 | SET LOGIN_CMD=--username "%USER%" --password "%PASS%" %TWOFACTOR% 251 | EXIT /B 252 | 253 | :VIDEO_SELECTION 254 | CLS 255 | ECHO [0] Quality (Best Available) 256 | ECHO [1] Quality (4K) 257 | ECHO [2] Quality (1440p) 258 | ECHO [3] Quality (1080p) 259 | ECHO [4] Quality (720p) 260 | ECHO [5] Compatibility (Best Available) 261 | ECHO [6] Compatibility (4K) 262 | ECHO [7] Compatibility (1440p) 263 | ECHO [8] Compatibility (1080p) 264 | ECHO [9] Compatibility (720p) 265 | ECHO. 266 | CHOICE /C 0123456789 /N /M "Choose Video Mode:" 267 | IF %ERRORLEVEL%==1 SET VIDEO_FORMAT=--merge-output-format mkv -f "bv[ext=webm]+ba[ext=webm]/bv+ba/b" 268 | IF %ERRORLEVEL%==2 SET VIDEO_FORMAT=--merge-output-format mkv -f "bv[ext=webm][height<=?2160]+ba[ext=webm]/bv[height<=?2160]+ba/b[height<=?2160]" 269 | IF %ERRORLEVEL%==3 SET VIDEO_FORMAT=--merge-output-format mkv -f "bv[ext=webm][height<=?1440]+ba[ext=webm]/bv[height<=?1440]+ba/b[height<=?1440]" 270 | IF %ERRORLEVEL%==4 SET VIDEO_FORMAT=--merge-output-format mkv -f "bv[ext=webm][height<=?1080]+ba[ext=webm]/bv[height<=?1080]+ba/b[height<=?1080]" 271 | IF %ERRORLEVEL%==5 SET VIDEO_FORMAT=--merge-output-format mkv -f "bv[ext=webm][height<=?720]+ba[ext=webm]/bv[height<=?720]+ba/b[height<=?720]" 272 | IF %ERRORLEVEL%==6 SET VIDEO_FORMAT=--merge-output-format mp4 -f "bv[ext=mp4]+ba[ext=m4a]/bv+ba/b" 273 | IF %ERRORLEVEL%==7 SET VIDEO_FORMAT=--merge-output-format mp4 -f "bv[ext=mp4][height<=?2160]+ba[ext=m4a]/bv[height<=?2160]+ba/b[height<=?2160]" 274 | IF %ERRORLEVEL%==8 SET VIDEO_FORMAT=--merge-output-format mp4 -f "bv[ext=mp4][height<=?1440]+ba[ext=m4a]/bv[height<=?1440]+ba/b[height<=?1440]" 275 | IF %ERRORLEVEL%==9 SET VIDEO_FORMAT=--merge-output-format mp4 -f "bv[ext=mp4][height<=?1080]+ba[ext=m4a]/bv[height<=?1080]+ba/b[height<=?1080]" 276 | IF %ERRORLEVEL%==10 SET VIDEO_FORMAT=--merge-output-format mp4 -f "bv[ext=mp4][height<=?720]+ba[ext=m4a]/bv[height<=?720]+ba/b[height<=?720]" 277 | EXIT /B 278 | 279 | :AUDIO_SELECTION 280 | CLS 281 | ECHO [0] Best Available 282 | ECHO [1] AAC 283 | ECHO [2] FLAC 284 | ECHO [3] MP3 285 | ECHO [4] M4A 286 | ECHO [5] OPUS 287 | ECHO [6] VORBIS 288 | ECHO [7] WAV 289 | ECHO. 290 | CHOICE /C 01234567 /N /M "Choose Audio Format:" 291 | IF %ERRORLEVEL%==1 SET AUDIO_FORMAT=best 292 | IF %ERRORLEVEL%==2 SET AUDIO_FORMAT=aac 293 | IF %ERRORLEVEL%==3 SET AUDIO_FORMAT=flac 294 | IF %ERRORLEVEL%==4 SET AUDIO_FORMAT=mp3 295 | IF %ERRORLEVEL%==5 SET AUDIO_FORMAT=m4a 296 | IF %ERRORLEVEL%==6 SET AUDIO_FORMAT=opus 297 | IF %ERRORLEVEL%==7 SET AUDIO_FORMAT=vorbis 298 | IF %ERRORLEVEL%==8 SET AUDIO_FORMAT=wav 299 | EXIT /B 300 | 301 | :DOWNLOAD_LIVE_SELECTION 302 | CLS 303 | ECHO [0] Best Available 304 | ECHO [1] 4K 305 | ECHO [2] 1440p 306 | ECHO [3] 1080p 307 | ECHO [4] 720p 308 | ECHO. 309 | CHOICE /C 01234 /N /M "Choose Live Download Mode:" 310 | IF %ERRORLEVEL%==1 SET DOWNLOAD_LIVE_FORMAT=-f "bv+ba/b" 311 | IF %ERRORLEVEL%==2 SET DOWNLOAD_LIVE_FORMAT=-f "bv[height<=?2160]+ba/b[height<=?2160]" 312 | IF %ERRORLEVEL%==3 SET DOWNLOAD_LIVE_FORMAT=-f "bv[height<=?1440]+ba/b[height<=?1440]" 313 | IF %ERRORLEVEL%==4 SET DOWNLOAD_LIVE_FORMAT=-f "bv[height<=?1080]+ba/b[height<=?1080]" 314 | IF %ERRORLEVEL%==5 SET DOWNLOAD_LIVE_FORMAT=-f "bv[height<=?720]+ba/b[height<=?720]" 315 | EXIT /B 316 | 317 | :LIVE_SELECTION 318 | CLS 319 | ECHO [0] Best Available 320 | ECHO [1] 4K 321 | ECHO [2] 1440p 322 | ECHO [3] 1080p 323 | ECHO [4] 720p 324 | ECHO. 325 | CHOICE /C 01234 /N /M "Choose Live Mode:" 326 | IF %ERRORLEVEL%==1 SET LIVE_FORMAT=-f "bv+ba/b" 327 | IF %ERRORLEVEL%==2 SET LIVE_FORMAT=-f "bv[height^<=?2160]+ba/b[height^<=?2160]" 328 | IF %ERRORLEVEL%==3 SET LIVE_FORMAT=-f "bv[height^<=?1440]+ba/b[height^<=?1440]" 329 | IF %ERRORLEVEL%==4 SET LIVE_FORMAT=-f "bv[height^<=?1080]+ba/b[height^<=?1080]" 330 | IF %ERRORLEVEL%==5 SET LIVE_FORMAT=-f "bv[height^<=?720]+ba/b[height^<=?720]" 331 | EXIT /B 332 | 333 | :SUBTITLE 334 | CLS 335 | ECHO Choose the language of the subtitle by letters code, for example: 336 | ECHO. 337 | ECHO English ^> en 338 | ECHO Thai ^> th 339 | ECHO Japanese ^> ja 340 | ECHO Taiwanese Mandarin ^> zh-TW 341 | ECHO. 342 | SET /P SUBTITLE_LANGUAGE=Language Code (leave empty to download all subtitle available): 343 | IF DEFINED SUBTITLE_LANGUAGE ( 344 | SET SUBTITLE_LANGUAGE=--sub-lang %SUBTITLE_LANGUAGE% 345 | ) ELSE ( 346 | SET SUBTITLE_LANGUAGE=--all-subs 347 | ) 348 | CLS & CHOICE /C yn /M "Download YouTube's Automatically Generated Subtitle" 349 | IF %ERRORLEVEL%==1 SET SUBTITLE_AUTO=--write-auto-sub 350 | SET SUBTITLE=--skip-download --write-sub --sub-format best --convert-subs ass %SUBTITLE_AUTO% %SUBTITLE_LANGUAGE% 351 | EXIT /B 352 | 353 | :LIST_WEBSITE 354 | "%~d0%~p0tools\yt-dlp.exe" --extractor-descriptions>"%TEMP%\YouTube-DL Supported Websites" 355 | START "YouTube-DL Supported Websites" /B Notepad "%TEMP%\YouTube-DL Supported Websites" 356 | GOTO :MODE 357 | 358 | :DAILY_CHECK_UPDATE 359 | FOR /F %%a IN ('PowerShell -Command "Get-Date -format dd"') DO SET TODAY_NOW=%%a 360 | SET /P TODAY_SAVE=<"%~d0%~p0tools\check" 361 | IF NOT "%TODAY_NOW%"=="%TODAY_SAVE%" CALL :CHECK_UPDATE 362 | EXIT /B 363 | 364 | :CHECK_UPDATE 365 | ECHO Checking for YouTube-DL Suite updates . . . 366 | "%~d0%~p0tools\wget.exe" --quiet --no-verbose --no-check-certificate --no-hsts --no-cookies "https://github.com/MinorMole/YouTube-DL-Suite/releases/latest/download/version" -O "%~d0%~p0tools\version" 367 | SET /P VERSION_CHECK=<"%~d0%~p0tools\version" 368 | IF "%VERSION%"=="%VERSION_CHECK%" ( 369 | ECHO %TODAY_NOW%>"%~d0%~p0tools\check" 370 | ) ELSE ( 371 | CLS & ECHO YouTube-DL Suite %VERSION_CHECK% is Released! & ECHO. & ECHO Press any key to download . . . & ECHO. & PAUSE>NUL 372 | START https://github.com/MinorMole/YouTube-DL-Suite/releases/latest/download/YouTube-DL.Suite.zip 373 | START https://github.com/MinorMole/YouTube-DL-Suite/releases/latest 374 | GOTO :END 375 | ) 376 | CLS & ECHO Checking for yt-dlp updates . . . & ECHO. 377 | "%~d0%~p0tools\yt-dlp.exe" -U --no-check-certificate 378 | IF EXIST "%~d0%~p0tools\yt-dlp.exe.old" TIMEOUT /T 6 /NOBREAK>NUL 379 | EXIT /B 380 | 381 | :END 382 | IF %DEBUG%==True PAUSE 383 | EXIT -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/check: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/YouTube-DL Suite/tools/check -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/mpv/d3dcompiler_43.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/YouTube-DL Suite/tools/mpv/d3dcompiler_43.dll -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/mpv/input.conf: -------------------------------------------------------------------------------- 1 | #Basics 2 | SPACE cycle pause 3 | Alt+ENTER cycle fullscreen 4 | MBTN_LEFT_DBL cycle fullscreen 5 | Ctrl+b cycle border 6 | a cycle ontop 7 | 8 | #Video 9 | Ctrl+s screenshot 10 | 11 | #Audio 12 | UP add volume +5 13 | DOWN add volume -5 14 | WHEEL_UP add volume +5 15 | WHEEL_DOWN add volume -5 16 | m cycle mute 17 | 18 | #Frame-Step 19 | Ctrl+RIGHT frame-step 20 | Ctrl+LEFT frame-back-step -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/mpv/mpv.conf: -------------------------------------------------------------------------------- 1 | title="mpv" 2 | idle=yes 3 | force-window=yes 4 | keep-open=yes 5 | stop-screensaver 6 | stop-playback-on-init-failure=no 7 | ignore-path-in-watch-later-config 8 | hwdec=auto 9 | interpolation 10 | priority=realtime 11 | volume=50 12 | autofit-larger=50%x50% 13 | snap-window 14 | no-osd-bar 15 | osd-duration=2500 16 | osd-playing-msg="TIP: Press Ctrl+S to Save a Screenshot at Desktop" 17 | opengl-waitvsync 18 | scale=bilinear 19 | osc=yes 20 | cache=yes 21 | cache-on-disk=yes 22 | cache-dir=.\caches\ 23 | cache-pause=yes 24 | cache-pause-initial=no 25 | cache-unlink-files=whendone 26 | cache-secs=-1 27 | demuxer-max-bytes=-1 28 | demuxer-max-back-bytes=-1 29 | screenshot-format=png 30 | screenshot-tag-colorspace=yes 31 | screenshot-high-bit-depth=no 32 | screenshot-template=Rclone Browser Streaming - %04n 33 | screenshot-directory=~~desktop/ 34 | screenshot-png-compression=1 35 | 36 | [extension.gif] 37 | loop-file=inf -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/mpv/mpv.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/YouTube-DL Suite/tools/mpv/mpv.exe -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/msvcr100.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/YouTube-DL Suite/tools/msvcr100.dll -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/phantomjs.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/YouTube-DL Suite/tools/phantomjs.exe -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/unzip_me.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/YouTube-DL Suite/tools/unzip_me.7z -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/version: -------------------------------------------------------------------------------- 1 | 2022.07.27 -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/wget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/YouTube-DL Suite/tools/wget.exe -------------------------------------------------------------------------------- /YouTube-DL Suite/tools/yt-dlp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/YouTube-DL Suite/tools/yt-dlp.exe -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-slate -------------------------------------------------------------------------------- /img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MinorMole/YouTube-DL-Suite/918ff545a9bdf2c800e6df2f461fa4f63ddfeb70/img/logo.png --------------------------------------------------------------------------------