Фон
Если вы не жили под камнем последние 5 лет, вы наверняка слышали о небольшом шоу под названием «Черное зеркало». На всякий случай, если вы не знаете, о чем идет речь, вот краткий обзор шоу. «Черное зеркало» - это серия антологий по научной фантастике, в которой основной идеал серии - отразить множество ужасающих способов, с помощью которых технологии могут выявить худшее в человечестве.
28 декабря 2018 года Black Mirror выпустили свой первый интерактивный фильм Bandersnatch на Netflix, в котором пользователь будет вынужден принимать экранное решение, которое будет определять события, свидетелями которых они являются на экране. В зависимости от сделанного вами выбора и количества концовок, которые вы хотите увидеть, продолжительность фильма может составлять от 1,5 до 5,5 часов. Моей первой мыслью было «Ничего себе, целых 5 часов оригинального черного зеркала. Я собираюсь потратить на это весь свой перерыв ». Перенесемся вперед, и через 3 часа я сижу за компьютером, измученный необходимостью умирать и переделывать выбор. Именно в этот момент я решил, что должен быть лучший способ найти все концовки. И есть !!!
«Взлом Bandersnatch»
Итак, после интенсивного поиска в Google я обнаружил, что для взлома вариантов Bandersnatch вам нужно открыть консоль разработчика и получить доступ к Netflix Player API во время просмотра Bandersnatch.
Вот так:
Код, который вы видите выше, представляет собой код Javascript, который подключает вас к видео API Netflix, находит ваш пользовательский сеанс и получает все интерактивные моменты в игре.
Подключается к Netflix API
const api = netflix.appContext.state.playerApp.getAPI ()
G задает идентификатор этого сеанса видео.
const playerSessionId = api.videoPlayer.getAllPlayerSessionIds () [0]
Получает хэш всех интерактивных моментов в игре
const ivm = api.branching.getInteractiveVideoMoments (playerSessionId)
Теперь предположим, что вы хотели увидеть массив доступных вариантов выбора, который существует в ivm.
Введите ivm.momentsBySegment в вашу консоль
он должен отображать такой хеш:
Обратите внимание на маленькое число в скобках перед каждой точкой выбора. Это позволит вам узнать, является ли точка выбора тупиком или у нее есть несколько решений.
Теперь вы можете получить информацию по любому пункту выбора. Как вы можете видеть, я щелкнул раскрывающийся список «1H:», затем «1:», затем раскрывающийся список «choices:». Это говорит вам о том, что если бы вы сыграли в момент выпадения 1H, вам пришлось бы выбирать между «ПРИНЯТЬ» или «ОТКАЗАТЬ» и предложить. Теперь, когда у вас есть эта информация, играть в точку выбора, которую вы хотите найти, стало легко.
Предоставляет вам доступ к самому видеопроигрывателю
const player = api.videoPlayer.getVideoPlayerBySessionId (playerSessionId)
Эта строка сообщает проигрывателю Netflix, какой сегмент выбора следует пропустить
player.playSegment («3L»)
Вышеупомянутая строка также могла быть «player.playSegment (« 7A »)» или любым player.playSegment («any_choicepoint»), который существовал, когда мы запускали ivm.momentsBySegments.
И как видите, в Netflix игрок сразу переходит к тому месту на видео, где делается выбор.