Git Product home page Git Product logo

ytdownloader's Introduction

ytDownloader

Flathub GitHub downloads GitHub release (latest by date) Flathub AUR version Snapcraft Chocolatey Version

A modern GUI video and audio downloader supporting hundreds of sites

Get it from the Snap Store Get AppImage AUR Chocolatey

Features 🚀

✅ Light/Dark mode

✅ Supports hundreds of sites including Youtube, Facebook, Instagram, Tiktok, Twitter and so on.

✅ Advanced options like Range Selection

✅ Download playlists

✅ Available on Linux, Windows & macOS

✅ Fast download speeds

✅ And of-course no trackers or ads

Screenshots

ytdownloader_dark ytdownloader_light

Installation

Windows 🪟

  • Traditional way

    Download and install the exe or msi file. Exe file lets you choose custom download location, msi file doesn't ask for location. Windows defender may show a popup saying Windows Protected Your PC. Just click on More info and click on Run Anyway

  • Chocolatey App can be installed from Chocolatey using the following command

    choco install ytdownloader
    
  • Scoop App can be installed with Scoop using the following command

    scoop install https://raw.githubusercontent.com/aandrew-me/ytDownloader/main/ytdownloader.json
    
  • Winget App can be installed with Winget using the following command

    winget install aandrew-me.ytDownloader
    

Linux 🐧

Linux has several options available - Flatpak, AppImage, Snap and AUR. Flatpak is recommended.

  • AppImage

    AppImage format is supported on most Linux distros and has Auto-Update support. It just needs to be executed after downloading. See more about AppImages here.

    AppImageLauncher is recommended for integrating AppImages.

  • AUR package

    The app is available in AUR with the name ytdownloader-gui. To build with pamac the required command is -

    pamac install ytdownloader-gui
    

    Using yay

    yay -S ytdownloader-gui
    
  • Flatpak

    flatpak install flathub io.github.aandrew_me.ytdn
    
  • Snapcraft

    sudo snap install ytdownloader
    

macOS 🍎

Since the app is not signed, when you will try to open the app, macOS will not allow you to open it. So you will need to follow some steps to open it.

  1. Click on System Preferences on your Mac Dock.
  2. Choose Security & Privacy
  3. The app will be shown there. Click on Open

Internationalization (Localization) 🌍

Translations into other languages would be highly appreciated. If you want to help translating the app to other languages, you can join from here. Open a new issue and that language will be added to Crowdin. Please don't make pull requests with json files, instead use Crowdin.

Crowdin

✅ Available languages

Name Status
Arabic ✔️
English ✔️
Finnish ✔️
French ✔️
German ✔️
Greek ✔️
Hungarian ✔️
Italian ✔️
Japanese ✔️
Persian ✔️
Polish ✔️
Portuguese (Brazil) ✔️
Russian ✔️
Spanish ✔️
Turkish ✔️
Ukrainian ✔️
Vietnamese ✔️

Thanks to nxjosephofficial, LINUX-SAUNA, Proxycon, albanobattistella, TheBlueQuasar, MrQuerter, KotoWhiskas, André, haggen88, XfedeX, Jok3r, TitouanReal, soredake, yoi, HowlingWerewolf, Kum, Mohammed Bakry and others for helping.

Used technologies

For building or running from source code

Nodejs (along with npm) needs to be installed.

Required commands to get started.

git clone https://github.com/aandrew-me/ytDownloader.git
cd ytDownloader
npm i

To run with Electron :

npm start

You need to download ffmpeg and put it in the root directory of the project. If you don't need to build for arm processor, you can download ffmpeg by executing any of the files - linux.sh / mac.sh / windows.sh depending on the platform. Otherwise you need to download ffmpeg from here for windows/linux and from here for mac (not tested)

To build for Linux (It will create packages as specified in package.json). The builds are stored in release folder.

npm run linux

To build for Windows

npm run windows

To build for macOS

npm run mac

If you only want to build for one format, you can do

npx electron-builder -l appimage

It will just create a linux appimage build.

