~/social/bluesky-scraper

Bluesky Scraper — посты, профили, ленты и взаимодействия

Извлекайте посты, профили, подписчиков, ленты, треды, лайкнувших и репостнувших пользователей Bluesky через AT Protocol — плюс авторизованный поиск и результаты по хэштегам с app-паролем. Чистый нормализованный JSON.

социальные сети TypeScriptAT Protocol Глобально
proooxy/bluesky-scraper — характеристики
категорияsocial / социальные сети
языкTypeScript
стекTypeScript, AT Protocol
рынкиГлобально
выводчистый JSON, готовый к RAG

ключевые возможности

Одиннадцать режимов — search, profile, posts, followers, following, feed, thread, likers, reposters, actorLikes и hashtag

Публичный API без учетных данных для profiles, posts, followers, following, feeds, threads, likers и reposters

Режимы с авторизацией по app-паролю — search, hashtag и лайки собственного аккаунта (actorLikes)

Экспорт вовлеченности поста — полные списки лайкнувших (likers) и сделавших репост (reposters) для каждого поста

Разворачивание треда — обходит дерево ответов на настраиваемую глубину

Автоматическая курсорная пагинация на каждом списочном эндпоинте до достижения лимита элементов

Единая нормализованная структура JSON для постов и профилей во всех режимах

Отказоустойчивый HTTP — троттлинг запросов, экспоненциальная задержка и повтор при 429/5xx

сценарии использования

  • Мониторинг бренда и ключевых слов через авторизованный поиск
  • Отслеживание хэштегов и трендов по всей сети
  • Экспорт аудитории — списки подписчиков и подписок автора или бренда
  • Анализ вовлеченности — кто именно лайкнул или сделал репост конкретного поста
  • Построение датасетов для BI, аналитики или RAG-конвейеров на основе чистого нормализованного JSON
  • Архивирование обсуждений и тредов под постом

входные параметры

ПараметрТипОбязательныйОписание
modestringопциональноЧто парсить: posts, profile, followers, following, feed, thread, likers, reposters, actorLikes, search или hashtag (по умолчанию: posts).
handlesarrayопциональноХэндлы Bluesky для режимов profile/posts/followers/following/actorLikes, например bsky.app.
querystringопциональноТекст поиска (режим search) или хэштег (режим hashtag — автоматически добавляется префикс #).
postUristringопциональноAT URI поста — используется режимами thread, likers и reposters.
feedUristringопциональноAT URI пользовательской ленты — используется режимом feed.
identifierstringопциональноЛогин-хэндл или email Bluesky для авторизованных режимов (search, hashtag, actorLikes).
appPasswordstringопциональноApp-пароль Bluesky (не основной пароль аккаунта) для авторизованных режимов.
maxItemsnumberопциональноМаксимум сохраняемых постов/профилей; каждый — одно тарифицируемое событие (по умолчанию: 100).

Пример вывода

 1{
 2  "itemType": "post",
 3  "mode": "posts",
 4  "uri": "at://did:plc:.../app.bsky.feed.post/...",
 5  "author": {
 6    "did": "did:plc:...",
 7    "handle": "bsky.app",
 8    "displayName": "Bluesky",
 9    "followersCount": 1234567
10  },
11  "text": "Example post text",
12  "createdAt": "2026-06-11T00:00:00Z",
13  "replyCount": 10,
14  "repostCount": 20,
15  "likeCount": 100,
16  "langs": ["en"],
17  "url": "https://bsky.app/profile/bsky.app/post/..."
18}

Цена

Оплата за событие: $0.001 за элемент (пост или профиль) сохраненных данных. Экспорт 1000 элементов — это ~$1.00, а maxItems ограничивает и объем, и стоимость.

Советы

  • Начните с публичных режимов. Profiles, posts, followers и вовлеченность (likers/reposters) не требуют входа — авторизацию по app-паролю оставьте для запусков search и hashtag.
  • Экспортируйте не только посты, но и вовлеченность. Режимы likers и reposters показывают, кто именно усилил охват поста, — сигнал, который пропускает большинство парсеров Bluesky.
  • Ограничивайте maxItems при выгрузке follower/following для крупных аккаунтов, чтобы запуски оставались быстрыми, а расходы — предсказуемыми.

частые вопросы

Нужны ли мне учетные данные Bluesky?
Только для режимов search, hashtag и actorLikes — создайте app-пароль в настройках Bluesky и передайте его в appPassword. Режимы profile, posts, followers, following, feed, thread, likers и reposters работают без учетных данных через публичный API AT Protocol.
Можно ли экспортировать лайки любого аккаунта?
Нет. API Bluesky раскрывает actorLikes только для самого авторизованного аккаунта, поэтому хэндл и логин-идентификатор должны относиться к одному и тому же аккаунту.
Как найти URI поста или ленты?
AT URI выглядит так: at://did:plc:.../app.bsky.feed.post/... — скопируйте его из вывода API Bluesky или инструментов для разработчиков. URI лент используют коллекцию app.bsky.feed.generator.
Безопасно ли использовать app-пароль?
Да — используйте app-пароль Bluesky (создается в Settings → App Passwords), никогда не основной пароль. Он ограничен по правам, отзываем и передается как секретный параметр.

похожие в ~/social

Запустите Bluesky Scraper — посты, профили, ленты и взаимодействия или закажите разработку под задачу

Начните извлекать данные на Apify за считаные минуты или закажите у меня разработку парсера на заказ и RAG-конвейера под ваш источник и схему.

запустить на Apify заказать данные