
YouTube DL Applet
Source (link to git-repo or to original if based on someone elses unmodified work):
File name is properly detected by youtube-dl;
If case of multiple download modes for different quality and formats they are listed in menu (using youtube-dl -F option);
INSTALLATION
Just run ./install. For packaging variable DESTDIR is supported.
Runtime dependencies:
- bash
- coreutils
- grep
- kdialog
- notify-send (libnotify, in Debian/Ubuntu - libnotify-bin)
- optionally: some terminal emulator - previously was used to see progress, but now it is essential, using kdialog
USAGE
Place launcher on reachable for drag-n-drop place (panel, dock, etc), then just drag links from browsers to launcher.
Tested with konqueror, firefox and seamonkey, most other should work as well.
You may get some brief help, launching it directly by click.
Begining from version 1.5, it allowes to specify multiple formats for download.
CONFIGURATION
If you want to use default progress monitor, using kdialog, disable all download tools and terminal emulators (by default it is done).
Configuration is done currently by editing of configuration files in text editor. Description of files may be found in brief help.
To disable some "tools" or "term" variants just comment them by sharp (#), no need to remove them.
Since version 1.2.2, configuration files are created anyway if they don't exist, otherwise they are not changed.
CHOOSING DOWNLOAD TOOLS
Since version 1.3, progress is displayed by default, using kdialog.
Also download process may be fully managed by various download managers, using detected link.
However, there is no way for them to detect proper file name.
The only hope is when they accept filename argument; kde copy tool, which is in list by default, does it (its another feature is essential integration with KDE job control system).
Terminal emulator, initially used for progress tracking, may be still useful if you get some youtube-dl bug.
To disable some elements just clean this file (in this case there is nothing to probe).
Contact: nick87720z@gmail.com
TODO
- Integration with KDE KIO job control. May need another big refactoring, probably using other language.
Version 1.5
- Now can download multiple formats
- Show program name in all dialogs (forgot about kde-specific kdialog arguments)
- Program version and tip, how to recover video from youtube DASH files, in short help (still unsure, how better implement it using bash)
Version 1.4.5
- Don't use which command - some distros lack it out of box
Version 1.4.4
- Better desktop notifications, using notify-send instead of kdialog (new dependency, see README)
Version 1.4.3
- kdialog error messages from formats menu generator somehow missed /dev/null
- dev ooops: forgot to remove debug stuff, which printed generated menu and canceled program
Version 1.4.2
- Fixed formats list parser - now works not only with youtube
- Last element in formats list was not shown
Version 1.4.1
- Show url's as url's in all dialogs
- regression: Download formats menu did not appear
Version 1.4
- Show error text and cancel if youtube-dl produced error on first usage attempt
- Formated text in progress dialog
Version 1.3.1
- regression: Did not remember last used directory
Version 1.3
- Code refactoring
- Added support for external download tools
- Added progress dialog for terminal-less mode
- Terminal emulator is disabled by default for progress dialog
- Support for comments and empty lines in files with variants for probing
- Updated readme, extended startup help text
- Create or load non-existing configuration files even without any work
Version 1.2.2
- Added formats menu (auto-detection of best format by youtube-dl is not so perfect yet)
- Changed script backend shell to bash
- In some cases real working dir in terminal emulator was not same as in $PWD variable
- Write default term file if not found
- Extending term config file role: accept list of terminal emulators, probed begining from first
- Finally fixed DEBUG implementation code
- Set console title for terminal with runing youtube-dl
- Questionable usefulness of url list entry text box. Display usage help instead.
- Use desktop notification system in progress-less mode
- Typo in code comments
Version 1.2.1
- Wrong code in DEBUG mode, causing it to be always enabled
Version 1.2
- Added debug mode (use environment variable DEBUG=yes)
Bugfixes:
- In first start could not save configs because did not create config dir
- Did not use urls list from text box when started without arguments
Version 1.1.1
- Added copyright info
Version 1.1
- Added copying information to package;
- Changed layout of config files: now all files are in ~/.config/youtube-dl-applet
- Trying to find youtube-dl, if failed - ask user to select it
- Some comments in code, mostly for markup
- Info in readme, how to specify terminal
Version 1.0: Initial release
Ratings & Comments
38 Comments
thanks. I don't like reading de-structions, but... once i figured out I needed to drag "youtube-dl-applet.desktop" to my desktop, it was so easy. Decompressed archive in ~$HOME/bin/ . Root-Action (service-menu): open console here. run './install' (service-menu allows run as su) Verify youtube-dl was in /usr/bin/ Drag 'launcher' to desktop. Open konqueror, go to video site Drag url to icon and pick a dl location, format. Done! Too Cool. Thank You. Landis. I Use: root-action service-menu: http://kde-apps.org/content/show.php/Root__%+Actions+Servicemenu?content=48411
thanks. I don't like reading de-structions, but... once i figured out I needed to drag "youtube-dl-applet.desktop" to my desktop, it was so easy. Decompressed archive in ~$HOME/bin/ . Root-Action (service-menu): open console here. run './install' (service-menu allows run as su) Verify youtube-dl was in /usr/bin/ Drag 'launcher' to desktop. Open konqueror, go to video site Drag url to icon and pick a dl location, format. Done! Too Cool. Thank You. Landis. I Use: root-action service-menu: http://kde-apps.org/content/show.php/Root__%+Actions+Servicemenu?content=48411
I just figured out, that option -f specifies only preference order for possible failures. I.e., it downloads first available format. However, there is undocumented support for n1+n2 format, specially designed for video+audio downloads, which are muxed.
In Kubuntu, Dolphin, just press <F4> and it pops open a small 'terminal' style window with the location of the current folder you are browsing - So there is NO need to enter any location in terminal. Theres no need to change directory (as you are already at the location you need to be) As previously explained, I downloaded the file to 'Downloads/Archived' Typed ./install ------------------- I read your ammended notes and so typed; sudo ./install || su -c install and it looks like it installed OK. After putting the shortcut on the desktop and passing a link to it, it opened a file load/save box with 'youtube-dl not found' at the top (where the title goes). So... What am I missing?
Captain Obviousity reports, you probably need to install youtube-dl :).
I have some idea. Do you have command "which" available? It is used to detect, wether youtube-dl available. I guess, some distros could don't have it installed by default. In this case i need to find other way of detection. I guessed it as essential as coreutils :S. Try to run in command line "which youtube-dl".
Eliminated need for which command - just figured out builtin bash feature, for interested: $ help command # =) That command in debian/ubuntu is in debianutils package - some kind of distro feature :S.
'help' did not produce anything usefull; pooky2483@pooky2483-Kubuntu-1204-3:~$ help youtube-dl bash: help: no help topics match `youtube-dl'. Try `help help' or `man -k youtube-dl' or `info youtube-dl'. There is also 'man' - manual <command> But there is no manual for youtube. I will look into installing 'youtube-dll'
If you are about "help which", it was for bash coders, who eventually may need such feature :)
Installed 'youtube-dl' tried to download a youtube video https://www.youtube.com/watch?v=W4awyd8icQQ&feature=c4-videos Failed to download! Is it a 'secure' video or am I still missing something?
Pure youtube-dl fails as well: ..... [youtube] RTMP download detected [download] Destination: The Tooth Fairy-W4awyd8icQQ.unknown_video ERROR: unable to download video As for applet, it just posts last line from youtube-dl output, describing error, in such cases.
Also tried http://www.videoweed.es/file/f515f9675e683 And it reported Invalid URL !
Same... $ youtube-dl http://www.videoweed.es/file/f515f9675e683 [generic] f515f9675e683: Requesting header WARNING: Falling back on generic information extractor. [generic] f515f9675e683: Downloading webpage [generic] f515f9675e683: Extracting information ERROR: Unsupported URL: http://www.videoweed.es/file/f515f9675e683; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type youtube-dl -U to update.
It is just a gui for youtube-dl, so don't forget to try it pure first.
I don't know what you mean by try it 'pure'
Under pure i mean invoking youtube-dl itself instead of via applet.
Tried to download (direct, via terminal & drop n drag) https://www.youtube.com/watch?v=fm5QM-Rk6uU and it failed too.
youtube-dl itself is not my project - i only made a convenient gui. Look there: http://youtube-dl.org/
Last link (just after this post) works for me. I self had several cases, when some video could not be downloaded from tube, but succeed later. Also it fails to download multiple videos from same hosting.
Tried the link again and got (again) Traceback (most recent call last): File "/usr/bin/youtube-dl", line 4645, in <module> main() File "/usr/bin/youtube-dl", line 4636, in main _real_main() File "/usr/bin/youtube-dl", line 4620, in _real_main retcode = fd.download(all_urls) File "/usr/bin/youtube-dl", line 869, in download ie.extract(url) File "/usr/bin/youtube-dl", line 1135, in extract return self._real_extract(url) File "/usr/bin/youtube-dl", line 1406, in _real_extract url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data) File "/usr/bin/youtube-dl", line 1406, in <genexpr> url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data) KeyError: 'sig'
I could not get <anything> to happen. I downloaded it to ~/Downloads/Archived and in dolphin (Kubuntu) after pressing F4 to open a small terminal window and typing ./install, it did nothing. So I opened Dolphin again, this time under SUDO and STILL nothing happened! What is going on???
Run as root (use sudo or su -c, or just enter subshell with su command). Almost all install notes (in all packages) mention this, but I thought it is obvious, that modification of system contents needs root permissions.
I DID... <From my last post> So I opened Dolphin again, this time under <SUDO> and STILL nothing happened! What is going on???
So, this time you ran dolphin itself from root? I never do so. There is no need for this. sudo is supposed to be part of command. I updated readme just after my previous reply, it includes example command, try it. Briefly: - open terminal emulator in dolphin by F4 - don't forget to change to sources directory - run command there
Wait, are you runing it just by click in script file? In this case it doesn't anything, but just copies necessary files. It doesn't write nothing, like OK, Done, etc. Probably, it is already installed. Try command "youtube-dl-applet" and check applications menu (in KDE just type "youtube" in kde runner by F2 or in kickoff kde menu).