ytdownloader's People

Contributors

aandrew-me avatar albanobattistella avatar candrapersada avatar charleslana avatar haggen88 avatar jackiotyu avatar muxutruk2 avatar nxjosephofficial avatar oskarvid avatar soredake avatar viliansh avatar xfedex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ytdownloader's Issues

Exit or hybernate the program automatically after donwload complete

Hello, somes times our Wi-Fi weak and therefore the download will take a long time, it will be great to add an option "close the program after download complete" because sometimes we forget to close the program when we use a lot of other programs and many web browser tabs and also add option "hybernate or shutdonwn computer after donwload finish", thank you very much !

Win 7

Does this work with Win 7?

Thanks

[Feature Request] Playlist backup?

Just a wild suggestion, don't know if it's worth to add it, but it doesn't sound impossible.

I have a playlist on YouTube that I would want to save in some way, but I don't want to download all of the videos there.

Would it be possible to have an option to save just the links and thumbnails of the playlist where every image would have a title from YouTube and the watch ID?

example:
You paste a playlist with 3 videos
It makes 3 files with (title)_(id).png and possibly a txt file with just the links to the videos.

[bug?] Missing characters after download

Hi.
I noticed that after downloading something, there are characters that are missing and spaces are replaced with underscore.
While replacing underscores isn't a problem, the missing characters are. yt-dlp and 4k video downloader usually keep most of them.

