Как быстрее скачать аудио или видео файл на YouTube? - PullRequest
0 голосов
/ 16 мая 2019

Я получаю ссылку на скачивание видео с YouTube.

Пример Ссылка: https://r4 --- sn-hgn7rne7.googlevideo.com/videoplayback?id=o-AFAhZy_ewhPuT9l2wWK4OXaCBsUmBIWX0EqumOSUHzBT&itag=140&source=youtube&requiressl=yes&pl=22&ei=zirdXPuFL6uM8gSPj7ygCg&mime=audio%2Fmp4&gir=yes&clen=4081843&dur=252.168 & LMT = 1557823006263504 & fvip = 6 & KeepAlive = да и с = WEB & TXP = 5531432 & ф = 2604% 3Aa880% 3A800% 3AC1% 3A% 3Afd% 3A0 & ipbits = 0 & истекают = 1558019887 & sparams = Clen, Dur, е, истекает, гир, идентификатор, внутрибрюшинно, ipbits, ITAG, LMT, мим, MIP, мм, млн, мс, мв, пл, RequireSSL, источник и ключ = CMS1 & подпись = 1F0A1261C8B008BB96D33F3268C673FD171790CA.7F63590873FF47EC4E05D28F74D6684CCC1154C1 & ratebypass = да & utmg = ytap1 & название = Sezen_Aksu _-_ Aktan_Ne_Haber_Official_Audio.m4a & cms_redirect = да & MIP = 46.196.21.103 & мм = 31 & Mn = СН-hgn7rne7 & мс = аи & т = 1557998299 & мв = м

Когда я загружаю его из любого браузера, он загружается через 5 секунд, но когда я пытаюсь загрузить его из python, ссылка загружается через 1 минуту. Я пробовал один и тот же размер в разных сетях, но получил одинаковый результат.

Для Python я использую это:

   import urllib
   urllib.urlretrieve(url,"file.m4a")

Я не знаю, Google ожидает от меня какой-либо заголовок или что-то еще, чтобы ускорить загрузку.

1 Ответ

1 голос
/ 17 мая 2019

Я подозреваю, что ваш браузер кэшировал файл или использует прокси, который кэширует файл. Я попытался загрузить файл с YouTube и получил аналогичную продолжительность тремя разными способами.

# Note this is how to get the youtube url: `youtube-dl -f 22 -g https://www.youtube.com/watch?v=qxlVTsFbyKs`

url = 'https://r3---sn-tt1e7n7e.googlevideo.com/videoplayback?id=o-APMpsV_ubZwYnre71FtKIY7rTKTd1HmAGqjFS7D_W9vO&itag=22&source=youtube&requiressl=yes&mm=31%2C29&mn=sn-tt1e7n7e%2Csn-tt1eln7s&ms=au%2Crdu&mv=m&pl=25&ei=g-LdXNT1H-ODir4P0Jeb0Ag&initcwndbps=2695000&mime=video%2Fmp4&ratebypass=yes&dur=91.649&lmt=1556128078557211&mt=1558045252&fvip=3&c=WEB&txp=2216222&ip=184.75.215.122&ipbits=0&expire=1558066915&sparams=ip%2Cipbits%2Cexpire%2Cid%2Citag%2Csource%2Crequiressl%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cei%2Cinitcwndbps%2Cmime%2Cratebypass%2Cdur%2Clmt&signature=481807C3CAD81BC6CFA6E4131D5E734BC2CB63FC.2EBF166C597725BC02E9EE28227B9A9C815E224C&key=yt8'

# 60 seconds
import urllib.request
urllib.request.urlretrieve(url,"file.mp4")

# 50 seconds
import urllib.request
data = urllib.request.urlopen(url).read()
open('out.mp4', 'wb').write(data)

# 50 seconds
import subprocess
subprocess.check_call(["curl", "-L", url, "--output", "out4.mp4"])

Чтобы отключить кеши в браузере, например, Chrome, вы можете попробовать Отключение кэша Chrome для разработки сайтов

...