我真的希望这个问题不是题外话......
背景
该问题与媒体安全(视频、音频等)有关,其中相关媒体受到数字保护(合法,DMCA 风格)或其他(向公众开放,但不应根据某些许可证或其他许可证重新分发) .
例如,Youtube 上的视频可能会向公众开放(供观看),但不应重新分发。PBS上的视频可能对网站内容有相同的规定,但它们的保护方式却截然不同。
我无法使用 Adobe Flash 解决这个问题,但使用 HTML5 似乎有一种非常简单的方法可以在没有混淆的情况下获取实际的媒体内容。
编辑:为澄清起见,我问的是普通用户可能会遵循我提供的以下方法从 PBS 下载视频,但谁会发现几乎不可能从 Youtube 下载视频。
编辑 2:Youtube 将媒体内容分解为流式视频的表现;这也可以被认为是一种“安全”机制,因为用户必须编写软件来获取所有部分并将它们放在一起(为此目的存在软件),这使得人们很难直接访问媒体有问题。但是,它们还在 GET 请求的查询字符串中使用验证机制(参见下面的方法);这些验证机制是该问题的核心关注点。
方法
我将以 Youtube (HTML5) 和 PBS (JW Player 6.11.4920) 为例来介绍我正在谈论的内容。
PBS 网站上的La Famiglia:
1.) 禁用 Adobe Flash(例如,chrome:plugins -> Adobe Flash -> 禁用)
- 这迫使 JW Player 回退到 HTML5
2.) 打开开发者工具 -> 查看网络选项卡
3.) 开始播放视频
4.)video/mp4在类型栏中注意:

5.)请求 URL是可下载媒体的直接链接。瞧。
显然这是不安全的。如果这是受版权保护的内容,人们可以轻松地下载它并通过种子、文件上传网站等重新分发。不好!使用 Adobe Flash-only 媒体播放器,这种方法似乎无法做到,但这可能只是我缺乏调查能力。
让我们看看Haddaway - Youtube 上的爱是什么:
1.) Youtube 现在是 HTML5 了,太好了,跳过几个步骤直接进入开发者工具
2.) 寻找一些视频格式。找到了一些!:

3.) 高层次的混淆
正如我们所见,一些网站实施了某种形式的媒体访问控制来防止未经授权的访问。就 Youtube 而言,这可能是为了提高效率,但从他们的请求 URL 格式来看:
https://r1---sn-hxgpu-a5oe.googlevideo.com/videoplayback?upn=_t-wCQzh3Ww&signature=A298625B841D2DD1A8A8BBCFAEE5FE80F9F8ED45.4AF128179F70E92385145290FEF6B1843D3E4047&itag=243&keepalive=yes&lmt=1414207260185348&key=yt5&pl=16&id=o-AFRnZLaRZX9g_lgGGgfcjzbUFLOu-PFx0EGukit2Z358&mime=video%2Fwebm&mm=31&ipbits=0&requiressl=yes&ip=148.61.167.67&ms=au&gir=yes&mt=1424731661&dur=241.040&initcwndbps=3913750&expire=1424753375&sver=3&fexp=3300103%2C3300103%2C3300130%2C3300130%2C3300137%2C3300137%2C3300161%2C3300161%2C3310704%2C3310704%2C3311902%2C3311902%2C3312210%2C3312210%2C905657%2C907263%2C924628%2C927622%2C931378%2C934954%2C9406486%2C9406573%2C9406921%2C943917%2C947225%2C947240%2C948124%2C948703%2C952302%2C952605%2C952612%2C952901%2C954815%2C955301%2C957201%2C957906%2C959701%2C961403&mv=m&sparams=clen%2Cdur%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cupn%2Cexpire&clen=8105881&source=youtube&cpn=S4VP0TLZXAoVAKuj&alr=yes&ratebypass=yes&c=WEB&cver=html5&range=7240268-8105880
似乎他们在很多方面限制了访问。实际检索视频(来自 Youtube)的过程需要对构建的 URL(请求 URL)进行逆向工程(示例),下载每个块并逐步构建数据。Google 似乎对临时用户做得很好,但开发人员可以对请求 URL 进行逆向工程并创建“Youtube 下载器”,这在当今很常见。
问题
Youtube 正在使用的方法是否有特定的名称(分段+通过查询字符串参数进行的访问控制)?
是否有以这种方式“混淆”媒体的广泛使用/命名的方法?
是否甚至(技术上)可以完全防止未经授权的媒体访问?我的猜测是否定的,只要有人愿意花时间对必要的元数据进行逆向工程。


