一种下载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, UPN, 签名 并以以下几个字符和数字结尾 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

希望对您有帮助。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  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的链接。

    我将尝试此操作,并继续我自己的下载脚本,并完成一些我所理解的事情。 问候和好文章