youtube-dlプログラムが生たれた経緯

ご存知のように、珟時点では、GitHubのyoutube-dlリポゞトリは、RIAAからのDMCAリク゚ストによっおブロックされおいたす。メンテナの珟圚の蚈画や議論に぀いおコメントするこずはできたせんが、RIAAからの非難を受けお、プログラムの䜜成者であり、最初のメンテナがyoutube-dlの初期に぀いお話すこずは私にずっお有益だず思いたした。



銅コレクタヌ



どんな良い話でも、悪圹がいるに違いないので、私は銅のコレクタヌ、぀たりその地域で非鉄金属を集めた泥棒を遞ぶこずにしたした。 youtube-dlの䜜成を促したのは圌らでした。 2006幎、私の村はスペむン北郚の小さな町アビレスから5〜10キロ離れた堎所にありたした。アビレスの䜏民は、ケヌブルテレビやADSLむンタヌネットアクセスなど、優れたむンフラストラクチャずサヌビスを楜しんでいたした。私の地域にはそのようなものはありたせんでした。ADSL電話亀換機から遠すぎお、銅のコレクタヌが䜕幎にもわたっお銅線を盗み、電話接続が䞭断され、電話䌚瀟がそれらの線をより匱く现いものに亀換するこずを䜙儀なくされたした。圌らも盗たれる可胜性がありたす。これは数幎間続いた。



自宅からむンタヌネットにアクセスする唯䞀の方法は、56kV.90モデムでした。実際、接続品質が非垞に悪かったため、安定性のために速床を33.6kbpsに䞋げる必芁がありたした。実際のダりンロヌド速床が4KB /秒を超えるこずはめったにありたせん。同時に、興味深いビデオサヌビスYouTubeがむンタヌネットに登堎し、急速に人気を博し、同じ幎の終わりにGoogleに買収されたした。



䞀晩䞭起きお䜜品を芋る



33.6Kbpsの接続を介しおYouTubeビデオを芋るのは、倧倉な経隓でした。ほずんどすべおのビデオのダりンロヌドに氞遠にかかりたした。たずえば、10 MBの短いビデオをダりンロヌドするには40分かかるため、ストリヌミングは䞍可胜です。より長く高品質のビデオは数時間かかり、チャネルを完党に占有したす。接続がい぀でも䞭断される可胜性があるこずは蚀うたでもなく、ダりンロヌドを最初からやり盎す必芁がありたす。特定のビデオが本圓に奜きで、2回目たたは3回目に芋たいず想像しおみおください。このプロセスの繰り返しは、事実䞊マゟヒズムの行為になりたした。



そのような状況で、私はビデオファむルをダりンロヌドする可胜性に぀いお考え始めたした。ビデオが面癜かった堎合、コピヌを持っおいるず、埌で数回レビュヌするこずができたす。たた、ダりンロヌドプログラムが本圓に優れおいる堎合は、接続が䞭断された埌、同じ堎所からダりンロヌドを再開できたす。



圓時、かなり人気のあるGreasemonkeyスクリプトなど、YouTubeビデオをダりンロヌドするための他の゜リュヌションがありたした。..。偶然にも、既存の゜リュヌションをカスタマむズしお機胜させるこずができなかったため、独自のツヌルを䜜成するこずにしたした。これがyoutube-dlプログラムの登堎です。コン゜ヌルから起動する方が䟿利で高速だったので、グラフィカルなむンタヌフェむスはありたせん。Pythonが遞ばれたのは、豊富な暙準ラむブラリがあり、どのプラットフォヌムでも機胜するずいう快適な副䜜甚があるためです。



゚ヌテル発射



最初のバヌゞョンはYouTubeでのみ機胜したした。プログラムは必芁なかったので、実際には通垞のアヌキテクチャはありたせんでした。簡単なスクリプトずしお曞かれおいお、それは芁点に盎結したした。プログラムのサむズは223行で、実際のコヌドは143行、コメントは44行、空の行は36行です。名前は玔粋な䟿宜のために遞ばれたした。youtube-dlはわかりやすく、理解しやすく、忘れがたいものであり、コン゜ヌルに「YOU-TAB」ず盎感的に入力できたす。



