Home

Awesome

Unmaintained

Sorry for this.

For a similar project that is still actively developed, try Annie: https://github.com/iawia002/annie

Lulu

PyPI Build Status Build status codecov

Lulu is a friendly you-get fork (⏬ Dumb downloader that scrapes the web).

Why fork?

Faster updates

Installation

Prerequisites

The following dependencies are required and must be installed separately.

Install via pip

$ pip3 install lulu

upgrade:

$ pip3 install -U lulu

Get Started

Here's how you use Lulu to download a video from Bilibili:

$ lulu https://www.bilibili.com/video/av18295259/
site:                Bilibili
title:               【中文八级】俄罗斯人的名字超乎你的想象
stream:
    - format:        flv720
      container:     flv
      size:          175.4 MiB (183914793 bytes)
    # download-with: lulu --format=flv720 [URL]

Downloading 【中文八级】俄罗斯人的名字超乎你的想象.flv ...
 100% (175.4/175.4MB) ├████████████████████████████████████████┤[1/1]    3 MB/s

Downloading 【中文八级】俄罗斯人的名字超乎你的想象.cmt.xml ...

Download a video

When you get a video of interest, you might want to use the --info/-i option to see all available quality and formats:

$ lulu -i 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
site:                YouTube
title:               Me at the zoo
streams:             # Available quality and codecs
    [ DEFAULT ] _________________________________
    - itag:          43
      container:     webm
      quality:       medium
      size:          0.5 MiB (564215 bytes)
    # download-with: lulu --itag=43 [URL]

    - itag:          18
      container:     mp4
      quality:       medium
    # download-with: lulu --itag=18 [URL]

    - itag:          5
      container:     flv
      quality:       small
    # download-with: lulu --itag=5 [URL]

    - itag:          36
      container:     3gp
      quality:       small
    # download-with: lulu --itag=36 [URL]

    - itag:          17
      container:     3gp
      quality:       small
    # download-with: lulu --itag=17 [URL]

The format marked with DEFAULT is the one you will get by default. If that looks cool to you, download it:

$ lulu 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
site:                YouTube
title:               Me at the zoo
stream:
    - itag:          43
      container:     webm
      quality:       medium
      size:          0.5 MiB (564215 bytes)
    # download-with: lulu --itag=43 [URL]

Downloading zoo.webm ...
100.0% (  0.5/0.5  MB) ├████████████████████████████████████████┤[1/1]    7 MB/s

Saving Me at the zoo.en.srt ...Done.

(If a YouTube video has any closed captions, they will be downloaded together with the video file, in SubRip subtitle format.)

Or, if you prefer another format (mp4), just use whatever the option lulu shows to you:

$ lulu --itag=18 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

Note:

Download anything else

If you already have the URL of the exact resource you want, you can download it directly with:

$ lulu https://stallman.org/rms.jpg
Site:       stallman.org
Title:      rms
Type:       JPEG Image (image/jpeg)
Size:       0.06 MiB (66482 Bytes)

Downloading rms.jpg ...
100.0% (  0.1/0.1  MB) ├████████████████████████████████████████┤[1/1]  127 kB/s

Otherwise, lulu will scrape the web page and try to figure out if there's anything interesting to you:

$ lulu http://kopasas.tumblr.com/post/69361932517
Site:       Tumblr.com
Title:      kopasas
Type:       Unknown type (None)
Size:       0.51 MiB (536583 Bytes)

Site:       Tumblr.com
Title:      tumblr_mxhg13jx4n1sftq6do1_1280
Type:       Portable Network Graphics (image/png)
Size:       0.51 MiB (536583 Bytes)

Downloading tumblr_mxhg13jx4n1sftq6do1_1280.png ...
100.0% (  0.5/0.5  MB) ├████████████████████████████████████████┤[1/1]   22 MB/s

Note:

Pause and resume a download

You may use <kbd>Ctrl</kbd>+<kbd>C</kbd> to interrupt a download.

A temporary .download file is kept in the output directory. Next time you run lulu with the same arguments, the download progress will resume from the last session. In case the file is completely downloaded (the temporary .download extension is gone), lulu will just skip the download.

To enforce re-downloading, use the --force/-f option. (Warning: doing so will overwrite any existing file or temporary file with the same name!)

Multi-Thread Download

Use -T/--thread number option to enable multithreading to download(only works for multiple-parts video), number means how many threads you want to use.

Proxy settings

You may specify an HTTP proxy for lulu to use, via the --http-proxy/-x option:

$ lulu -x 127.0.0.1:8087 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

However, the system proxy setting (i.e. the environment variable http_proxy) is applied by default. To disable any proxy, use the --no-proxy option.

Tips:

Load cookies

Not all videos are publicly available to anyone. If you need to log in your account to access something (e.g., a private video), it would be unavoidable to feed the browser cookies to lulu via the --cookies/-c option.

Note:

Watch a video

Use the --player/-p option to feed the video into your media player of choice, e.g. mplayer or vlc, instead of downloading it:

$ lulu -p vlc 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

Or, if you prefer to watch the video in a browser, just without ads or comment section:

$ lulu -p chromium 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

Tips:

Set the path and name of downloaded file

Use the --output-dir/-o option to set the path, and --output-filename/-O to set the name of the downloaded file:

