Historia projektu StreamChange
Ocenianie kanałów u Bafa
Od września 2016 roku na kanale Baf, co kilka dni wieczorami, były prowadzone streamy z tworzenia miasta
z Margonem w 3D. W przerwach od modelowania obiektów w Blenderze, Baf oceniał kanały widzów.
Tworzenie modelu Nithal - największego miasta z gry przeglądarkowej Margonem, zakończyło się na koniec
listopada. Model posłużył do nagrania filmiku animowanego, który został wyrenderowany na silniku Unreal
Engine 4. Każda klatka została zapisana jako obraz PNG. Zostały one następnie złożone razem w Blenderze,
do formatu AVI. Filmik ważył kilkadziesiąt gigabajtów, a jego przesyłanie na Youtube trwało 20 godzin.
Animacja została opublikowana 6 grudnia i nie zdobyła popularności nawet po wielu latach jej obecności
na Youtube. Trzy miesiące tworzenia grafiki 3D poszły praktycznie na marne, ponieważ większą popularność można
było zdobyć filmikiem przygotowanym w ciągu kilkunastu minut. Od tego czasu Baf rozpoczął stopniowo wycofywać
się z tworzenia grafiki 3D, a na streamach, które wciąż chciał regularnie prowadzić, coraz więcej czasu
było przeznaczane na ocenianie kanałów, aż zostało głównym, a później jedynym tematem streamów.
Na ocenianie z początku decydowali się gracze Margonem, którzy poznali Bafa, gdy tworzył
animacje 3D i prowadził ankiety na temat animacji wśród graczy. Z czasem kolejni początkujący Youtuberzy,
zainteresowani ocenianiem ich kanałów, trafiali na streamy Bafa z wyszukiwarki.
Podczas, gdy inni streamerzy zajmujący się ocenianiem kanałów, wystawiali tylko punktowe oceny, często nie
przekazując przy tym żadnej wiedzy dla twórców, Baf starał się zawsze udzielać praktycznych wskazówek
i nie określać ocen kanałów w skali 0 do 10 nawet wtedy, gdy ktoś o to prosił.
To oczywiście zajmowało znacznie więcej czasu niż określenie kanału jedną liczbą. Każdy kanał był oceniany średnio
8 minut. Jednocześnie widzowie pisali na czacie dużo pytań odnośnie grafiki 3D, gry Margonem
i informatyki. Przez to na ocenianie swojego kanału trzeba było czekać. Pół godziny oczekiwania to był
standard. Aby ustalić, w jakiej kolejności Baf ma przyglądać się wskazanym mu kanałom, otwierał je
w kolejnych kartach przeglądarki. Kanały przeznaczone do oceniania były ułożone od lewej do prawej
strony ekranu. Taki sposób jest w sam raz, gdy na ocenianie czekają trzy osoby. Kłopot zaczyna się wtedy,
gdy z oceniania chce skorzystać kilkanaście osób jednocześnie. Ponieważ czas oczekiwania był długi, ponad połowa
widzów rezygnowała z oceniania, zanim nadeszła ich kolej. Nie pisali jednak, że rezygnują, tylko
po cichu wychodzili ze streama. Nietrudno się domyślić, że przy większej skali robi się
kompletny chaos. Tak właśnie było u Bafa. Zamiast skoncentrować się na ocenianiu kanałów, trzeba było
otwierać kolejne kanały w kartach przeglądarki i obserwować, jeszcze pisze coś na czacie,
a kto już najpewniej wyszedł. Kolejnym utrudnieniem jest czat działający z różnym opóźnieniem
u poszczególnych widzów. Gdy odstęp czasu pomiędzy wysłaniem kilku wiadomości na czacie jest mniejszy niż
sekunda, to widzowie mogą mieć na swoich ekranach różną kolejność wiadomości. Zdarzało się,
że widzów prawie równocześnie poprosiło o ocenianie, a później sprzeczali się, kto był pierwszy.
Prowadząc streamy z oceniania kilka razy w tygodniu, Baf dostrzegł pełen wachlarz problemów, jakie
mogą się mu przytrafić. Gdy widzów przybywało, ocenianie było coraz bardziej męczące
dla prowadzącego, a widzowie rezygnowali niezadowoleni. Trzeba było coś z tym zrobić.
Fejkowe konta znanych Youtuberów obecne na czacie
W 2017 roku popularnością cieszyły się rajdy popularnych Youtuberów na streamy początkujących twórców. Czasem
także w wolnym czasie, topowi Youtuberzy odwiedzali różne przypadkowe streamy, pisali jakąś wiadomość
i patrzyli jaka będzie reakcja. Pokryło się to w czasie z licznymi zmianami wyglądu plakietki
zweryfikowanego kanału przez programistów Youtube. Nietrudno się domyślić, że wynikiem ówczesnej sytuacji był
cały wysyp fikcyjnych, pustych kont, które podszywały się pod popularnych Youtuberów. Ludzie
posługiwali się nimi, aby robić kawały na czatach na streamach.
Takie konta miały zdjęcie profilowe i baner, skopiowane z konta popularnego influencera oraz jego nazwę
z dodanym znakiem przypominającym plakietkę „Zweryfikowany”. Nazwy kanałów mogą zawierać pełen zakres znaków
Unicode, więc żartownisie mieli z czego wybierać, aby jak najwierniej odwzorować prawdziwą plakietkę.
Podrabiane kanały miały ukrytą liczbę subskrybentów oraz choć jeden film skopiowany z prawdziwego konta,
ustawiony najczęściej na stronie głównej jako zwiastun kanału. Raz zdarzył się kanał, który miał
ustawione na stronie głównej, playlisty filmów z prawdziwego kanału, a więc były pod nimi widoczne
wysokie liczby wyświetleń, a kliknięcie prowadziło do filmu na prawdziwym koncie. Widzowie pisali
z nim na czacie przez kilkanaście minut zanim ktoś domyślił się, że to fejk. Byli aż tak
przekonani, że to prawdziwy Youtuber, że ten, kto pierwszy dał znać, że to fejk, został uznany
za wariata. Ludzie kryjący się za podrobionymi kontami, pisali także regularnie na streamach
u Bafa, co doprowadziło go do rozważań, czy dałoby się coś z nimi zrobić.
Niesłuszny timeout na streamie z Margonem
W czasach, gdy Baf tworzył animacje o Margonem oraz już po ich opublikowaniu, regularnie bywał na streamach z tej gry, aby poznać innych twórców zajmujących się tą samą branżą i zbudować sieć kontaktów. Była to także możliwość poznania opinii od ludzi, którzy spędzają przy tej grze najwięcej czasu. Takie opinie były przydatne na przykład przy wyborze lokacji z gry, w której powinna toczyć się akcja filmiku animowanego. Raz odwiedził średnio popularnego twórcę, który prowadził stream z Margonem i napisał na czacie jakieś pytanie. To była pierwsza wiadomość napisana przez niego na tym streamie. Streamer odpowiedział mu, że pyta o to dzisiaj już trzeci raz i od razu dał mu timeouta. Historię wiadomości na czacie można było przesunąć do góry tylko o około 20 wiadomości, więc Bafowi trudno było dowieść, że streamer się myli. W 2017 roku, nie było jeszcze funkcji ponownego odtwarzania czatu, na zapisanym nagraniu z transmisji. Sytuacja z niesłusznym timeoutem doprowadziła do rozważań nad możliwością zapisu całej historii czatu do pliku tekstowego. Wszak w takim pliku można byłoby wyszukać, czy nazwa danego widza pojawiła się już wcześniej, czy też faktycznie była to jego pierwsza wiadomość.
Program na Windowsa napisany w VB.NET
Do połowy 2017 roku, Baf miał już ułożony plan, jakiego programu mu potrzeba. W tym czasie swoją kinową
premierę miał film The Circle. Znaczna część fabuły tego filmu (jak i książki, na podstawie której napisano
scenariusz) dotyczy miniaturowej kamerki, nazwanej SeeChange. To właśnie jej program zawdzięcza swoją nazwę –
StreamChange. Gdyby planowanie programu nie pokryło się w czasie z premierą tego filmu, czytałbyś ten
tekst na stronie o zupełnie innej nazwie.
Baf był wtedy na pierwszym roku studiów informatycznych. Nauka na tym etapie studiów polega na rysowaniu
schematów blokowych oraz pisaniu prostych programów konsolowych. We własnym zakresie Baf nauczył się
prostego języka Visual Basic .NET, który pozwala tworzyć programy okienkowe na Windowsa, uruchamiane
w środowisku .NET Framework. To jest język dla początkujących, co przejawia się choćby
w zastąpieniu nawiasów słowami i tak na przykład deklaracja klasy zaczyna się od Class
,
a kończy na End Class
. Wiele skróconych nazw, obecnych w innych językach programowania, zostało
w Visual Basic zastąpionych pełnymi nazwami (np. liczba całkowita to Integer
, a w innych językach
jest int
). Przez to napisany kod jest bardzo długi, ale za to znacznie bardziej zrozumiały dla młodego,
niedoświadczonego programisty.
Właśnie w tym języku Baf postanowił napisać program, który usprawni jego ocenianie kanałów. Najtrudniejsze
na początek okazało się pobieranie wiadomości z czatu przez Youtube Data API. Mimo, że VB.NET
był niszowym językiem, Google przygotował bibliotekę dla języków .NET, która zawierała implementację
wszystkich funkcji API oraz autoryzacji OAuth2. Do biblioteki, Google dołączył obszerną dokumentację
z przykładami kodu. Na GitHubie był dostępny przykładowy program, który okazał się sporą pomocą. Kolejnym
problemem było układanie kanałów w odpowiedniej kolejności i przesuwanie się kolejki do góry, gdy do
oceny był brany kolejny kanał. Pierwsza wersja została zaprezentowana na streamie w lipcu 2017 roku.
Z początku wcale nie ułatwiała ona oceniania, ponieważ miała liczne błędy. Kolejne streamy służyły
do testowania jej w realnych warunkach.
Ilustracja 1. Główne okno programu StreamChange
Po starcie aplikacji, na ekranie ukazywało się jej główne okno, w którym było logowanie i przyciski do otwierania innych modułów w osobnych oknach. Kolejka była pierwszym wykonanym modułem, a zaraz po niej powstało zapisywanie historii wiadomości do pliku. Historię można było zapisać do pliku XML, który dało się potem otworzyć w programie StreamChange, by czytać, przeszukiwać i filtrować jego zawartość. Drugą opcją był zapis do pliku PDF i był on w sam raz, gdy zapisem czatu chciałbyś podzielić się ze znajomymi, którzy nie mają programu StreamChange.
Ilustracja 2. Okno programu StreamChange TrueYou
Gdy kolejka już w miarę działała, kolejnym problemem do rozwiązania były fejkowe konta. Jednym z kluczowych cytatów z filmu The Circle jest „Because knowing is good, but knowing everything is better”. Wokół tego motto został stworzony kolejny moduł aplikacji. Zapisywał on do bazy danych wszystkich widzów, którzy napisali coś na czacie. Każdy wpis zawierał historię zdjęć profilowych, historię nazw, opis, link do kanału, liczbę subskrypcji, ilość wysłanych wiadomości na czacie, ilość minut spędzonych na streamie, daty i godziny pierwszej i najnowszej wiadomości na czacie. Takie narzędzie pozwalało szybko demaskować osoby, które zmieniły awatar i nazwę swojego kanału. Dało też możliwość sprawdzania, czy ktoś jest na streamie pierwszy raz, czy też kiedyś już napisał jakąś wiadomość. Jeśli masz dużo widzów, nie byłbyś w stanie zapamiętać, że dany widz odwiedził cię rok temu i napisał wtedy jedną wiadomość. Program to potrafił. Mając takie dane, można było rozpoznawać nie tylko fejkowe konta popularnych twórców, ale też osoby podszywające się pod twoich stałych widzów nawet, jeśli ci widzowie nie publikują żadnych filmów. Odczucie było takie, jakbyś wcześniej czytał czat przez dziurkę od klucza, a potem StreamChange otworzył dla ciebie całe drzwi. Nie był to jednak program bez wad. Ponieważ powstał w VB.NET, działał ociężale i zawieszał się, gdy miał wyświetlić obszerną tabelę widzów. Dało się też odczuć brak wiedzy programisty, który go stworzył – nieraz zdarzały się nieobsługiwane błędy, których wystąpienie skutkowało zamknięciem programu.
Porozmawiaj z Generalną - inteligentnym botem
Pierwszym krokiem po otwarciu programu, zawsze było zalogowanie się w nim na swoje konto Google,
by program dostał token OAuth2. Taki sposób logowania dawał programowi uprawnienie do wysyłania wiadomości
na czacie z konta, którym się zalogowałeś. Moduł kolejki już na początku swojego istnienia
wykorzystywał tą funkcję do powiadamiania widzów, że dostali się do kolejki, na które
miejsce się zakwalifikowali lub że kolejka jest już pełna. Możliwość zaprogramowanego wysyłania wiadomości
w wybranych sytuacjach bez ingerencji streamera kusiła, by tą funkcjonalność rozszerzyć. Po ocenie setek
kanałów, Baf dostrzegł, że na wielu powtarzają się te same błędy, jak brak opisu kanału lub intro
z panzoida oraz że niektóre proste błędy, program byłby w stanie dostrzec samemu. Te obserwacje
doprowadziły do rozszerzenia modułu kolejki o automatyczne, podstawowe ocenianie kanałów. Gdy ktoś
napisał komendę dołączenia do kolejki, program odpowiadał mu, na które miejsce trafił, a kilka sekund
po tym dostawał wiadomość z poradą, co może poprawić na swoim kanale.
Wysyłanie wiadomości przez StreamChange było rozwijane w takim kierunku, by przypominało język naturalny,
teksty pisane przez żywego człowieka. Konto, z którego były wysyłane wiadomości, potrzebowało przyjaznej nazwy,
która nie będzie kojarzyła się z bezdusznym robotem. Wybór padł na nazwę Generalna. To nie była
oryginalna nazwa – tak samo nazywała się najaktywniejsza w tamtym czasie moderatorka CDX’a i Torcia.
Aby wirtualna Generalna zyskała złudzenie bycia człowiekiem, StreamChange musiał zostać poszerzony o moduł
cleverbot. Cleverbot to algorytm AI, który odpowiada na wysyłane do niego wiadomości. Jest systemem
uczącym się – zapamiętuje, jak ludzie odpisują na dany tekst i naśladuje ich. Im więcej ludzie z nim
piszą, tym trafniej potrafi odpowiadać, ponieważ rośnie jego baza wiedzy i posiada w niej odpowiedzi
na więcej pytań. Trzeba jednak mieć na uwadze, że sztuczną inteligencję obowiązuje zasada „garbage in,
garbage out”. Oznacza ona, że wprowadzając do programu głupie treści, on również będzie głupio odpowiadał.
Najsłynniejszym tego przykładem był bot Tay, którego ludzie nauczyli pisać rasistowskie i inne obraźliwe
teksty, przez co musiał zostać wyłączony po 16 godzinach od premiery.
Baza tekstów Generalnej była czasami ręcznie porządkowana przez jej twórcę, więc ten bot był bardziej kulturalny
niż Tay. Niestety mała ilość danych do uczenia się, sprawiała, że odpowiedzi Generalnej rzadko były
trafione. Były za to bardzo śmieszne. Generalna potrafiła także witać widzów po imieniu, gdy miała czyjeś
imię w bazie danych. Widzowie polubili Generalną i często prowadzili z nią rozmowy, by umilić sobie
czas oczekiwania na ocenianie ich kanału.
Dystrybucja, która nigdy się nie rozpoczęła
Program, którego napisanie zajęło wiele miesięcy, był do tej pory używany tylko przez jednego streamera.
Gdy zapoznamy się ze średnimi kosztami pracy programisty i spróbujemy policzyć potencjalny koszt
implementacji programu o podobnej złożoności, wtedy mogłoby okazać się, że setup streamingowy Bafa
należał do najdroższych na świecie. Biorąc pod uwagę, że był to wtedy kanał z pięcioma tysiącami
subskrybentów, widzimy skrajną niegospodarność. Poniesione koszty nigdy nie miały szans się zwrócić. Cała
ta sytuacja nie była widoczna gołym okiem, ponieważ żadne przepływy pieniężne nie miały miejsca.
W rzeczywistości kosztem wykonania programu, były setki godzin pracy bez otrzymanego wynagrodzenia.
Rozwiązaniem miała być sprzedaż programu dla innych streamerów. Wtedy koszty jego stworzenia, zostałyby rozłożone
na więcej osób i przyjęłyby akceptowalny poziom w przeliczeniu na jednego użytkownika. Miał
to być program, na który może sobie pozwolić przeciętny streamer o małej widowni.
Przy rozpoczęciu przygotowań do wydania programu, stało się bardzo widoczne, że StreamChange był
od początku tworzony z zamiarem używania go przez jednego streamera. Jego interfejs był trudny
w obsłudze. Wiele przycisków miało tylko ikony bez jakichkolwiek objaśnień, do czego one służą. Niektóre
funkcje były trudne do odnalezienia. Program miał wbudowaną linię komend, której użycie było konieczne,
aby na przykład dołączyć bota do czatu. Nigdzie jednak nie było napisane, że to małe pole tekstowe
to właśnie linia komend, ani co należy tam wpisać. Najtrudniejsza jednak była początkowa konfiguracja,
aby program zadziałał na nowym komputerze – ta wymagała choćby założenia konta deweloperskiego
w Google Cloud.
W ramach przygotowań do dystrybucji programu, dodano dymki z opisami, wyświetlające się
po najechaniu myszką na przyciski oraz pola tekstowe.
StreamChange był do tej pory używany tylko na jednym komputerze i był to ten sam komputer,
na którym został napisany i skompilowany. W celu przeniesienia takiego programu na inny komputer,
konieczny był instalator. Samo środowisko Visual Studio jest w stanie zaoferować tylko prosty instalator
w formie pliku .msi. W przypadku StreamChange to było zbyt mało i instalator nie działał poprawnie.
Konieczne okazało się przygotowanie instalatora WiX. Tak samo nazywa się kreator stron internetowych,
lecz to zupełny przypadek.
Sporządzenie działającego instalatora zajęło ponad dwa tygodnie. Prace składały się z konfiguracji WiX Toolset
oraz napisania umowy licencyjnej, którą każdy płatny program powinien mieć do przeczytania
w instalatorze. Następna w kolejności była instrukcja początkowej konfiguracji. W pliku pdf
o rozmiarze około dziesięciu stron, została przygotowana szczegółowa instrukcja z ilustracjami
dla każdego kroku konfiguracji. Instrukcja miała zostać rozesłana do osób, które nie potrafią
programować, by ocenili, czy jest zrozumiała. Nikt jednak nie chciał zostać testerem i poświęcić choćby
kilku minut na jej przeczytanie. W końcu jeden streamer, który rozważał zakup programu, otrzymał
instrukcję i bez problemu skonfigurował program, co oznaczało, że instrukcja była w porządku.
Ilustracja 3. Wygląd programu StreamChange Tester
Do potencjalnych klientów, którzy planowali zakup programu, był wysyłany program SC Tester. Była to mocno
okrojona wersja programu, która nie robiła nic, ale jej konfiguracja przebiegała w identyczny sposób,
jak w pełnej wersji. Stworzenie SC Testera było kolejnym etapem przygotowań do dystrybucji,
który pochłonął ponad tydzień pracy. Założenie było takie, że SC Tester ograniczy ilość reklamacji płatnego
programu. Poprawne uruchomienie SC Testera dawało pewność, że pełny program także będzie działał.
Programy instalowane na komputerach są podatne na piractwo. StreamChange miał sobie radzić z nim
w ten sposób, że każdy Youtuber miał dostawać program z identyfikatorem swojego kanału zaszytym
w kodzie. Przez to program dla każdego klienta musiałby być osobno kompilowany, ale za to działałby
tylko na streamach osoby, która kupiła program. Gdyby ktoś rozpowszechnił taki program, to piraci
i tak nie mogliby na nim zalogować się na swoje konto Youtube.
StreamChange był napisany we frameworku .NET, który jest kompilowany do kodu pośredniego i możliwa
jest jego dekompilacja, a następnie usunięcie przypisania do jednego konta. Aby to utrudnić,
w dystrybuowanym programie miał zostać zaciemniony kod (ang. obfuscation). Ta operacja była kolejną rzeczą
w procesie dystrybucji, która dodawała nieco dodatkowej pracy.
Równocześnie z przygotowywaniem programu do dystrybucji, była prowadzona ankieta na temat ceny,
jaką potencjalni klienci są gotowi zapłacić za taki program. W prowadzeniu ankiety pomógł Youtuber
Majkel, który miał w tym czasie dużą i zaangażowaną widownię na streamach. Po zebraniu
i uśrednieniu wyników ustalono jednorazową opłatę za program w wysokości 60zł.
Gdy rozesłano ogłoszenia o rozpoczęciu sprzedaży programu, kilka osób zgłosiło się po darmowy
tester. Pełnego programu nikt nie kupił. Wiele tygodni pracy nad instalatorem, testerem i instrukcją, poszło
na marne.
Podstawową wadą modelu biznesowego była tu grupa klientów, do której kierowany był program. Nastoletni Youtuberzy,
którzy byli początkowo zaciekawieni programem, nie są chętni do jakichkolwiek zakupów. Wielu z nich
ma roszczeniową postawę. Montują swoje filmy w pirackich programach do edycji wideo i dodają
do nich grafiki bez licencji, znalezione w Google Grafika. Gdy czasami znajdzie się jakiś
Youtuber, który chce kupić na przykład paczkę animacji od popularnego grafika, to ma do zaoferowania
w zamian tylko paysafecard za 20 zł.
Upadek popularnych liczników subskrypcji
Ilustracja 4. Poradnik do licznika subskrypcji
Mimo porażki z wprowadzeniem na rynek programu dla streamerów, Baf miał na swoim koncie inny sukces
w świecie streamingu. Był to filmik wyjaśniający, jak dodać do OBS licznik subskrypcji. Osiągnął
on dwieście tysięcy wyświetleń, zapewnił twórcy rozpoznawalność, a prezentowana w nim metoda
stała się branżowym standardem i wyparła te stosowane wcześniej. Filmik został opublikowany w maju
2017 i przedstawiał instrukcję na przykładzie strony internetowej z licznikiem, stworzonej przez
hinduskiego programistę, Akshata Mittala. Strona przestała działać w styczniu 2019 roku, gdy Google
wziął się za ograniczanie dostępu do Youtube Data API i zmniejszył limit dziennej liczby zapytań
przesyłanych na serwer Youtube. Nowy limit był zbyt mały, by strona mogła działać jak dotychczas, czyli
na bardzo wielu streamach jednocześnie, co kilka sekund odświeżając licznik.
Upadek hinduskiego licznika pokrył się w czasie z premierą strony internetowej streamchange.pl,
na której znajdował się kreator licznika subskrypcji bez pisania kodu CSS. Darmowe rozwiązanie dostępne
pod marką StreamChange, likwidowało największą trudność ustawienia swojego licznika, jaką była edycja kodu CSS
przez nastolatków o zerowej wiedzy z programowania. W takim kodzie, często zdarzały się drobne
pomyłki w postaci braku jednego znaku, które sprawiały, że cały licznik nie działał. Dzięki
przekierowaniu na streamchange.pl z popularnego poradnika, nowa strona była odwiedzana już od pierwszego
dnia jej istnienia, a po miesiącu, dzienna liczba odczytań licznika wynosiła średnio sześćset tysięcy.
Fussbot kończy działalność
Ilustracja 5. Wygląd programu Fussbot
W 2018 roku, sporą popularnością i uznaniem wśród streamerów, cieszył się Fussbot. Był to darmowy
program do zainstalowania na komputerze, który posiadał wiele ciekawych funkcji wzbogacających streamy.
Był zdecydowanie prostszy w obsłudze niż StreamChange. Fussbot był najbardziej znany z systemu zbierania
punktów lojalnościowych dla widzów, często zwanych monetami, za oglądanie streamów i wysyłanie wiadomości
na czacie. Wprowadzenie takiej funkcji na swój stream, zdecydowanie zwiększało aktywność na czacie.
Widzowie często wysyłali komendy do sprawdzenia ilości zebranych monet, czasu spędzonego na streamie
oraz rankingu widzów. Za zebranie określonej ilości punktów/monet, streamerzy przyznawali różne nagrody,
najczęściej paysafecard za 20 złotych oraz wykonane przez siebie grafiki.
Fussbot został uśmiercony przez Google w styczniu 2019 roku, w ten sam sposób co liczniki
akshatmittal.com i livecounts.net. Nowy limit na korzystanie z API był zbyt mały, by Fussbot mógł
czytać wiadomości na streamach i naliczać widzom punkty za ich pisanie. Przydatny projekt non-profit,
jakim był Fussbot, nie wytrzymał starcia z wielką korporacją. Wątpliwe, czy likwidacja Fussbota
przyniosła jakąkolwiek korzyść Google. Wynikała raczej z tego, że ludzie tworzący politykę dostępu
do API, nie mieli żadnego pojęcia, co dzieje się w świecie streamingu i nie wiedzieli,
jak ich decyzje oddziałują na rzeczywistość. Blokując popularne aplikacje wzbogacające streamy, menadżerowie
Google nieświadomie prowadzili do przenoszenia się streamerów z Youtube na Twitcha.
Płatna wersja StreamChange
Gdy wszystkie funkcje licznika na stronie streamchange.pl zostały już w pełni wykonane, a liczba
użytkowników zatrzymała się na stałym poziomie (nasycenie rynku), nadszedł czas na rozbudowę strony
o kolejną funkcjonalność. W pierwszej kolejności było to przepisanie kolejki widzów na streamie,
używanej na potrzeby oceniania kanałów. Taka aplikacja była znacznie bardziej skomplikowana niż licznik
subskrypcji. Ponieważ jedną z funkcji kolejki było wysyłanie wiadomości na czacie, konieczne było
zabezpieczenie dostępu do aplikacji poprzez logowanie przy użyciu konta Google. Podczas, gdy prosty
licznik sprawnie działał napisany w czystym PHP, to do implementacji kolejki, trzeba już było wybrać
framework Symfony (też język PHP). Kolejka miała mieć identyczną funkcjonalność, jak ta napisana w VB.NET.
Implementacja polegała tylko na przepisaniu desktopowego programu na aplikację internetową i zajęła
znacznie mniej czasu, niż napisanie takiej aplikacji od początku.
Upadek Fussbota nie sprawił, że nagle nikt już nie chciał mieć na swoim streamie systemu zbierania punktów.
On nie upadł przez brak klientów, tylko przez restrykcyjną politykę Google. Stąd dalszym kierunkiem rozwoju
StreamChange było dodanie funkcji zbierania monet i zapisywania logów czatu. Funkcje były dostępne w kolejnych
zakładkach dodanych do aplikacji z kolejką.
Gdy StreamChange składający się z kolejki, logu czatu i zbierania monet, w miarę sprawnie
działał, po raz drugi podjęto próbę dystrybucji programu wśród streamerów. Dystrybucja aplikacji internetowej
okazała się nieporównywalnie prostsza niż programu na Windowsa. Nowa aplikacja od początku była
pisana tak, by jej interfejs był zrozumiały. Nie trzeba było też tworzyć instalatora ani pisać
instrukcji. Aplikacje internetowe nie są podatne na piractwo, co też sporo upraszcza.
Internetowy StreamChange nie mógł być sprzedawany za jednorazową opłatą na początek. Do jego
działania trzeba utrzymywać serwer, który generuje koszty co miesiąc. Obsługa użytkownika, który będzie
korzystał z programu przez miesiąc, będzie tańsza niż kogoś, kto będzie intensywnie korzystał z niego
przez rok. Niesprawiedliwe byłoby, żeby obaj płacili tyle samo. Program na komputery, raz sprzedany,
nie generuje już kosztów dla jego twórcy, innych niż praca przy jego aktualizacjach. Po drugie, nie
wiadomo było, jak długo taka aplikacja będzie działać. Program na komputery może działać tak długo, dopóki
ktoś trzyma go na swoim komputerze. Aplikacja internetowa działa do czasu zdjęcia jej z serwera. Gdyby
ktoś zapłacił jednorazową opłatę za korzystanie z aplikacji, a miesiąc później aplikacja została
zlikwidowana, trzeba byłoby zwracać pieniądze. Widząc, jak Google wcześniej doprowadził do upadku podobne
aplikacje dla streamerów, należało założyć, że przetrwanie aplikacji będzie obarczone wysokim ryzykiem.
Ostatecznie ustalono opłatę za korzystanie ze StreamChange w wysokości 10zł za miesiąc. Na tak
wycenioną aplikację, przez cały okres jej istnienia, zdecydowało się zaledwie dwoje streamerów – BefeQ
i Rypix.
W nadziei, że kolejni streamerzy dołączą do użytkowników aplikacji, zostały dodane dodatkowe moduły –
system transakcji i nagrody za monety zebrane na streamach. Streamerzy mogli po zalogowaniu tworzyć
swoją listę nagród za monety, definiując ich nazwy, opisy oraz ceny. Możliwość logowania została udostępniona
publicznie dla widzów streamerów, którzy posiadali płatną aplikację. Widzowie mogli po zalogowaniu
przeglądać, ile posiadają punktów u poszczególnych streamerów oraz zamawiać od nich nagrody. Nikt
jednak z tego nie skorzystał, była to praca na darmo.
Google wprowadza nowe zasady
Polityka dostępu do API, która uśmierciła liczniki subskrypcji, nie pozostała na długo. Kilka miesięcy później, Google jeszcze bardziej zaostrzył zasady dostępu do danych statystycznych z Youtube. Publiczne dane o statystykach kanału zostały uznane przez Google jako dane wrażliwe, co w konsekwencji doprowadziło do odebrania aplikacji StreamChange możliwości logowania przy użyciu konta Google. Jednocześnie kolejne zmniejszenie dziennego limitu zapytań, jakie można przesłać do Youtube, spowodowało upadek licznika łapek pod streamem sygnowanego marką Zairoxa. Licznik Zairox łączył się z Youtube, korzystając z kluczy API pochodzących z licznika subskrypcji livecounts.net. Stąd, jak można się spodziewać, oba liczniki przestały działać tego samego dnia.
Powstaje StreamChange Giveaway
Ilustracja 6. Filmik Nightbot Exposed
Gdy inne aplikacje upadały, Nightbot miał co najwyżej kilkudniowe przerwy w działaniu. Sekretem jego
sukcesu mogło być to, że należał do firmy z San Francisco, zlokalizowanej w miarę blisko siedziby
Google.
Pewnego razu podczas niedzielnej mszy w kościele, Baf wpadł na pomysł przeprowadzenia odwrotnej inżynierii
Nightbota oraz nagrania filmiku pokazującego, jak działa ta aplikacja. Nie chodziło
tu o włamywanie się do aplikacji, tylko o ustalenie jej wewnętrznej struktury poprzez wnikliwą
obserwację, jak działa na zewnątrz, co okazało się dość proste. Filmik Nightbot exposed, nagrany
w języku angielskim, nie zdobył dużej popularności. Mimo to, jego przygotowanie było wielkim sukcesem,
ponieważ dostarczyło cennej wiedzy o cechach Nightbota, które przeszkadzają jego użytkownikom. Filmik został
opublikowany w czerwcu 2019, a już w kolejnym miesiącu rozpoczęło się programowanie aplikacji
StreamChange Giveaway. Założenia były takie, że Giveaway będzie lepszą alternatywą dla Nightbota,
bez wszystkich wad, które posiada Nightbot.
Programowanie Giveaway było pracą dorywczą w weekendy, którą trzeba było pogodzić z trudnymi studiami
dziennymi, dlatego tworzenie pierwszej działającej wersji sporo się przeciągnęło. Kolejka oceniania kanałów
była bardzo potrzebna samemu jej twórcy. Z Giveaway było przeciwnie – był on niepotrzebny
dla twórcy i miał służyć jedynie innym streamerom. To też spowalniało wydanie pierwszej wersji.
Na jesień 2019, Baf przeczytał dwie książki o marketingu sieciowym – Biznes XXI wieku Roberta Kiyosaki
i Bądź Pro Erica Worre.
StreamChange Giveaway miał swoją premierę na streamie urodzinowym Flerka, 22 grudnia 2019. Flerek losował
w nim nagrody rzeczowe dla widzów z czatu. Jak można było się spodziewać, program, który jest
pierwszy raz używany w realnych warunkach, będzie miał błędy, które trudno było wykryć w testach
syntetycznych. Napotkane błędy były poprawiane w kolejnych dniach.
Flerek był jedynym człowiekiem, który dostał link do nowej aplikacji oraz został przekonany do jej
używania. Było to dokładnie zaplanowane działanie. Dystrybucja StreamChange Giveaway miała być eksperymentem
sprawdzającym działanie marketingu sieciowego na Youtube. Po jego premierze u Flerka, była prowadzona
obserwacja, z jaką szybkością program zdobywa nowych klientów i do jakich zasięgów będzie w stanie dojść
bez jakiejkolwiek kampanii reklamowej.
Już na początku stycznia 2020, a więc po dwóch tygodniach od premiery, z aplikacji zaczął
korzystać Vaster oraz bezinteresownie ją reklamował. Jego widownia składała się głównie
z początkujących Youtuberów, w tym streamerów, dzięki czemu reklama trafiała do idealnej grupy.
Strona streamchange.pl była dotychczas na serwerze złożonym ze starych, niepotrzebnych części
do komputera. W lutym, gdy Giveaway miał już spore grono stałych użytkowników, trzeba było zapewnić
aplikacji większą stabilność działania. Serwis został wtedy przeniesiony na AWS. Aby ograniczyć koszty
utrzymania serwisu, na AWS zostały umieszczone tylko licznik subskrypcji i giveaway. Płatna wersja
StreamChange została ostatecznie zamknięta.
Problemy z Youtube API
W kwietniu 2020, Google ostatecznie uniemożliwił korzystanie z Youtube Data API. Od tego czasu, zostały tylko trzy projekty, które posiadają do niego niemal nielimitowany dostęp. Są to StreamElements, StreamLabs i Nightbot. Wszystkie są prowadzone przez firmy z Doliny Krzemowej. W tym czasie ze streamów Bafa, na zawsze musiała zniknąć wirtualna moderatorka Generalna. StreamChange Giveaway miał wtedy kilkudniową przerwę w działaniu, po której udało się wznowić działanie aplikacji. Youtube Data API nie było niezbędne do jego działania.
Szybki rozwój aplikacji
Lockdown w 2020 znacznie przyspieszył rozwój StreamChange Giveaway. Dzienna liczba streamów na Youtube
znacznie wtedy wzrosła, a jednocześnie nastała moda na losowanie przeróżnych nagród dla widzów.
Streamerzy losowali wszystko, od wirtualnych sukienek w grze MovieStarPlanet, do całych komputerów
gamingowych. Lockdown zapewnił też więcej czasu twórcy aplikacji na jej rozwój, poprawianie błędów i wsparcie
użytkowników. W połowie 2020 roku, już prawie żaden Youtuber z Polski nie używał Nightbota
do losowania. StreamChange używali nawet najpopularniejsi Youtuberzy. Marka SteelSeries promowała wprowadzenie
nowych peryferiów gamingowych, losując kilka sztuk w aplikacji StreamChange.
Na koniec 2020, StreamChange Giveaway został poszerzony o wersję z kolejką. Interfejs obu wersji był
bardzo podobny, różniły się tylko lewą kolumną. Kolejka została stworzona głównie na streamy z oceniania
kanałów i nie zdobyła nawet procenta popularności wersji z losowaniem.
Oprócz setek godzin przeznaczonych na programowanie, StreamChange Giveaway powodował też koszty pieniężne
dla jego twórcy – trzeba było opłacać domenę i hosting. Aby pokryć opłaty za utrzymanie aplikacji,
w styczniu 2021 zostało dodane pole na reklamę. Znalazło się ono w środkowej kolumnie aplikacji
Giveaway. W pierwsze dni było mnóstwo chętnych na reklamę, lecz z czasem ich liczba malała.
W kwietniu 2021, z inicjatywy Nejta i Kqmixo, powstał serwer Discord dla społeczności użytkowników
StreamChange. Służy on przede wszystkim do zgłaszania błędów w działaniu aplikacji oraz proponowania
nowych funkcji. Jak się później okazało, nawet stali użytkownicy aplikacji, nie byli zainteresowani
prowadzeniem dyskusji na Discordzie. Utworzenie serwera Discord pokryło się w czasie z naprawieniem
wszystkich zauważalnych błędów w aplikacji i dodaniem wszelkich funkcji, jakie mogą być komukolwiek
potrzebne w aplikacji do losowania. Od tego czasu wszelkie zmiany w aplikacji polegały głównie
na optymalizacji kodu i aktualizacji bibliotek. W październiku spora część kodu została przepisana
z Javascript na Typescript, co nie było odczuwalne dla użytkowników.
Do grudnia 2021, po wejściu na streamchange.pl, ukazywał się kreator licznika subskrypcji. Służył
on jako strona główna, choć był zdecydowanie mniej popularny niż aplikacja Giveaway. W grudniu została
stworzona nowa strona główna, z której można dowiedzieć się, że StreamChange to nie tylko licznik, lecz
pakiet aplikacji dla Youtuberów, w skład którego wchodzą także Giveaway i kolejka.
W styczniu 2022 powstała dokumentacja StreamChange. Jest to ta część serwisu, w której właśnie czytasz
tę historię. W dokumentacji jako pierwsze pojawiły się instrukcje do płatnych funkcji aplikacji
Giveaway. Dokumentacja ma służyć jako ogólna baza wiedzy dla streamerów, dlatego obecnie znajdziemy
w niej wiele artykułów w ogóle nie związanych z aplikacjami StreamChange, lecz wyjaśniających
na przykład teoretyczne zagadnienia potrzebne streamerom.