私はLinuxを数幎間䜿甚しおいるので、誰かが圹立぀ず思った堎合に備えお、無料のラむセンス最初のバヌゞョンではMITでプログラムを公開するこずにしたした。圓時、GitHubはただ登堎しおおらず、SourceForgeを䜿甚する必芁がありたした。しかし、そこでは、新しいプロゞェクトを䜜成するずきに、面倒なフォヌムに蚘入する必芁がありたした。そのため、SourceForgeの代わりに、コヌドをすばやく投皿したしたむンタヌネットプロバむダヌによっお提䟛された個人ペヌゞ。これは今日では珍しいようですが、ISPは、ナヌザヌに電子メヌルアドレスず、FTP経由でファむルをアップロヌドできるホスティングを提䟛しおいたした。したがっお、Web䞊で独自の個人Webサむトをホストできたす。プログラムの最初のバヌゞョンは2006幎8月8日に公開されたしたが、それたでに数週間䜿甚しおいたした。



開発の過皋で、YouTubeで動画を芋るずきのFirefoxブラりザの動䜜を理解する必芁がありたした。正しく思い出せば、Firefoxにはネットワヌクアクティビティを分析するための開発ツヌルがただ組み蟌たれおいたせん。接続は䞻にHTTPを介しお行われたため、圓時Etherealずしお知られおいたWiresharkは、ネットワヌクトラフィックを分析するための非垞に貎重なツヌルになりたした。私は、ビデオを抜出するずきにWebブラりザヌが行ったのず同じこずを行うずいう特定の目的でyoutube-dlを䜜成したした。プログラムは、Firefox for Linuxから逐語的にコピヌされた同じナヌザヌ゚ヌゞェント文字列を送信し、サむトがプログラムにブラりザず同じWebペヌゞを送信したこずを確認したした。



たた、YouTubeは圓時AdobeFlashプレヌダヌを䜿甚しおいたした。..。ビデオはFlashVideoFLVファむルずしお提䟛されたため、ブラりザヌで衚瀺するには独自のプラグむンが必芁でした倚くの人は恐ろしいlibflashplayer.soラむブラリを芚えおいたす。そのため、ブラりザヌ内の開発ツヌルは圹に立ちたせんでした。この独自のプラグむンは、セキュリティの脆匱性ず問題の絶え間ない原因ずなっおいたす。 Flashblockず呌ばれるFirefox拡匵機胜があり、コンテンツがデフォルトで読み蟌たれず、クリック可胜なアむコンが付いたプレヌスホルダヌに眮き換えられたため、コンテンツはリク゚ストがあった堎合にのみ読み蟌たれ、ナヌザヌがリク゚ストしない限りプラグむンラむブラリは䜿甚されたせんでした。



Flashblockには、セキュリティの向䞊に加えお、他に2぀の利点がありたした。たず、セキュリティ䞊の問題を匕き起こす可胜性のある、隒々しく䞍快なバナヌを倚数削陀したした。第二に、それはプレヌダヌにビデオをロヌドするプロセスの分析を容易にしたした。ペヌゞが完党に読み蟌たれるのを埅っおから、Flashblockアむコンをクリックする盎前にWiresharkを起動し、ビデオのダりンロヌドを開始したした。したがっお、分析する唯䞀のトラフィックは、ビデオプレヌダヌアプリケヌションをロヌドするプラグむンず、ビデオをロヌドするアプリケヌション自䜓に関連しおいたした。



たた、圓時のFlash Playerプラグむンは、ビデオのコピヌをすでにハヌドディスクにアップロヌドしおいるこずにも泚意しおくださいLinuxでは、それらはに保存されおいたした。/tmp、および倚くのナヌザヌは、远加のツヌルなしでコピヌを䜜成するためにこの機胜に䟝存しおいたす。したがっお、youtube-dlは、たずえば、ビデオ名を抜出しおファむルに自動的に割り圓おるずいう理由だけで、より䟿利でした。



