~/social/bluesky-scraper

Bluesky Scraper — Posts, profils, feeds et interactions

Extrayez posts, profils, abonnés, feeds et threads Bluesky, plus les comptes ayant liké ou reposté, via l’AT Protocol — avec recherche authentifiée et résultats de hashtags par mot de passe d’application. JSON propre et normalisé.

réseaux sociaux TypeScriptAT Protocol Mondial
proooxy/bluesky-scraper — specs
catégoriesocial / réseaux sociaux
langageTypeScript
stackTypeScript, AT Protocol
marchésMondial
sortieJSON propre, prêt pour le RAG

fonctionnalités clés

Onze modes — search, profile, posts, followers, following, feed, thread, likers, reposters, actorLikes et hashtag

API publique sans identifiants pour les profils, posts, abonnés, abonnements, feeds, threads, likers et reposters

Modes authentifiés par mot de passe d’application — search, hashtag, et les likes de votre propre compte

Export de l’engagement par post — listes complètes des likers et reposters pour chaque post

Aplatissement des threads — parcourt un arbre de réponses jusqu’à une profondeur configurable

Pagination par curseur automatique sur chaque endpoint de liste, jusqu’à votre plafond d’éléments

Structure JSON normalisée pour les posts et profils, quel que soit le mode

HTTP résilient — limitation du débit de requêtes, backoff exponentiel, et nouvelle tentative sur 429/5xx

cas d’usage

  • Surveillance de marque et de mots-clés via la recherche authentifiée
  • Suivi des hashtags et des tendances sur l’ensemble du réseau
  • Export d’audience — les listes d’abonnés et d’abonnements d’un créateur ou d’une marque
  • Analyse de l’engagement — savoir précisément qui a liké ou reposté un post donné
  • Construction de datasets pour la BI, l’analytics ou des pipelines RAG à partir de JSON propre et normalisé
  • Archivage des conversations et des threads sous un post

paramètres d’entrée

ParamètreTypeRequisDescription
modestringoptionnelCe qu’il faut scraper : posts, profile, followers, following, feed, thread, likers, reposters, actorLikes, search, ou hashtag (par défaut : posts).
handlesarrayoptionnelHandles Bluesky pour les modes profile/posts/followers/following/actorLikes, ex. bsky.app.
querystringoptionnelTexte de recherche (mode search) ou hashtag (mode hashtag — préfixé automatiquement par #).
postUristringoptionnelURI AT d’un post — utilisé par les modes thread, likers et reposters.
feedUristringoptionnelURI AT d’un feed personnalisé — utilisé par le mode feed.
identifierstringoptionnelHandle ou email de connexion Bluesky pour les modes authentifiés (search, hashtag, actorLikes).
appPasswordstringoptionnelMot de passe d’application Bluesky (pas le mot de passe principal de votre compte) pour les modes authentifiés.
maxItemsnumberoptionnelNombre maximal de posts/profils sauvegardés ; chacun correspond à un événement facturé (par défaut : 100).

Exemple de sortie

 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}

Tarification

Facturation à l’événement : $0.001 par élément (post ou profil) sauvegardé. Un export de 1 000 éléments coûte environ $1.00, et maxItems plafonne à la fois le volume et le coût.

Astuces

  • Commencez par les modes publics. Profils, posts, abonnés, et engagement (likers/reposters) ne nécessitent aucune connexion — réservez l’authentification par mot de passe d’application aux runs search et hashtag.
  • Exportez l’engagement, pas seulement les posts. Les modes likers et reposters révèlent précisément qui a amplifié un post — un signal que la plupart des scrapers Bluesky ignorent.
  • Plafonnez maxItems sur les extractions de followers/following pour les gros comptes, afin de garder des runs rapides et des coûts prévisibles.

faq

Ai-je besoin d’identifiants Bluesky ?
Seulement pour les modes search, hashtag et actorLikes — générez un mot de passe d’application dans les paramètres Bluesky et passez-le comme appPassword. Les modes profile, posts, followers, following, feed, thread, likers et reposters fonctionnent tous sans identifiants via l’API publique de l’AT Protocol.
Puis-je exporter les likes de n’importe quel compte ?
Non. L’API de Bluesky n’expose actorLikes que pour le compte authentifié lui-même : le handle et l’identifiant de connexion doivent donc référencer le même compte.
Comment trouver l’URI d’un post ou d’un feed ?
Les URI AT ressemblent à at://did:plc:.../app.bsky.feed.post/... — copiez-les depuis la sortie de l’API Bluesky ou des outils développeur. Les URI de feed utilisent la collection app.bsky.feed.generator.
Est-il sûr d’utiliser mon mot de passe d’application ?
Oui — utilisez un mot de passe d’application Bluesky (créé dans Settings → App Passwords), jamais votre mot de passe principal. Il est à portée limitée, révocable, et transmis comme un input secret.

similaires dans ~/social

Exécutez Bluesky Scraper — Posts, profils, feeds et interactions, ou obtenez un projet sur mesure

Commencez à extraire sur Apify en quelques minutes, ou engagez-moi pour construire un scraper sur mesure et un pipeline RAG adaptés exactement à votre source et à votre schéma.

exécuter sur Apify obtenir des données sur mesure