ytfs

YouTube File System


Keywords
youtube, fuse, filesystem
License
MIT
Install
pip install ytfs==0.99a4

Documentation

http://i.imgur.com/Wbss2gh.png


YTFS - File system which enables you to search and play movies from YouTube as files - with tools of your choice. Based on FUSE, written in Python 3.

Dependencies, manual and documentation: Read the Docs

Installation

You can install YTFS with pip:

$ pip3 install ytfs

You need Python 3.4 or newer.

Important

Only systems where FUSE lib (or compatible) is available are supported. YTFS was tested on Linux, OS X and FreeBSD.

Usage

Here some basics are shown. See documentation for more detailed description.

Mount

Mount YTFS in an empty directory, for example:

$ mkdir youtube
$ ytfs youtube

Search

Enter the directory where YTFS is mounted and create a directory whose name is your search query. You can use GUI or CLI (note that the latter is most stable). If you like command line:

$ cd youtube
$ mkdir "rick astley"

Search results will appear in the directory you have created.

You can narrow your search to a specific channel:

$ mkdir "foo bar baz channel:foochannel"

Other additional parameters like before:, after: or max: are available. See docs for details.

To navigate between search pages use next and prev scripts in the search directory. Note that they have a space character at the beginning, thereby in most shells/file managers they should be alphabetically first:

$ ./\ next
$ ./\ prev

Playback

You can use search results as regular files. Open them with your favourite player, for example:

$ mkdir "rick astley"
$ cd rick\ astley
$ mplayer "Rick Astley - Never Gonna Give You Up.mp4"

Or you can copy them on your hard drive:

$ cp "Rick Astley - Never Gonna Give You Up.mp4" ~/youtube-collection/

Unmounting

To unmount, use fusermount -u and specify the directory where YTFS was mounted:

$ fusermount -u youtube

Dependencies

If you mount YTFS with options to download full videos at heighest quality, then audio and video merging may be needed. In such case FFmpeg or Libav is required.

Contribute!

If you want to suggest a new feature or help with development in any way, please open an issue or contact me via email.

License

MIT (c) Adrian Włosiak