\documentclass[11pt]{article} % preamble \usepackage{a4wide} \usepackage{mathptm} \usepackage{epsfig} \usepackage{alltt} \usepackage{helvet} \makeatletter \def\verbatim@font{\normalfont\sffamily\fontencoding{T1}\selectfont \let\do\do@noligs \verbatim@nolig@list} \renewcommand{\ttdefault}{\sfdefault} \usepackage{url} \def\UrlFont{\sf} \setcounter{secnumdepth}{4} \newcommand{\DAN}[1]{[{\it {#1}}] \\ } \newcommand{\status}{{\it Status:}} \bibliographystyle{acm} \begin{document} \begin{tabular}{ll} Document: & {\bf Tribler Design Note} \\ Subject: & {\bf YouTube Decentralization } \\ Author: & {\bf Yuan Yuan} \\ Date: & {\bf \today} \\ Status: & {\bf\it DRAFT} \\ \end{tabular} % \section{Overview} Now only a few part of contents which users can download in Tribler are legal things, most of them are illegal. YouTube is a famous video website. All the videos in YouTube are legal. In order to import more legal content into Tribler, we can automatically collect the video information from YouTube, download the video which user want to watch into disk and generate the torrent file for the video. Thus when other users want to watch the same video while having the torrent file for that video, they can download the video from P2P world and don't have to connect to YouTube again. We call this YouTube Decentralization. This document specifies the overall process for YouTube Decentralization. \section{Video Information Collection} The first step in YouTube Decentralization is to automatically collect the video information from YouTube and save them into database. Including video name, url, picture, tags, category and added time, etc. \section{Video Play} When a user want to play a certain movie, the program will connect the YouTube to download the video file and play it for the user. When the play is finished, the video file will be saved in the user's disk. \section{Torrent Generator} For each video file saved in the disk, there will be a torrent file generated. The torrent file contains the information about the video. Such as video name, url, picture, tags, category and added time, etc. Two users can exchange torrents using some methods like BuddyCast(?). \section{P2P download} When a user want to play a certain video which is not located in the user's disk, the program first try to find the torrent file for this video. If such torrent file can't be found, repeat the step ''Video Play'' and ''Torrent Generator''. But If the torrent file can be found, the program will connect the other users who have the video and download it using P2P technology. \section{Distributed Tracker} There will be no official tracker for these torrents. So we will use "Distributed Tracker" instead normal tracker. \section{Advantage and Disadvantage} The advantage of this program is that it can automatically decentralize the YouTube website and put it into the P2P world. The disadvantage is that the speed is much lower than YouTube. In YouTube, you can start to watch the video in few seconds after you click the video-URL if you have a good internet connection. But in P2P world, you may wait few minutes before you can start to watch the video. It is Because the advantage of P2P downloading is based on the large file downloading - the file is divided into many pieces , you can download different pieces from different seeders or leechers. But the videos in YouTube are so small (8.3MB Per Video, based on the average length of the top 100 downloads of all time). For these small files, the connection time and bandwidth of content owner is more important than the number of content owner. But most of the ''seeders'' in P2P world are personal computer, they can't offer the large internet bandwidth and computing power as YouTube server. The other problem is that YouTube is a business company, is it legal to these things? \end{document}