& ) ( ! - these are the ones that I know are getting deleted. If it is because of windows forbidden file name characters then could we get an option to keep them it in linux versions? You already have an option that only works for linux so it wouldn't be out of place

Change download location

The current download location is ~/videos/ytDownloader. Could an option be added to change this to a user-specified location?

[Feature Request] Ability to create own naming system for downloaded videos

Hello Again!

I really appreciate that videos from playlists are properly labeled. However, I frequently update a playlist I have and I needed the video titles to be consistent and considering how often videos can be removed off of playlists, that consistency could very much get ruined. I wanted to know if there could be a way to implement our own naming scheme for files, like removing the present labelling system or creating our own naming scheme, to allow a more flexible workflow.

ShareX does something like this:
image

[Feature Request] Select a range of videos to download in a playlist

Hello!

I have a playlist that I frequently update with video resources and audio while downloading. Problem is that this becomes problematic when I need to frequently update it, either wastes time checking hundreds of downloads or constantly crawls youtube's site. Since Youtube_DL supports downloading a specific range, I was wondering if that could also be implemented as an advanced option?

I had a different idea but I'm not sure if it would be possible. Considering how videos within playlists usually have an index attached to them at the end, would it be possible to begin a download using the specific index a video and then continue downloading the playlist onward automatically?

Audio Quality and Preferred Audio Quality

Hello, some time we find playlist with many video for exemple documentarie, we want only dobwload the audio of some videos and play audio whan we sleep or send these audio files to our smartphone via snaddrop....

we wish to choose the worst audio quality of the youtube or facebook video for faster downloading and preserve the battery of our smartphone or little mp3player because I find the worst audio quality has a good level and we listen to it comfortably and economically hard drive size and battery power....so my suggestion is to add presets, i.e. download audio with just one click without choosing from list, we hope that clipboard of our beloved ytDownloader detect youtube or dailymotion and automatically star downloads the worst audio quality with the preset "worstaudio" or download the worse video quality with the preset " http-380-1 " for the case of dailymotion because dailymotion does not have dash audio streams .... so it simplifies the process and makes it faster for poeple who wish to download youtube podcats or just download quickly and listen the audio of tv shows in youtube and dailymotion !

Thank you so much !

[Feature Request] add "Prefered video format"

Description
It would be useful to have this option, so when i will select "vp9" for example ytDownloader will auto select webm container when i try to download video, and this will be helpful with playlist download, as you can't currently choose container/video codec of downloaded videos from playlist.

Download Playlist option forces .webm format and separate audio files

Unlike when trying to download a single video, in playlist mode, ytDownloader does not allow for selecting different video formats and seems to save everything as a .webm. It also splits the audio and video files. Downloading the videos individually does not do this. Not sure if this is a bug or if I'm overlooking something very simple. Please advise.

Using AUR version 3.10.5-1 on Manjaro

[Feature Request] Active downloads limit / queue

Hope you don't mind few feature suggestions.

Basically what active downloads limit would allow is to well, limit the number of active downloads. Usually downloads finish faster when it's file by file and not many of them at once. With that limit you wouldn't need to wait for a file to finish to add a new one, but just add it to the list and it would begin automatically when previous download finishes.

[Feature Request] Remember chosen resolution

Okay, last suggestion for today.

Some kind of setting that would remember the preferred resolution so you don't have to select it yourself every time.

One thing that could complicate it is the fact that some resolutions can have multiple file sizes even though the file type (and well, the resolution) is the same.

If a chosen resolution isn't available it goes down 1 lvl. For example - You set "720p (highest size) mp4", but it's not available so it tries the "480p (highest size) mp4".

I have no idea if it's even possible to do it here, but when I was using 4k video downloaded few years ago it was a really good option.

Add new awesome engines

Hello, thank you very much for this great sensational wonderful dowloader !! 💯

I guess that ytDownloader use the famous yt-dlp, thay's great and my suggestion is in order to download from even more web sites and possibly overcome eventual yt-dlp bugs and speed up downloads and download torrent, m3u8 files... my suggestion is to add support for these downloader engines if it is technically possible, thank you very much !

https://github.com/nilaoda/N_m3u8DL-CLI

https://github.com/nilaoda/N_m3u8DL-RE

https://github.com/soimort/you-get

https://github.com/iawia002/lux

https://github.com/nilaoda/BBDown

https://github.com/kanishka-linux/hlspy

https://github.com/mikf/gallery-dl

https://aria2.github.io/

https://www.gnu.org/software/wget/

https://github.com/dabaisuv/Tampermonkey-Script
https://greasyfork.org/fr/users/901788-dabaisuv
Unlimited_downloader by dabaisuv
https://greasyfork.org/fr/scripts/445751-unlimited-downloader
https://www.v2ex.com/t/856510

https://github.com/Momo707577045/m3u8-downloader/blob/master/README-EN.md
https://github.com/Momo707577045/media-source-extract

https://github.com/acolwell/mse-tools

*EDIT : I add some new engines :
hlsdl : C program to download VoD HLS (.m3u8) files, it seems that some people said ffmpeg could have some problems with hls streams...

https://github.com/selsta/hlsdl

and this software : python m3u8 Parser for HTTP Live Streaming (HLS) Transmissions :

https://github.com/globocom/m3u8

https://greasyfork.org/en/scripts/25068-downloadallcontent

https://greasyfork.org/en/scripts/7362-true-url-downloads

https://greasyfork.org/en/scripts/22590-easy-offline

https://github.com/dodying/UserJs/tree/master/novel/novelDownloader

https://greasyfork.org/en/users/8227-hoothin

https://github.com/hoothin/UserScripts

https://greasyfork.org/en/scripts/446385-download-any-thing

https://greasyfork.org/fr/scripts/445751-unlimited-downloader

https://github.com/Momo707577045/m3u8-downloader/blob/master/README-EN.md

https://greasyfork.org/en/scripts/18671-inject2download

ArtPlayer.js is a modern and full featured HTML5 video player

https://github.com/zhw2590582/ArtPlayer

https://artplayer.org/

https://www.v2ex.com/t/856510

https://github.com/zhw2590582/bilibili-live-recorder

dabaisuv/Tampermonkey-Script@d109782

https://segmentfault.com/a/1190000025182822

https://github.com/zhw2590582/live-video-study-notes

https://github.com/zhw2590582/FlvPlayer

https://flvplayer.js.org/


extensions web browsers downloaders

https://github.com/rowrawer/stream-detector/

https://github.com/meowcateatrat/elephant

https://github.com/FreeDownloadManagerTeam/fdm-addons-docs

https://github.com/inbasic/bulk-media-downloader/

https://github.com/downthemall/downthemall

https://github.com/chandler-stimson/live-stream-downloader

https://github.com/zaidka/cliget

https://github.com/globocom/m3u8

https://github.com/HeiSir2014/M3U8-Downloader

https://github.com/hestyle/m3u8_downloader

https://github.com/kz26/gohls

https://github.com/Last-Order/Minyami

https://github.com/Momo707577045/m3u8-downloader

https://github.com/Momo707577045/media-source-extract

https://github.com/nilaoda/N_m3u8DL-RE

https://github.com/puemos/hls-downloader

https://github.com/Spark-NF/hls-downloader

https://chrome.google.com/webstore/detail/m3u8-finder-and-hls-playe/gijhpnmjcpbddpedmmdihijogkkejfgj?hl=en

https://www.hlsloader.com/

https://github.com/rowrawer/stream-detector

Girdplayer has integrated this software streamlink :
https://github.com/vzhd1701/gridplayer#features
https://github.com/streamlink/streamlink

German translation

Hi, I would love to provide a German translation.
If you could add the language to Crowdin I could start translating right away,

Download freeze or very slow download speed

Hello, i tried the last version of "ytDownloader", ça met beaucoup de temps pour analyser les liens youtube et j'attends beaucoup puis le téléchargement des audio des vidéos démarre mais n'avance pas et freeze....

i tried with another downloader which use also 'yt-dlp' and youtube download is very slow and limited 7kb/s and many people say yesterday they encounter this kind of slow youtube download problem !

https://www.reddit.com/r/youtubedl/comments/11dzu0t/anyone_getting_throttled_on_ytdlp_20230217/

yt-dlp/yt-dlp#6369

https://www.reddit.com/r/youtubedl/comments/11czulm/has_anyone_else_started_experiencing_some_youtube/

The other downloader has integrated graphical interface for "lux" engine dowloaderand i tried lux and i can donwload very very fast from youtube without speed restriction....

I think it becomes a necessity to integrate new engines to "ytDownloader" like "lux" and " you-get " and N_m3u8DL because it seems that a censorship applies against yt-dlp and it seems downloading youtube video and audio becomes impossible in our beloeved "ytDownloader" :(

and we thank you very much for adding support for m3u8 files !! it's revolutionary !!

I think the size of the program doesn't matter and many users don't care about the size of the program even though the standard hard disk is 1 tetra Gb and we have several usb keys with tetra storage at very low prices.. ..personaly i think the most important thing for users is to be able to download videos or playlists quickly without bugs and freezes, no matter how big the program, even if it is many gigabits.....

Thank you so much !

Remember video/audio Window and Add Batch download support

when I copy paste a youtube link and I just want to download the audio, it's the "video" window with the video settings that appears by default, it will be great if we can change this default display in the settings so that I see first the "audio" window and the audio parameters and not the video parameters or that ytDownloader remembers my last choice i.e. I clicked on the audio button in order to check the size of the audio file, yes I know there is fixed "extract audio" button but I have to click on "audio" in order to check the quality and size of the audio download....or that the "extract audio" button also shows us the infirmation on the audio file by example its size before we download it...

also i see that ytDownloader offers a choice of audio format "m4a, opus...", i think it will be great to add an option for ytDownloader to automatically choose the best possible audio format without conversion for audio quality "worst audio" in order to save battery and time and avoid unnecessary conversions from one audio format to another, because for example you can choose the "opus" format with ignorance and therefore ytDownloader will convert the original m4a audio file to opus for example and it will take a long time, or maybe we choose m4a and the original audio file does not have m4a format and so ytDownloader will download large original audio file then convert it to m4a which is slow, I mean we doesn't care about the audio format because windows and android music players can play a lot of audio formats, I think what matters for users is that ytDownloader chooses us the original audio format without conversion regardless of whether it is m4a, opus, ogg....because for example I don't know what is the original youtube audio format of "worst audio" preset, m4a or opus or ogg.....and on other sites we do not know the format of the original audio by default hence my request that ytDownloader automatically choose the original audio stream by default regardless of its format, i.e. it is not the user who should choose the format but ytDownloader to avoid converting from one format to another! Thanks a lot !

when I find a video playlist of a radio channel on youtube or youtube tv show, I want to download only a few shows, it will be great if ytDownloader add "batch donwloader" option and the video that we select from the playlist and we copy them address are automatically added to ytDownloader because sometimes the tv show has several extracts and I have to copy and paste the addresses then click on ytDownloader and click on the "paste from clipboard" button and it's tiring when you're going to copy 20 addresses of video, it will be great to add a option "watch clipboard" and ytDownloader will automatically add all links that are in the clipboard even unsupported links and even non-video links then ytDownloader will just show an error message if this or that link in the clipboard is not supported and cannot be downloaded because sometimes you can mix video links with other links or text selections!
ou our beloved ytDownloader adds monitoring of clipboard links and automatically adding them to a queue only if the links come from youtube and dailymotion because these are the most famous and popular sites in the world and ytDownloader ingests other links and does not not add them to a queue except when manually clicking "paste from clipboard"!
I know I'm asking a lot and I apologize and i thank you immensely ! 💯 🥇

"Some error has occured" for certain videos

I've tried downloading a variety of videos with ytDownloader (using the flatpak version on Linux) and most of them seem to work fine. However when trying to download videos from this channel https://www.youtube.com/c/justkethVOD almost all videos seem to throw the error 'Some error has occurred. Check your network and use correct URL'
Initially I thought that might have to do with the file size of the videos, as they are quite long. But other equally long videos from other channels seem to work just fine. So I'm curious to see if this error can be replicated by other people (using this video for example https://www.youtube.com/watch?v=UUnK0h3YZCg ) and what exactly is behind the error.

Preffered format can change

Hi.
I've seen that it now automatically remembers the format that you pick. Would prefer to set it manually, but that's ok.
However one annoyance I have found (not exactly a bug, and not a feature) is that when for example you download something as 720p and the next file you download has only 480p, then 480p is set for next download after that even if 720p is available.

Can't find a way to translate ytDownloader to other languages?

About 95% of the world don't speak English as a first language, and 75% don't speak English at all, so these things, i think, are important.

Many projects use Weblate (which can be self hosted), Crowdin, Transifex or Launchpad. These are the most simplest ways to do it for everyone too. Thanks.

[Feature Request] DIfferent download locations for playlists/Download location in the homepage

Greetings!

I have a recurring playlist that I frequently update and re-download with videos I use as resources for editing (thank god this program skips already-downloaded files, although slowly). I re-organized this playlist into a different folder compared to the singular video downloads and with their own respective tags. I was wondering if it was possible to allow a different download location for playlists compared to singular videos.

Maybe this isn't a good solution and may complicate the code of this program just to accommodate my workflow, so I'd like to ask if it would be possible to instead move the "change download location" into the homepage/front screen so as to hasten this process of organization.

I hope I'm not imposing much since I truly do love this program, it's an amazing utility and I haven't been able to find a different utility like it for Linux. Much appreciated to the work you do!

Edit: Wanted to delete this issue but couldn't. Apologies for that.

[Bug] Invalid start time for chapter

I noticed this on few videos, but it's kind of rare.

When you click on the button it loads for a while and throws in-app error in red text:

Some error has occured. Check your network and use correct URL

When you go to dev tools (seriously, it's great that you didn't hide them) it shows this output:

WARNING: [youtube] Invalid start time (1080.0 < 0) for chapter "OPEN 17:30 / START"
renderer.js:231

I'm only submitting this bug report, because when you use yt-dlp it works without problems.

Here's such an example where it happens, maybe you can identify what's wrong: https://www.youtube.com/watch?v=40wCYyxpmnI

.

.

No French translation

I would like to help by providing a French translation, but as it is not on CrowdIn I can't. Could you add it so that I would be able to translate everything to French ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.