Threads-net: как разработчики пытались обуздать новую соцсеть Meta

12 Oct, 2023

Репозиторий давно не обновлялся

Последнее обновление было 2 года назад.

423
🔱 61
👥 10

Помните лето 2023 года, когда весь интернет обсуждал запуск Threads — нового текстового сервиса от Meta? Пока обычные пользователи спорили о том, станет ли он «убийцей Twitter», разработчики уже изучали его API. Один из таких исследовательских проектов — threads-net от Dmytro Striletskyi — сегодня предлагает нам уникальный взгляд изнутри.

Почему этот проект особенный

Threads-net представлял собой неофициальную Python-библиотеку для работы с Threads API. Примечательно, что:

  • Это был один из первых reverse-engineered клиентов для новой платформы
  • Проект собрал 423 звезды на GitHub всего за несколько месяцев
  • Библиотека позволяла делать то, что официальное API пока не поддерживало

Интересно, что сам автор позиционировал проект исключительно как учебный, но сообщество быстро нашло ему практическое применение.

Что умела библиотека

Хотя проект больше не поддерживается, его код остаётся интересным примером reverse engineering. Вот что он позволял делать:

  1. Получение данных пользователя

    Реклама
    from threads import Threads
    threads = Threads()
    user = threads.get_user_by_username('zuck')
    print(user)
    
  2. Чтение публикаций (тредов) с пагинацией

  3. Поиск по хештегам — функция, которую многие ждали от официального клиента

  4. Анализ статистики публикаций

Весь функционал был реализован через анализ сетевых запросов мобильного приложения Threads — классический пример reverse engineering.

Почему проект закрыли

19 сентября 2023 года Meta официально потребовала прекратить разработку. В README появилось предупреждение:

Warning
Development discontinued due to communication from Meta Platforms, Inc.

Это стандартная практика для неофициальных API — вспомните историю с Instagram API. Тем не менее, код остаётся доступным в архиве и представляет интерес для:

  • Исследователей API социальных сетей
  • Разработчиков, изучающих методы reverse engineering
  • Специалистов по компьютерной безопасности

Технические детали

Проект написан на Python 3 и использует:

  • requests для HTTP-запросов
  • Подпись запросов через параметр fb_api_req_friendly_name
  • Эмуляцию мобильного клиента через специальные заголовки

Вот как выглядел типичный запрос к API:

headers = {
    'User-Agent': 'Barcelona 289.0.0.77.109 Android',
    'Sec-Fetch-Site': 'same-origin',
    'Content-Type': 'application/x-www-form-urlencoded'
}

Уроки для разработчиков

Хотя threads-net больше не работает, проект оставил несколько важных уроков:

  1. Reverse engineering остаётся мощным инструментом исследования
  2. Неофициальные API всегда находятся в серой зоне
  3. Образовательные проекты могут быть полезнее коммерческих

Для тех, кто хочет изучить тему глубже, автор сохранил документацию в PRESERVED.md.

Стоит ли смотреть этот проект

Если вы:

  • Интересуетесь reverse engineering социальных сетей
  • Хотите понять, как анализировать недокументированные API
  • Ищете примеры работы с современными веб-сервисами

— тогда этот архивный проект определённо заслуживает внимания. Только помните о юридических ограничениях: Meta явно дала понять, что не приветствует такие инициативы.

А вы сталкивались с подобными неофициальными API? Делитесь опытом в комментариях!

Scraping diagram

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.