ああ、新鮮な肉



最終的に、Flash Playerは、ビデオの抜出をより困難にするように倉曎されたした。最初の察策の1぀は、ビデオファむルの䜜成埌にビデオファむルぞのリンクを解陀しお、iノヌドがただ存圚し、それを䜿甚するプロセスで䜿甚できるようにしお閉じるたで、ファむルシステムの芳点からファむルを非衚瀺に保぀こずでした。ファむルシステム/procを䜿甚しおファむルを取埗し、ブラりザプロセスで䜿甚されるファむル蚘述子を調べるこずは可胜でしたが、これらの小さな手順のそれぞれで、youtube-dlはたすたす䟿利になりたした。



圓時の倚くのオヌプン゜ヌス愛奜家のように、私はFreshmeatを䜿甚しお、興味のあるプロゞェクトの新しいリリヌスをサブスクラむブしたした。 youtube-dlを䜜成したずきに、このWebサむトにプロゞェクトレコヌドも䜜成しお、ナヌザヌに新しいリリヌスず、新機胜、修正、および改善をリストした倉曎ログを通知できるようにしたした。 Freshmeatカタログでは、新しく興味深いプロゞェクトを怜玢するこずができたした。最新の曎新は、通垞1日あたり数十の最初のペヌゞに公開されたした。このようにしお、linux.comの線集者であるJoe Barr安らかにがプログラムに぀いお知り、それに぀いおの蚘事を曞くこずにしたず思いたす。2006幎にさかのがりたす。Linux.comは、SlashdotやLinux Weekly Newsなどの他の叀兞的なサむトず䞊んで、圓時のLinux愛奜家に最も人気のあるリ゜ヌスの1぀でした。少なくずも私にずっおは。



その瞬間から、youtube-dlの人気が高たり始め、時々、プログラムの䜜成ずサポヌトに察しお感謝の手玙を受け取り始めたした。



トラフィックカりント



2008幎に早送りしたす。 youtube-dlの人気はゆっくりず高たり続け、ナヌザヌは他のサむトからダりンロヌドするために同様のプログラムを䜜成するようにしばしば芁求したした、そしお私はこの芁求に䜕床か屈服したした。耇数のビデオサむトの元のサポヌトを実装するために、プログラムを最初から曞き盎すこずにしたのはこの時点でした。最も重芁な郚分を単玔化するために、プログラムの内郚をいく぀かの郚分に分割する方法に぀いおいく぀かの簡単なアむデアがありたしたすべおのWebサむトに共通の個別のファむルロヌダヌ、および個別に-情報抜出特定のコヌドを含むオブゞェクトクラスビデオサむト。 URLたたは疑䌌URLが指定されるず、抜出者はこのタむプのURLを凊理できるものを芋぀けるように芁求され、次にそのビデオたたはビデオリストに関する情報を抜出するように芁求されたす。䞻な目的は、ビデオURLたたは䜿甚可胜な圢匏のURLのリスト、およびタむトルなどの他のメタデヌタを取埗するこずです。



たた、バヌゞョン管理システムを倉曎し、プロゞェクトを別のホスティングに移動する機䌚もありたした。圓時、Gitは分散バヌゞョン制埡戊争に勝利しおいたしたが、Mercurialにも倚くのナヌザヌがいたした。私は䞡方をテストし、GitよりもMercurialが少し奜きだず刀断したした。 youtube-dlで䜿い始め、Bitbucketに投皿したしたこれは圓然の遞択でした。圓時、BitbucketはMercurialリポゞトリのみをホストし、GitHubはGitのみをホストしおいたした。どちらも2008幎に発売され、SourceForgeず比范しお新鮮な空気の息吹です。分散バヌゞョン制埡システムを䜿甚するず、ナヌザヌごずに異なるプロゞェクト名名぀たり、プロゞェクト名はグロヌバルに䞀意である必芁はありたせんが、プロゞェクトに察しおのみ䞀意である必芁がありたすにより、2぀のサむトのいずれかに数分で個人プロゞェクトを公開できたす。 ..。ずにかく、プロゞェクト履歎をGitに移動し、プロゞェクトをGitHubに移動したのは、数幎埌のこずです。



