YouKu is the equivalent of YouTube in China, and earlier today I wanted to download a video from the service, so I’ve looked for an application or script that can do the job in Linux. I’ve finally come across you-get, a python 3 script that claims to be able to download videos from an impressive number of websites, namely:
YouTube Vimeo Coursera Blip Dailymotion Google+ Google Drive Tumblr Vine |
SoundCloud Mixcloud Freesound JPopsuki VID48 Niconico () Youku () Tudou () YinYueTai () AcFun |
bilibili CNTV () Douban () ifeng () iQIYI () Joy.cn () Ku6 (6) MioMio h NetEase () (v.163.com) PPTV.com |
QQ () (v.qq.com) Sina () (video.sina.com.cn) Sohu () (tv.sohu.com) 56 (56) Xiami () Baidu () (music.baidu.com) SongTaste |
I won’t try all, but just test it with YouKu and YouTube. First things first, let’s install it:
1 2 3 4 5 |
git clone git://github.com/soimort/you-get.git cd you-get sudo apt-get install python3 python3-setuptools ./you-get -V make install |
Time to go to youku.com and download a video:
1 2 3 4 5 6 7 8 |
you-get http://v.youku.com/v_show/id_XNTQ1OTk3NTAw.html Video Site: Youku.com Title: 1 second boot QT app in linux-sunxi with A10 Type: Flash video (video/x-flv) Size: 5.45 MB (5711001 Bytes) Downloading 1 second boot QT app in linux-sunxi with A10.flv ... 100.0% ( 5.4/5.4 MB) [========================================] 1/1 |
Success! And now Youtube:
1 2 3 4 5 6 7 |
you-get https://www.youtube.com/watch?v=A-9NKWm748o Video Site: YouTube.com Title: Sigma Designs Digital Signage Demo - Frame Layout Type: Flash video (video/x-flv) Size: 1.14 MB (1196352 Bytes) Downloading Sigma Designs Digital Signage Demo - Frame Layout.flv ... 100.0% ( 1.1/1.1 MB) [========================================] 1/1 |
All good, and that was easy. To download several videos, you can either write you own script, or add videos in you-get command line such as “you-get link2video1 link2video2 … link2videon“.
I remember somebody on G+ wanted to upload several videos to YouKu, so while I was on this subject, I decided to have a look at YouKu upload scripts as well.
There is indeed a script called “pyYouku“, which is also written in Python, that allows you to upload videos to YouKu. Once you download the software, you just need to update config.py with your username, password, and partner ID (API key). The latter is quite problematic, as you have to apply to become a developer (easy), and then request an API key by sending YouKu an email with your business name & address, business phone and business license (hard). And this is where I gave up…
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Great 🙂 Had this problem & hate the windoze-only youku app. And get_flash_videos (in Debian repos, doesn’t seem to work with youku).
I wonder if there’s a script which could download entire shows, playlists or channels of videos from YouTube. Anyone knows something like that?
For downloading single videos from YouTube, I currently use youtube-dl. There’s also ‘cclive’, which I once used to get a video from DailyMotion. There’s quite a lot of these downloader scripts, most of them support more than one service. But You-Get seems to be very useful, since I don’t think any other script supports so many Chinese services.
@rm
you-get supports playlist, but apparently not with YouTube.
@rm
Have you tried ytplaylistfetcher? http://gitweb.carbon-project.org/?p=ytplaylistfetcher.git
For some reasons, it did not work directly for me, so I modified it, in a quick and dirty way, to make it work with you-get – http://www.cnx-software.com/code/ytplaylistfetcher
You’ll need to install lynx, and clive (Not used, but I haven’t removed the check):
sudo apt-get install lynx clive
Tested it with:
./ytplaylistfetcher http://www.youtube.com/watch?list=PL6B821BBBD4F8CAE1
and it works for now.
Thanks a lot…
If you add “http://www.xvideos.com” also in your list, it will be more useful ..:))
I installed you-get and used for 2 days… but now it showing error like
dileep@dileep:~$ you-get -o /home/dileep/Downloads/you_get http://www.youtube.com/watch?v=gtVQITmYlXY
Traceback (most recent call last):
File “/usr/lib/python3.2/urllib/request.py”, line 1140, in do_open
h.request(req.get_method(), req.selector, req.data, headers)
File “/usr/lib/python3.2/http/client.py”, line 970, in request
self._send_request(method, url, body, headers)
File “/usr/lib/python3.2/http/client.py”, line 1008, in _send_request
self.endheaders(body)
File “/usr/lib/python3.2/http/client.py”, line 966, in endheaders
self._send_output(message_body)
File “/usr/lib/python3.2/http/client.py”, line 811, in _send_output
self.send(msg)
File “/usr/lib/python3.2/http/client.py”, line 749, in send
self.connect()
File “/usr/lib/python3.2/http/client.py”, line 727, in connect
self.timeout, self.source_address)
File “/usr/lib/python3.2/socket.py”, line 426, in create_connection
raise err
File “/usr/lib/python3.2/socket.py”, line 417, in create_connection
sock.connect(sa)
socket.error: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/usr/local/bin/you-get”, line 9, in
load_entry_point(‘you-get==0.3.12’, ‘console_scripts’, ‘you-get’)()
File “/usr/local/lib/python3.2/dist-packages/you_get-0.3.12-py3.2.egg/you_get/__main__.py”, line 77, in main
script_main(‘you-get’, any_download, any_download_playlist)
File “/usr/local/lib/python3.2/dist-packages/you_get-0.3.12-py3.2.egg/you_get/common.py”, line 696, in script_main
download_main(download, download_playlist, args, playlist, output_dir, merge, info_only)
File “/usr/local/lib/python3.2/dist-packages/you_get-0.3.12-py3.2.egg/you_get/common.py”, line 616, in download_main
download(url, output_dir = output_dir, merge = merge, info_only = info_only)
File “/usr/local/lib/python3.2/dist-packages/you_get-0.3.12-py3.2.egg/you_get/__main__.py”, line 70, in any_download
m.download(url, output_dir = output_dir, merge = merge, info_only = info_only)
File “/usr/local/lib/python3.2/dist-packages/you_get-0.3.12-py3.2.egg/you_get/downloader/youtube.py”, line 144, in youtube_download
youtube_download_by_id(id, None, output_dir, merge = merge, info_only = info_only)
File “/usr/local/lib/python3.2/dist-packages/you_get-0.3.12-py3.2.egg/you_get/downloader/youtube.py”, line 132, in youtube_download_by_id
type, ext, size = url_info(url)
File “/usr/local/lib/python3.2/dist-packages/you_get-0.3.12-py3.2.egg/you_get/common.py”, line 117, in url_info
response = request.urlopen(request.Request(url))
File “/usr/lib/python3.2/urllib/request.py”, line 139, in urlopen
return opener.open(url, data, timeout)
File “/usr/lib/python3.2/urllib/request.py”, line 370, in open
response = self._open(req, data)
File “/usr/lib/python3.2/urllib/request.py”, line 388, in _open
‘_open’, req)
File “/usr/lib/python3.2/urllib/request.py”, line 348, in _call_chain
result = func(*args)
File “/usr/lib/python3.2/urllib/request.py”, line 1160, in http_open
return self.do_open(http.client.HTTPConnection, req)
File “/usr/lib/python3.2/urllib/request.py”, line 1143, in do_open
raise URLError(err)
urllib.error.URLError:
I just wanted to grab some youtube videos listed in a text file with youtube-dl:
bir@N2C:~/faders$ youtube-dl -t < faders.txt
Usage: youtube-dl [options] url [url…]
youtube-dl: error: you must provide at least one URL
Is there a way to get youtube-dl to use URLs from a text file? :s
(The URLs are in the file, which '<' is supposed to direct to standard input… (Right?) Funnily enough cat < faders.txt works just like cat without '<' . But echo < faders.txt gives an empty line; it must be recognising '<' as a special character, or it would print it out again. I thought I kind of understood redirection, but now I'm not so sure!)
Try youtube-dl -t -a faders.txt
@cnxsoft
Thanks!
Just seen it’s possible to get audio from a YouTube video (e.g. music videos) directly using “youtube-dl -x url”.
@cnxsoft
That’ll save some typing; for some reason help only mentions “–extract-audio” 😉
-x didn’t work for me:
~$ youtube-dl -x http://www.youtube.com/watch?feature=player_embedded&v=JSxLkc-WWuw
[1] 1441
~$ Usage: youtube-dl [options] url [url…]
youtube-dl: error: no such option: -x
$ youtube-dl –version
2012.09.27
Newer version?
@onebir
Yes, I’ve just updated to Ubuntu 13.10 because Ubuntu 12.04 would always crash with YouTube videos. My old “youtube2mp3” script failed, and I found out it was much easier to use that option, but it could be only available in newer versions.
My version:
youtube-dl –version
2013.08.29
Think I’ll have to cook up an alias or 3:)
I could get youtube-dl to extract to aac files, but couldn’t get it to convert to mp3, even though libmp3lame was installed. Installing avconv (a fork of ffmpeg that youtube-dl seems to prefer) and ubuntu-restricted-extras has done the trick 🙂
Just grabbed something from youku with You-Get 0.3.30 – works well, including automatically stitching the flv files together, but either youku is unreliable, or it locked me out after a couple of d/ls…
(Added ‘3’ at the end of #! #!/usr/bin/env python3 for simplicity of invocation, since my system defaults to 2.7.x )
GUI for you-get: https://github.com/mozbugbox/you-get/wiki/Tk-Gui-图形界面
You can use Allavsoft to download and iQIYI videos to any video format like MP4, MOV, AVCHD, MTS, M2TS, ASF, DV, AVI, WMV, VOB, MKV, FLV, etc.