pytube / README.md
nficano's picture
Updated README and AUTHORS.
68bf686
|
raw
history blame
2.91 kB

pytube

A lightwight, dependency-free YouTube Video download library, written in Python.

Downloading videos from YouTube shouldn't require some bloatware application, its usually a niche condition you need to do so in the first place.

Background

After missing the deadline to register for PyCon 2012, I decided to write what became PyTube and crawler to collect all the YouTube links for the talks on PyVideos.org.

To avoid having to encode them to mp4 (so I could watch them on my iPhone) I wrote it so you could specify an encoding format.

In recently weeks interest has picked up in the project, so I decided to dedicate more time to further its development and actively maintain it.

Principals

My only real goals for this is to never require any third party dependancies, to keep it simple and make it reliable.

Planned Features

The only features I see implementing in the near future are:

  • Allow it to run as a command-line utility.
  • Making it compatible with Python 3.

Usage

from youtube import YouTube

# not necessary, just for demo purposes
from pprint import pprint as pp

yt = YouTube()

# Set the video URL.
yt.url = "http://www.youtube.com/watch?v=Ik-RsDGPI5Y"

# Once set, you can see all the codec and quality options YouTube has made
# available for the perticular video by printing videos.

pp(yt.videos)

#[<Video: 3gp - 144p>,
# <Video: 3gp - 144p>,
# <Video: 3gp - 240p>,
# <Video: 3gp - 240p>,
# <Video: flv - 224p>,
# <Video: flv - 224p>,
# <Video: flv - 360p>,
# <Video: flv - 360p>,
# <Video: flv - 480p>,
# <Video: flv - 480p>,
# <Video: mp4 - 360p>,
# <Video: mp4 - 360p>,
# <Video: mp4 - 720p>,
# <Video: mp4 - 720p>,
# <Video: webm - 360p>,
# <Video: webm - 360p>,
# <Video: webm - 480p>,
# <Video: webm - 480p>]

# The filename is automatically generated based on the video title.
# You can override this by manually setting the filename.

# view the auto generated filename:
print yt.filename

#Pulp Fiction - Dancing Scene [HD]

# set the filename:
yt.filename = 'Dancing Scene from Pulp Fiction'

# You can also filter the criteria by filetype.

pp(yt.filter('flv'))

# [<Video: flv - 224p>,
# <Video: flv - 224p>,
# <Video: flv - 360p>,
# <Video: flv - 360p>,
# <Video: flv - 480p>,
# <Video: flv - 480p>]

# and by resolution
pp(yt.filter(res='480p'))

# [<Video: flv - 480p>,
# <Video: flv - 480p>,
# <Video: webm - 480p>,
# <Video: webm - 480p>]

# to select a video by a specific resolution and filetype you can use the get
# method.

video = yt.get('mp4', '720p')

# Okay, let's download it!
video.download()

# Downloading: Pulp Fiction - Dancing Scene.mp4 Bytes: 37561829
# 37561829  [100.00%]

# Note: If you wanted to choose the output directory, simply pass it as an 
# argument to the download method.
video.download('/tmp/')