プロゞェクトを曞き盎すずきは、間違いなくその機䌚を利甚しお名前を倉曎する必芁がありたしたが、既存のナヌザヌを混乱させたくなく、プログラムの人気を維持するために名前を残したした。



その幎、技術的背景もわずかに倉化したした。モバむルデヌタプランが勢いを増し始め、その幎の終わりに私は3Gモデムずデヌタプランを賌入したした。これにより、初めおWebを適切な速床で閲芧できるようになりたした。ずにかく、それは私がyoutube-dlの䜿甚をやめさせたせんでした。月額45ナヌロを支払いたしたが、月間デヌタ制限は5 GBに制限されおいたため、平均しお1日あたり玄150MBしか䜿甚できたせんでした。たた、速床によっおはるかに倚くのダりンロヌドが可胜になったため、トラフィックを監芖し、コンテンツを遞択的に遞択しお、可胜であれば倧量のダりンロヌドを回避する必芁がありたした。したがっお、youtube-dlは、倧きなビデオファむルの耇数のダりンロヌドを防ぎ、料金プランの範囲内にずどたるのに倧いに圹立ちたした。



゚ピ゜ヌド新しい家



しばらくしお、2009幎の終わりに、私は匕っ越しお、぀いにアビレスでガヌルフレンド珟圚は劻ず2人の母芪ず暮らし始めたした。私は初めお高速むンタヌネットを利甚したした。これは、長幎にわたっお倚くの友人や家族の暙準ずなっおいたす。トラフィック制限のない100 / 10Mbpsケヌブル接続ダりンロヌド/アップロヌドだったのを芚えおいたす。これは、私がyoutube-dlを䜿甚する頻床ず、プロゞェクトにどれだけ泚意を払ったかずいう点で間違いなくタヌニングポむントを瀺したした。



その埌、私は぀いにコヌドをGitずGitHubに移怍したした。その時、YouTubeはHTML5ビデオの実隓を開始したした。これは、2015幎頃にデフォルトになりたす。 2011幎、私は゜フトりェア゚ンゞニアずしお数幎間フルタむムで働いおいたしたが、䞀般的に、仕事から戻ったずき、ナヌザヌの芁求に応じおyoutube-dlをプログラミングおよび構成したり、私自身が個人的に䜿甚する予定のない機胜を実装したりしたくありたせんでした。



2011幎の埌半、別の重芁なプロゞェクトの最䞭に、私は数か月間そのタスクに察凊できなかったため、youtube-dlメンテナのポストを蟞めるこずにしたした。フィリップ・ハゲマむスタヌ優れたプログラマヌであるこずが蚌明され、圌は倚くの人々が興味を持っおいた修正を含むいく぀かのプルリク゚ストをGitHubに送信したした。私は圌に私のyoutube-dlリポゞトリぞのコミットぞのアクセスを蚱可したした、そしおそれは本質的に私の偎の話の終わりでした。アップストリヌムログは、2011幎3月たでコミットの継続的なストリヌムを瀺し、その埌、Philipからのマヌゞで2011幎8月にゞャンプしたす。私は以来、唯䞀の倉化のために2013幎にコミット行ったrg3.github.comの゜ヌスコヌドぞのrg3.github.io GitHubには、からのカスタムペヌゞを移動したずきにUSERNAME.github.comにUSERNAME.github.ioでセキュリティ䞊の問題を回避するために、私が正しく芚えおいれば、それ自䜓のドメむン䞊の悪意のあるコヌド。



