20/11/2024
proxy pro youtube
Vytvoření vlastní proxy pro sledování videí na youtube.com je velice jednoduché. Motivy proč to vlastně dělat už tak jednoduché nejsou a možná je časem popíšu v samostatném příspěvku. Jak tedy vytvořit proxy. Stačí na svém serveru nainstalovat squid a odeditovat jeho konfigurák. Squid je běžný open source proxy server, který jde snadno nastavit tak, aby fungoval jako HTTP proxy. (postup je psán pro linuxové distribuce založené na deb)
$ sudo apt update $ sudo apt install squid -y
Konfigurace se následně odehrává v souboru squid.conf.
$ sudo vim /etc/squid/squid.conf
Co vlastně chceme. Chceme mít proxy, přes kterou budeme přistupovat pouze k webu YT a kterou budou moci používat pouze lidé, jenž k ní mají přístup pomocí hesla. Pokud bychom nechali proxy s veřejným přístupem a bez omezení cílových webů, neuplynul by ani den a našel by jí nějaký nepřátelský robot. Následně by bylo zcela jisté, že by IP vašeho serveru byla zneužita k nějaké nekalé činnosti. Heslo pro přístup je tedy nezbytné. Omezení na cílové weby v našem případě pouze na YT je na zvážení každého k jakému účelu skutečně chce proxy používat a jaký trafik může přes server pustit.
# squid.conf # nastavení přístupu pomocí hesla auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/squid_passwd auth_param basic realm Proxy Authentication acl authenticated_users proxy_auth REQUIRED # přístup pouze na povolené stránky acl allowed_sites dstdomain .youtube.com .ytimg.com .googlevideo.com .mojeip.cz # povolit pouze přístup pro přihlášené účty a na povolené stránky, vše ostatní zakázat http_access allow authenticated_users allowed_sites http_access deny all # port, na kterém bude proxy naslouchat http_port 3128 # umožnit přístip proxy přes ipv6 (pokud ji má) dns_v4_first off
Web mojeip.cz je v nastavení hlavně kvůli testu funkčnosti přístupu přes proxy. Až si pak vše otestujete můžete tuto adresu umazat.
Nyní je potřeba vytvořit uživatele, který bude mít přístup k proxy:
$ sudo touch /etc/squid/squid_passwd $ sudo apt install apache2-utils $ sudo htpasswd /etc/squid/squid_passwd jmeno_uzivatele
Budete vyzvání k zadání hesla pro vytvořeného uživatele.
Nyní stačí jen proxy nastartovat nebo pokud už běží tak restartovat.
$ sudo systemctl restart squid
Hotovo! Proxy běží. Teď ještě jak ji používat.
Já ji nejčastěji používám pro přehrávač mpv v kombinaci s yt-dlp.
$ mpv -ytdl-raw-options="proxy=http://jmeno_uzivatele:heslo@ip:3128" youtube_odkaz
To celé se samozřejmě dá schovat do scriptu. Něco jako:
#!/bin/bash link=$1 mpv -ytdl-raw-options="proxy=http://jmeno_uzivatele:heslo@ip:3128" $link
Druhou možností je nastavit proxi pro prohlížeč. Pro Firefox se najdřív musí připravit soubor proxy.pac tak, aby proxy používal pouze pro YT a mojeip:
function FindProxyForURL(url, host) {
// Seznam domén, které mají jít přes proxy
if (dnsDomainIs(host, ".mojeip.cz") ||
dnsDomainIs(host, ".youtube.com") ||
dnsDomainIs(host, ".ytimg.com") ||
dnsDomainIs(host, ".googlevideo.com")) {
// Nastavení proxy serveru s IP adresou
return "PROXY <ip>:3128";
}
// Výchozí chování - přímé připojení
return "DIRECT";
}
Pak je nutno ve Firefoxu nastavit použití tohoto souboru. To se dělá v nastavení, přesněji:
Nastavení->Obecné->Nastavení sítě->URL adresa pro automatickou konfiguraci proxy server
Zde je potřeba zadat cestu k souboru. Soubor může byt jak online, tak offline. V případě offline musí být cesta ve formě:
file:///home/user/cesta.../proxy.pac
Hotovo! Nyní při prvním pokusu o načtení videa z YT budete vyzvání k zadání uživatelského jména a hesla pro proxy. Funkčnost můžete otestovat na webu mojeip.cz, kde byste měli vidět ip vaší proxy místo ip vaší stanice.