The last time Hackerfall tried to access this page, it returned a not found error. A cached version of the page is below, or click here to continue anyway

GitHub - hsribei/guerilla-open-tube: Guerilla Open Tube, a distributed, censorship-resistant cache of YouTube https://news.ycombinator.com/item?id=8840346

Guerilla Open Tube

Guerilla Open Tube is a distributed, censorship-resistant cache of YouTube.

Guerilla Open Tube in 8 Steps:

  1. Install youtube-dl: http://rg3.github.io/youtube-dl/

  2. Type this in the command line. It will download the video given by the URL: youtube-dl <video url>

  3. Publish a torrent of the downloaded video file, be the first seeder, and grab the magnet link

  4. Fork this repository

  5. Add the video's magnet link as the first line in a text file named with the video's ID (the last part in the downloaded video's filename; a file ending in -vXr-2hwTk58.mp4 has an ID of vXr-2hwTk58, and would have as filename vXr-2hwTk58.txt) in the /video-ids directory (the other lines in the text file can be used for commentary or metadataformats for this can emerge organically)

  6. Send a pull request

  7. Find other repositories, merge in stuff from other people, download & keep seeding

  8. Teach 2 other people how to do this

Voil! We have a distributed, censorship-resistant cache of YouTube! \o/

Tips

OSX

Installation:

brew install ffmpeg
brew install atomicparsley
brew install youtube-dl

Usage:

youtube-dl --embed-subs --all-subs --add-metadata --write-description --write-info-json --write-annotations --write-thumbnail --embed-thumbnail --xattrs --write-auto-sub --restrict-filenames --prefer-free-formats -i <video url>

Bash alias (shorthand command):

Add this line to your ~/.bash_profile:

alias yd='youtube-dl --embed-subs --all-subs --add-metadata --write-description --write-info-json --write-annotations --write-thumbnail --embed-thumbnail --xattrs --write-auto-sub --restrict-filenames --prefer-free-formats -i'

Run source ~/.bash_profile, then, to download a movie, simply use:

yd <video url>

Roadmap

Basics

The first thing we need to do is automate the boring parts. Ideally, we would have a single command that, given a video URL (example: gotube https://www.youtube.com/watch?v=vXr-2hwTk58):

Advanced

Further down the road, we could make an (atom-shell -based?) app that works as an advanced front-end to YouTube (like a site-specific browser extension).

It could load everything on YouTube.com like a normal web browser would as you're clicking around.

But when you told it to play a video, the app could ask you if you want to download the video from your peers, or directly from YouTube (or both).

In case the video is not in your metadata repository (i.e. your fork of obvio171/guerilla-open-tube), it would ask if you want to download it and upload it to the cache.

Legal

Caches are protected under the DMCA: http://digital-law-online.info/lpdi1.0/treatise36.html

Furthermore, this repository does not store itself any copyrighted content.

I am not a lawyer, use or contribute at your own risk, but please do.

Continue reading on github.com