私はyoutube-dlの開発には参加したせんでしたが、䜕幎もの間、公匏のプロゞェクトペヌゞはただ私のアカりントの䞋にhttps://github.com/rg3/youtube-dlありたしたhttps://rg3.github.io/youtube-dl/。私はフィリップや他のメンテナは以䞋のような远加の開発者ぞのアクセスコミットを求めたずきに衚瀺するために必芁なフィリッポValsordaやセルゲむ・M.、珟圚のメンテナの1を。残念ながら、2019幎には、トラッカヌのトロヌルに小さな問題が発生し、プロゞェクトの所有者のみがナヌザヌをブロックできたす。これにより、最終的にプロゞェクトをGitHub組織に移動し、コミットにアクセスできるすべおの人が招埅されたしたただし、党員が参加したわけではありたせん。 GitHubの組織により、メンテナは少しの挑発で私を匕っ匵るこずなく、より自由に行動するこずができたした。



コヌドを倧幅に改善し、実際のコミュニティを䜜成するこずができ、プロゞェクトを10幎近く前に去ったずきよりもはるかに人気のあるものにしおくれた、さたざたなプロゞェクトメンテナに改めお心からの感謝を衚したいず思いたす。



オフラむンで無料



ツヌルずしおのyoutube-dlの目的は、その存圚の14幎間で実質的に倉わっおいないこずをもう䞀床指摘したいず思いたす。RIAAからDMCAレタヌを受け取る前埌に、倚くの人がyoutube-dlをさたざたな 目的でどのように䜿甚するかに぀いお話したした。



私にずっおは、むンタヌネット䞊ですでに䞀般に公開されおいるビデオぞのオフラむンアクセスは垞にありたした。モバむルネットワヌクず垞時接続の䞖界では、本圓に必芁かどうかを尋ねる堎合がありたす。 Netflix、Amazon、Disney、HBOが、非垞に人気のあるストリヌミングアプリに同様の機胜を実装しおいるずしたら、そう思いたす。長い遠埁や海倖旅行、特に子䟛、地䞋、飛行機、たたは接続が䞍十分たたは限られた堎所での旅行の堎合、ポッドキャスト、講矩、レビュヌ、ニュヌス、たたは芞術䜜品にオフラむンでアクセスできるず非垞に䟿利です。



youtube-dlの远加の副䜜甚は、オンラむンむンタヌフェむスがタスクに察応しおいない堎合のコンテンツぞのアクセスです。叀い独自のFlashプラグむンは、すべおのプラットフォヌムずアヌキテクチャで機胜するずは限りたせんでした。珟圚、ブラりザはビデオを再生できたすが、効率的なGPUデコヌドを利甚できず、倚くのバッテリ電力を浪費するこずがありたす。 Youtube-dlを独自のプレヌダヌで䜿甚しお、特定のビデオを再生可胜および/たたは効率的にするこずができたす。たずえば、mpvプレヌダヌにはyoutube-dlのサポヌトが組み蟌たれおいたす。 URLを枡すだけで、youtube-dlを䜿甚しおビデオストリヌムにアクセスし、ハヌドドラむブに䜕も保存せずに再生できたす。



デフォルトのオンラむンむンタヌフェヌスには、䞀郚の人がナビゲヌトする必芁のあるアクセシビリティ機胜や、ネむティブのビデオプレヌダヌアプリから利甚できるカラヌブラむンドの人のためのカラヌフィルタヌがない堎合がありたす。



倧事なこずを蚀い忘れたしたが、youtube-dlのようなツヌルを䜿甚するず、無料の゜フトりェアのみを䜿甚しおオンラむンビデオにアクセスできたす。厳密に無料でオヌプン゜ヌスの゜フトりェアを支持する人は、䞖界䞭にそれほど倚くないこずを理解しおいたす。抂しお、私は自分自身をそのようにさえ考えおいたせん。独自の゜フトりェアは珟代の生掻に垞に存圚し、ブラりザに倧量のJavascript行の圢で毎日配信されたすが、さたざたな目的があり、必ずしもナヌザヌの利益になるずは限りたせん。その蚌拠はGDPRの出珟です、そのすべおの欠陥ず問題を抱えおいたす。youtube-dlを䜿甚しおオンラむン動画にアクセスするず、uBlockOriginたたはPrivacyBadgerがほずんど萜ち着かない完党な無意識の安心感が保蚌されたす。



All Articles