Прошлая неделя оказалась весьма плачевной для пользователей соцсети с красным пришельцем на логотипе. Протесты касательно введения новых расценок на использование API в Reddit не привели к ожидаемым результатам и почти все популярные клиенты (Sync, Infinity, Apollo, RiF, Boost и прочие) прекратили свою работу 1 июля 2023 года. Как быть, если хочется продолжать пользоваться реддитом, но официальный клиент не устраивает? Отказываться от использования Reddit совсем я не собирался, потому что использую не только для развлечений, но и для работы (например, список "часовых бомб" от Microsoft или мониторинг 0-day уязвимостей на том же r/sysadmin), поэтому попробовал воспользоваться официальным приложением. Что бросилось в глаза после пары лет опыта с Boost: Общая скорость работы. Субъективно, лента и посты в Boost открывались значительно быстрее Видеоплеер в официальном приложении стабильно работает чуть чаще, чем никогда Рекомендованные посты могут попадаться чуть ли не каждые два-три поста (в Boost я использовал платную версию без рекламы в принципе) Меньше способов сортировки (например, в Boost есть сортировка "Controversial", позволяющая вывести посты/комментарии с большим количеством как апвоутов, так и даунвоутов) Общий внешний вид (который в Boost настраивается в отличии от официального приложения) Начал думать, что можно сделать в такой ситуации. Оказалось, Reddit сохранил Free tier для API с адекватными лимитами (до 100 запросов в минуту), чего более чем достаточно для собственного использования. Задался вопросом, а не пришла ли кому-то идея пересобрать приложение с собственным API ключом? И, к счастью, я оказался не первым человеком, которому пришла в голову эта идея. Разработчики ReVanced сделали патчи для популярных клиентов! Переходим на страницу управления API-ключами на Reddit. Создаём новое приложение кнопкой "Создать приложение" В качестве названия приложения можно указать всё, что угодно, но лучше не использовать названия заблокированных приложений. Я, например, сделал Fuckspez for Reddit. (u/spez это CEO Reddit, предположительно ответственный за изменения в API) В качестве типа приложения нужно выбрать "Устанавливаемое приложение" Для URI приложения нужно выставить значение в зависимости от того приложения, которое собираемся патчить. (В таблице ниже список значений для популярных клиентов, но вполне возможно что есть патчи и для других клиентов) Приложение URI Boost http://rubenmayayo.com   Sync http://redditsync/auth RiF redditisfun://auth   Relay   dbrady://relay   BaconReader http://baconreader.com/auth   Infinity infinity://localhost  Тыкаем "создать приложение" и получаем собственный ключ. Имея ключ на руках понадобится Revanced Manager и APK-файл того приложения, которое собираемся патчить. Я использовал apps.evozi.com Берем любимый проводник на Android (мне нравится FX File Explorer), открываем корень хранилища (Main Storage, /sdcard/ или что-то еще в зависимости от используемого устройства) и создаём там файл reddit_client_id_revanced.txt с содержимым в виде вашего API-ключа. Если всё сделано правильно, то файл будет весить ровно 22 байта. Открываем Revanced Manager, вкладку Patcher, тыкаем Select an application и жмем в левом нижнем углу кнопку "Storage". Оттуда выбираем APK нашего приложения (в моем случае com.rubenmayayo.reddit_149.apk), убеждаемся в том, что ReVanced правильно определил ваше приложение и в списке патчей выбираем Change Oauth Client Id (можно что-то ещё по вкусу). Тыкаем Patch, ждем окончания патчинга и надписи "Finished", тыкаем на кебаб-меню (три точки в правом верхнем углу), экспортируем .apk в удобное для себя место. Можно удалять существующее приложение (если установлено) и устанавливать APK с патчем. ??? Вы великолепны!  После этих нехитрых действий вы снова сможете пользоваться альтернативными клиентами, но уже с собственным API ключом. Вряд ли они уже когда-то будут обновляться, но это все еще лучший вариант, нежели официальный клиент. Замена API ключа всё еще не позволит вам просматривать NSFW-сабреддиты, и вас будет встречать вот такое сообщение (скрин не мой) Однако, и для этой проблемы есть решение!Чтобы Reddit начал отдавать NSFW-контент через API, нужно объяснить сайту, что мы имеем на это моральное право. Кому может легально понадобиться просматривать NSFW? Модераторам.Создаём свой собственный сабреддит, становимся его модератором и ваш пропатченный клиент снова начнет открывать NSFW сабреддиты. А с учетом того, что многие сабреддиты в качестве продолжения протеста отмечают свои сообщества как неприемлемые (что также делает невозможным размещение рекламы в сабреддите), совет будет особенно актуален для клиента с патчем.  Разраб-любитель, несостоявшийся киберспорстмен