Obsah

FEL ČVUT Reupload

FEL ČVUT Reupload je projekt, který řeší automatizované zálohy záznamů přednášek a jejich přehlednou organizaci na YouTube kanálu. Umožňuje stažení videí z různých zdrojů, přidání metadat, a nahrání na YouTube kanál (všechno kromě zadávání metadat dělá automaticky). Všechna nahraná videa mají viditelnost nastavenou na UNLISTED. Díky tomu jsou přístupné pouze přes odkaz, který je k dispozici pouze tady, na FELwiki, na stránkách jednotlivých předmětů. K videím mají technicky tedy přístup pouze lidé z ČVUT, protože stránky předmětů jsou dostupné jen po přihlášení.

Videa jsou organizována do playlistů po jednotlivých předmětech. Každé video má název ve formátu AAA 1. přednáška (14. 3. 2021): Téma přednášky, kde AAA je zkrácený kód předmětu. Toto značení umožňuje rychlou orientaci v tématech, pokud člověk zpětně hledá nějakou konkrétní přednášku.

Popis projektu

Pro snadné nahrávání byl vytvořen Reuploader. Je to balík spojující několik dalších projektů:

Reuploader je Docker image a jeho distribuce probíhá přes Docker Hub pod označením ondt/reuploader. Tato metoda umožňuje celý reuploader distribuovat jako jeden velký balík, bez nutnosti stahovat a řešit všechny dependencies. Pokud víte něco o formátu AppImage a domníváte se že by šel použít místo dockeru, tak nám dejte vědět.

Buildění Reuploaderu při vydání nové verze probíhá automaticky přes CI/CD pipeline využívající GitHub Actions.

Nahrávání přednášek

Co je potřeba

1. Přidání do systému

Napište nám, musíme váš FEL email přidat do systému.

2. Instalace Dockeru

Postupujte podle oficiální dokumentace. Pro rychlou instalaci na systémech Ubuntu nebo NixOS můžete použít tyto snippety:

Ubuntu
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt install docker-ce docker-ce-cli containerd.io aufs-tools
NixOS
# configuration.nix
{
  ...
  virtualisation.docker.enable = true;
}

3. Spuštění Reuploaderu

Reuploader lze spustit standardním způsobem (s ukládáním cookies) takto:

sudo docker run -v reuploader:/src/cookies --rm -it ondt/reuploader

Při prvním spuštění se ten Docker image stáhne. To chvilku trvá, ale při každém dalším spuštění se už použije lokální kopie.

Základní způsob spuštění ale neumožňuje nahrání lokálních souborů. Proto existuje také wrapper, který spustí Reuploader jinak, pokud je první argument skriptu název nějakého souboru.

Reuploader se ptá na ČVUT username a heslo, které poté při přihlášení vkládá do webovek u kterých pak ukládá cookies do připojeného Docker volume. Díky tomu se obvykle stačí na přihlašovací údaje zeptat jen jednou a dál už neotravovat. Přečtěte si zdrojáky Reuploaderu a skriptu pro nahrávání, (a případně i ostatních součástí), abyste porozuměli tomu, jak se s přihlašovacími údaji manipuluje.

Lze také vyhodit -v reuploader:/src/cookies, pak se nebudou ukládat cookies. Bude ale potřeba se pokaždé znovu přihlásit ČVUT účtem.

4. Update Reuploaderu

Čas od času vznikne nová verze, ať už kvůli přidávání nových funkcí, nebo kvůli fixování bugů způsobených změnou UI webovek, na kterých Reuploader závisí. Lokální Docker image lze updatnout jedním příkazem:

sudo docker pull ondt/reuploader

Doporučujeme si nastavit na repozitáři notifikace o vydání nové verze podle návodu.

Detaily k implementaci