一種下載YouTube視頻進行學習的方法

就像帖子標題所說的那樣,下載YouTube視頻的方法並不是最好的方法之一,而是一種學習程序的工作方式的方法,就像我們在這裡看到的那樣(youtube-dl,對於True,他們有很多可能性,這非常好,我推薦)。

該方法是使用來自 GNU / Linux的 為此,因為它們是 捲曲 和許多實用程序 打壞 y 蟒蛇 可以用來製作腳本。 應當注意,該方法不是自動的,而是需要用戶干預。

首先,我們找到一個視頻進行“測試”。

視頻目標

然後,我們通過保存並執行如下腳本的腳本來獲取頁面的內容:

"nombre del script" "url de youtube"
例如:
./script_url https://www.youtube.com/watch?v=1r-bWx3WZfQ

#!/bin/bash
ip=$(curl ifconfig.me)
for ((i=0;i<=10;i++))
do
curl -s $1 | grep "r$i---" | grep "expire" | grep "$ip" | grep "http" | grep "ratebypass" | grep "itag"
done

腳本說明:

為ip建立了一個變量,該變量將很快使用,隨後是一個循環,嘗試在變量“ $ i”中使用不同的數字,然後下一行是獲取內容和單詞過濾器,以“促進”變量的位置。鏈接使我們感興趣。

當我們執行上一個腳本時,它返回如下輸出:

代碼獲得

好吧,他們可能認為這沒有任何意義,但實際上比聽起來容易。 從他們獲得的輸出中,我們搜索,選擇並複制隱藏在內容中的假定鏈接,該鏈接通常具有以下形式:

http%3A%2F%2Fr2---sn-j5caxvoq5-2ute.googlevideo.com%2Fvideoplayback%3Fitag%3D5%26sver%3D3%26source%3Dyoutube%26mv%3Dm%26id%3Dd6bf9b5b1dd665f4%26ip%3D190.XXX.XX.XX%26key%3Dyt5%26upn%3DOPyez7xDXx0%26expire%3D1394709761%26sparams%3Did%252Cip%252Cipbits%252Citag%252Csource%252Cupn%252Cexpire%26ms%3Dau%26fexp%3D935640%252C927904%252C932250%252C910207%252C927860%252C916611%252C937417%252C913434%252C936910%252C936913%252C902907%252C934022%26mt%3D1394685288%26signature%3D0A96F682936F3E20015E95DC15AC3D291372CDD5.BF5B9EFF421155747A2267148C8F35B018D4A689%26ipbits%3D0

實際上有很多這樣的鏈接,但並非所有鏈接都有效。 尋找它可能有些棘手,因此對於這項工作,我們需要找到單詞 HTTP, ipbits, n, 一步對社區作出貢獻,最終決定推出別具意義 並以以下幾個字符和數字結尾 BF5B9EFF421155747A2267148C8F35B018D4A689; 已經在假定的鏈接中包含這些對象,我們將其複制。

應當指出,鏈接可能經常出錯,至少在我的情況下,我必須使用3個不同的鏈接來完成此操作,但是,它確實有效。

我們複製的代碼實際上是資源的地址(在本例中為視頻),但是,它是以HTML語言使用的字符形式編寫的,例如以百分號開頭的數字( %)。

因為我們想要的是一個“可讀”類型“ http://”的地址,所以我們必須將這些代碼轉換為字符,因此我們將使用python編寫的腳本來實現:

#!/usr/bin/python
def parse_conv(dvar):
df=""
count=0
global chain
chain=""
for dc in dvar:
if dc=="%" and count==0:
count=1
elif count==1 or count==2:
df=df+dc
if count==1:
count=2
else:
count=0
chf=chr(int(df,16))
chain+=chf
df=""
else:
chain+=dc
dvar=input("Código a convertir: ")
parse_conv(dvar)
parse_conv(chain)
print(chain)

與其他腳本一樣,他們保存並運行它。 將會出現類似這樣的內容,在該位置,他們粘貼先前的地址並輸入。 出現“ http://”之類的地址:

可讀地址

有了這個,我們將使用 wget的 下載視頻,如下所示:

wget -c "http://r2---sn-j5caxvoq5-2ute.googlevideo.com/videoplayback?itag=5&sver=3&source=youtube&mv=m&id=d6bf9b5b1dd665f4&ip=190.XXX.XX.XX&key=yt5&upn=OPyez7xDXx0&expire=1394709761&sparams=id,ip,ipbits,itag,source,upn,expire&ms=au&fexp=935640,927904,932250,910207,927860,916611,937417,913434,936910,936913,902907,934022&mt=1394685288&signature=0A96F682936F3E20015E95DC15AC3D291372CDD5.BF5B9EFF421155747A2267148C8F35B018D4A689&ipbits=0"

下載_wget

希望它能結束,我們將以一個非常奇怪的名稱從youtube下載我們的視頻:

video_rare

我們對其進行了重命名,並發現它與鏈接中的視頻相同,因此,我們已經驗證瞭如果您想知道這種程序的工作原理,這是一種困難而有用的方法。

