Спосіб завантаження відео YouTube для навчання

Як зазначається в назві допису, такий спосіб завантаження відео YouTube не є одним з найкращих, а скоріше спосіб дізнатись, як працюють програми для цієї мети, як ті, що ми бачили тут (youtube-dl, який для Правда, у них багато можливостей, і це чудово, рекомендую).

Метод полягає у використанні загальних команд з 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"

download_wget

Ми сподіваємось, що це закінчиться, і ми завантажимо наше відео з YouTube із досить дивною назвою:

video_rare

Ми перейменовуємо його і бачимо, що це те саме відео, що і в посиланні, тому ми вже перевірили, що це складний, але корисний спосіб, якщо ви хочете знати, як працює цей тип програми.

відео_тест

Сподіваюся, це допоможе вам.