🚀 YouTuber is a fast command line for downloading YouTube videos. YouTuber is a cross-platform (Windows and Ubuntu) Open Source software licensed under MIT License. It is highly encouraged to read and respect YouTube policy and other content creators' and owners' copyrights.
You can find downloadyoutube.7z and download YouTuber via Releases.
Extract the zip file and extract the version that fits your operating system. Follow the examples below under How to use.
Available versions:
- DownloadYouTube.exe from win-x86 folder for Windows OS 10, 11
- DownloadYouTube.exe from win-x64 folder for Windows OS 10, 11
- DownloadYouTube from linux-x64 folder for Ubuntu OS
- DownloadYouTube from osx-x64 folder for Mac OS
./DownloadYouTube --help
Result
-a, --audio Extract only audio. -a mp3 or -a m4a.
-l, --list Required. Download single or multiple youtube by url or id, use ; as separator.
DownloadYouTube -l xxxxxxxxxxx;xxxxxxxxxxx;xxxxxxxxxxx
DownloadYouTube -l xxxxxxxxxxx
DownloadYouTube -l dummy will download 3 preselected videos using download.txt file, for demo purpose.
--help Display this help screen.
--version Display version information.
./DownloadYouTube -l https://www.youtube.com/watch?v=Kv3RfdHZ25c
It will download the following link:
https://www.youtube.com/watch?v=Kv3RfdHZ25c
./DownloadYouTube -l Kv3RfdHZ25c;dVsZm7_sqfw;3rJfBFamlIw
It will download 3 YouTube videos from the following link:
https://www.youtube.com/watch?v=Kv3RfdHZ25c
https://www.youtube.com/watch?v=dVsZm7_sqfw
https://www.youtube.com/watch?v=3rJfBFamlIw
./DownloadYouTube -l dummy
It will download 3 sample videos. It will create a download.txt list file of the 3 videos (You can add your own videos).
./DownloadYouTube -l ./download.txt
It will download whatever youtube link from the download.txt file.
./DownloadYouTube -l ./download.txt -a mp3
Will convert to mp3
./DownloadYouTube -l ./download.txt -a m4a
Will convert to m4a
Note: Audio conversion might take longer time than downloading the video.
./DownloadYouTube -l Kv3RfdHZ25c;https://www.youtube.com/watch?v=dVsZm7_sqfw;https://youtu.be/3rJfBFamlIw
It will download 3 YouTube videos of the following link:
https://www.youtube.com/watch?v=Kv3RfdHZ25c
https://www.youtube.com/watch?v=dVsZm7_sqfw
https://www.youtube.com/watch?v=3rJfBFamlIw
https://maythamfahmi.github.io/YouTuber
- git clone https://github.com/maythamfahmi/YouTuber
- dotnet build
- cd YouTuber.Cmd
- dotnet run
- Tested on Windows 10 and 11
- Ubuntu 20.xx
- C# Sharp
- Standard 2
- Dotnet 8
Third-party packages/libraries:
- VideoLibrary
- Xabe.FFmpeg
- Xabe.FFmpeg.Downloader
- CommandLineParser
Xabe is used for the audio conversion feature. It is only for none non-commercial use, else contact Xabe.FFmpeg
From your console:
After merging to the main, create a tag release:
git tag 3.x.x -a -m "Release version 3.x.x"
git push --tags
For pre-release, just tag with .0-pre
like 3.x.x.0-pre
.
Example:
git tag 3.x.x.0-pre -a -m "Release version 3.x.x.0-pre"
git push --tags
Or use the PowerShell command line Create Release.ps1 and it will automatically generate the next version, if you need to change the major or minor version, you need to pass the value manually.
Note: remove cached tags git fetch -p -P origin
in case of mistake or clean up and git push --tags
Remember to update the readme badge and versions.
docker run -it --rm -v $pwd`:/app mcr.microsoft.com/dotnet/sdk:8.0
cd /app
Example of testing release in Ubuntu docker instance:
dotnet publish /p:PublishProfile=Release-win-x64 -c Release
Check this dotnet/sdk#23627
It requires a docker desktop.
Known issue: You might experience slow downloads, which is normal. Just be patient.
Please report issues here.
I need your help, so if you have good knowledge of C# and Cryptography just grab one of the issues and add a pull request. The same is valid, if you have ideas for improvement, adding new features, or even documentation improvement and enhancement, you are more than welcome to contribute.
Here is a link to learn how to contribute if you are not a ware of how to do it.