video_test

希望對您有幫助。


14條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   希米肯人 他說:

    好的帖子,我更喜歡一種更簡單的方法,我在瀏覽器中搜索視頻,然後在終端中將其複制:
    #lsof | 閃存
    然後我複制該過程,這給了我
    cp / proc / xxxxx / fd / xx /路徑/到/ save.flv

    1.    @世界 他說:

      它對我不起作用,我為我得到了plugin-co 25074,它應該是文件描述符。
      無論如何,使用du -hL / proc / 25074 / fd / *沒有大小可以像Youtube視頻一樣,有人知道為什麼FD不出來嗎?

    2.    匿名 他說:

      在學習期間,我一直使用jdownloader來下載成千上萬的視頻和電影。 當然,對於那些喜歡使用終端的人來說,它不是最輕巧的工具(不是所有工具和系統都需要100 mb的內存),它不是有效的工具。

  2.   布萊克內托 他說:

    它不是最好的,但是Firefox有一個擴展名為Easy Youtube Video Downloader Express ...

    我離開聯盟: https://addons.mozilla.org/es/firefox/addon/easy-youtube-video-download/

    他已經趕不上我了...來自墨西哥的問候

  3.   馬科斯 他說:

    我一直很喜歡“解析”網頁,毫無疑問,這種知識解析(網站)+ linux可以讓您想像出可以完成強大功能的小腳本😀(具有非惡意目的的機器人)

    在我的網站上,我在php中上傳了這個小腳本,“僅顯示”“ vpnbook”的免費vpn密碼,該密碼經常更改,我希望以後做的就是每天早上7點或通過短信將其發送到我的手機中通過movistar頁面(通過另一個漫遊器):D.


    http://rojosbar.com/AL/1.php

    代號
    http://paste.desdelinux.net/4940

    您還可以使用以下命令從計算機上運行腳本

    PHP的SCRIPT.php

    其中SCRIPT.php用php代碼表示文件名

    -----
    我從ISSUU下載“雜誌頁面”並將其保存為PDF的另一個腳本(非常綠色)(因為我不喜歡它們在其網站上顯示的Flash版本)

    觀看正在運行的php腳本的視頻
    https://www.youtube.com/watch?v=h82r41UOWLQ

    編碼
    http://paste.desdelinux.net/4941

  4.   成本格蘭達 他說:

    youtube-dl [視頻]
    還有什麼簡單有效effective
    但我祝賀你的努力

  5.   你好 他說:

    我使用jdownloader

  6.   c4爆炸性 他說:

    在這裡,我再次離開了python腳本,因為我注意到我放的那個沒有標籤。

    http://paste.desdelinux.net/4942

  7.   約翰 他說:

    沒有程序的更簡單方法。

    1)右鍵單擊視頻。
    2)轉到“檢查元素”
    3)在視頻標籤中找到自己
    4)轉到SRC屬性並複制該鏈接(如果要跳過步驟5和6,只需轉到控制台並鍵入wget和復制的鏈接)
    5)在另一個標籤中打開該鏈接
    6)右鍵單擊->將視頻另存為...>完成後,欣賞。

  8.   ern 他說:

    一篇不錯的文章,儘管我認為利用它的讀者可能會感到困惑。
    在帖子中已經很明顯,有更好的下載YouTube視頻的方法。 他們打算展示Linux從網絡獲取數據的可能性。

    一個小例子作為貢獻:
    捲曲-s http://rss.thepiratebay.se/101 | grep磁鐵| grep鏈接| sed -r“ s /^.*(。+)$ / \ 1 / g” | 邊讀邊; 做迴聲傳輸-遠程-a $行; 完成

    它從thepiratebay rss feed中刪除了所有音樂磁鐵鍊接,最後60條,並顯示了將它們添加到傳輸中的命令。 如果我們刪除“ echo”,則會直接添加它們,請小心。
    我知道可以使用Flexget或類似工具來完成此操作,但這並不是要這樣做,而是要確定要從Web上獲取的信息,並找到一種使用Linux中的工具將其隔離的方法。

    我希望我沒有延伸或介入太多。

  9.   z 他說:

    而且使用Youtube-DL會不會更容易?

    要下載視頻:
    Youtube-dl [視頻URL]

    要僅下載音頻:
    youtube-dl -x –音頻格式mp3 [視頻URL]

  10.   @世界 他說:

    好的帖子,可以幫助我們更好地理解。

  11.   行會 他說:

    我使用CLIPGRAB,如果它是控制台,則使用clive或cclive命令。 我不需要任何腳本🙂

  12.   Kid_goth 他說:

    他們中的大多數人都很無聊,是的,已經有許多腳本和軟件可以實現該功能,但至少您想知道它們是如何做到的? u ...

    好吧,我不知道這種方式,我將對其進行測試,但是在通過開發人員工具訪問YouTube時,我發現它們具有一個api(我認為是REST),可以為您提供有關視頻的大量信息,然後指向其CDN的鏈接。

    我將嘗試此操作,並繼續我自己的下載腳本,並完成一些我所理解的事情。 問候和好文章