$ lulu -o ~/Videos -O zoo.webm 'https://www.youtube.com/watch?v=jNQXAC9IVRw'

Tips:

Reuse extracted data

Use --url/-u to get a list of downloadable resource URLs extracted from the page. Use --json to get an abstract of extracted data in the JSON format.

Warning:

Search on Google Videos and download

You can pass literally anything to lulu. If it isn't a valid URL, lulu will do a Google search and download the most relevant video for you. (It might not be exactly the thing you wish to see, but still very likely.)

$ lulu "Richard Stallman eats"

Supported Sites

SiteURLVideos?Images?Audios?
YouTubehttps://www.youtube.com/
Twitterhttps://twitter.com/
VKhttp://vk.com/
Vinehttps://vine.co/
Vimeohttps://vimeo.com/
Vidtohttp://vidto.me/
Videomegahttp://videomega.tv/
Veohhttp://www.veoh.com/
Tumblrhttps://www.tumblr.com/
TEDhttp://www.ted.com/
SoundCloudhttps://soundcloud.com/
SHOWROOMhttps://www.showroom-live.com/
Pinteresthttps://www.pinterest.com/
MusicPlayOnhttp://en.musicplayon.com/
MTV81http://www.mtv81.com/
Metacafehttp://www.metacafe.com/
Magistohttp://www.magisto.com/
Khan Academyhttps://www.khanacademy.org/
Internet Archivehttps://archive.org/
Instagramhttps://instagram.com/
InfoQhttp://www.infoq.com/presentations/
Imgurhttp://imgur.com/
Heavy Music Archivehttp://www.heavy-music.ru/
Google+https://plus.google.com/
Freesoundhttp://www.freesound.org/
Flickrhttps://www.flickr.com/
FC2 Videohttp://video.fc2.com/
Facebookhttps://www.facebook.com/
eHowhttp://www.ehow.com/
Dailymotionhttp://www.dailymotion.com/
Coubhttp://coub.com/
CBShttp://www.cbs.com/
Bandcamphttp://bandcamp.com/
AliveThaihttp://alive.in.th/
755<br/>ナナゴーゴーhttp://7gogo.jp/
niconico<br/>ニコニコ動画http://www.nicovideo.jp/
163<br/>网易视频<br/>网易云音乐http://v.163.com/<br/>http://music.163.com/
56网http://www.56.com/
AcFunhttp://www.acfun.cn/
Baidu<br/>百度贴吧http://tieba.baidu.com/
爆米花网http://www.baomihua.com/
bilibili<br/>哔哩哔哩http://www.bilibili.com/
Dilidilihttp://www.dilidili.com/
豆瓣http://www.douban.com/
斗鱼http://www.douyutv.com/
Panda<br/>熊猫http://www.panda.tv/
凤凰视频http://v.ifeng.com/
风行网http://www.fun.tv/
iQIYI<br/>爱奇艺http://www.iqiyi.com/
激动网http://www.joy.cn/
酷6网http://www.ku6.com/
酷狗音乐http://www.kugou.com/
酷我音乐http://www.kuwo.cn/
乐视网http://www.le.com/
荔枝FMhttp://www.lizhi.fm/
秒拍http://www.miaopai.com/
小咖秀http://xiaokaxiu.com
痞客邦https://www.pixnet.net/
PPTV聚力http://www.pptv.com/
齐鲁网http://v.iqilu.com/
QQ<br/>腾讯视频http://v.qq.com/
企鹅直播http://live.qq.com/
Sina<br/>新浪视频<br/>微博秒拍视频http://video.sina.com.cn/<br/>http://video.weibo.com/
Sohu<br/>搜狐视频http://tv.sohu.com/
Tudou<br/>土豆http://www.tudou.com/
虾米http://www.xiami.com/
阳光卫视http://www.isuntv.com/
音悦Taihttp://www.yinyuetai.com/
Youku<br/>优酷http://www.youku.com/
战旗TVhttp://www.zhanqi.tv/lives
央视网http://www.cntv.cn/
花瓣http://huaban.com/
Naver<br/>네이버http://tvcast.naver.com/
芒果TVhttp://www.mgtv.com/
火猫TVhttp://www.huomao.com/
全民直播http://www.quanmin.tv/
阳光宽频网http://www.365yg.com/
西瓜视频https://www.ixigua.com/
快手https://www.kuaishou.com/
抖音https://www.douyin.com/
龙珠直播http://longzhu.com
半次元https://bcy.net
pixivisionhttps://www.pixivision.net

For all other sites not on the list, the universal extractor will take care of finding and downloading interesting resources from the page.

Development

Preparation

Install pipenv:

$ pip3 install pipenv

and fabric (Note: fabric doesn't support python3 now, install using pip2):

$ pip install fabric

Initialize virtualenv

$ pipenv --python 3

Install all dependencies:

$ pipenv install --dev

Use the shell:

$ pipenv shell

Run the tests:

$ fab test

Contributing

Lulu is an open source project and welcome contributions 😉

Note

@iawia002 has pep8 obsessive-compulsive disorder, all code must follow pep8 guidelines.

You can use flake8 to check the code before submitting.

Authors

You can find the list of all contributors here.

License

MIT