Get Started

Bluesky Live Feed

A live firehose feed of posts sourced directly from Bluesky's official stream.

The Bluesky Live Feed component allows you to find for posts using the Bluesky's official stream.

The complete Bluesky documentation about their endpoints can be found in their site here.

New to Datastreamer? Start here.

👍

Unify Schema

This data source already use Unify Schema.

How To Use?

The component can be added in the Dynamic Pipelines as an Ingress Component.

Search Query

Filters

Filter NameDescription
LuceneCreate your Lucene query to filter for posts

The Lucene Query is supported for this component in the Lucene field. Here are some of the basics queries that you can try:

Keywords:

commit.record.text:"cat"

Boolean operator:

commit.record.text:"cat" AND commit.record.text:"lol"

Wildcard:

commit.record.text:"ca*"

Examples

Search for posts

Search posts with the text 'cat'.

Additional Details

Relevant Fields

Fields of interestDescription
didPersistent, long-term identifiers for every account.
commit.cidContent Identifier.
commit.record.textThe core text body content.
commit.record.createdAtDate when content was published.
commit.record.langsArray of languages provided by the user.
commit.record.embed.imagesImages included in the post.

Document Example

{
        "did": "did:plc:ybux27rtlxargbcezubtlkzl",
        "time": "2024-12-12T16:35:26.615Z",
        "kind": "commit",
        "commit": {
          "rev": "3ld4pamry2k2e",
          "operation": "create",
          "collection": "app.bsky.feed.post",
          "rkey": "3ld4pam47mk22",
          "record": {
            "text": "The Ringer NBA Rankings:

#1 Nikola Jokic - Denver Nuggets

\"The unquestioned best player in the world, armed with an unstoppable combination of size, skill, and IQ.\"

#2 Luka
#3 Giannis
#4 Tatum
#5 SGA

nbarankings.theringer.com",
            "$type": "app.bsky.feed.post",
            "embed": {
              "$type": "app.bsky.embed.images",
              "images": [
                {
                  "alt": "",
                  "image": {
                    "ref": "bafkreicdadsx4jtulwxax6fbroqf3uafmb55nsoxejmxwm4w73onuqslxm",
                    "size": 65570,
                    "$type": "blob",
                    "mimeType": "image/jpeg"
                  },
                  "aspectRatio": {
                    "width": 253,
                    "height": 300
                  }
                }
              ]
            },
            "langs": [
              "en"
            ],
            "facets": [
              {
                "index": {
                  "byteEnd": 229,
                  "byteStart": 204
                },
                "features": [
                  {
                    "uri": "https://nbarankings.theringer.com/",
                    "$type": "app.bsky.richtext.facet#link"
                  }
                ]
              }
            ],
            "createdAt": "2024-12-12T16:35:25.33Z"
          },
          "cid": "bafyreibipgwtcaf2ezyjggjrab6ofcbq63ujdqfcj2wx7owzapbx72d3zu"
        }
      }

Building an image URL

It's possible to download an image by stitching a few fields together, following this structure:

https://cdn.bsky.app/img/feed_fullsize/plain/{did}/{image_ref}@{image_type}
VariableDescription
{did}Replace with did.
{image_ref}Image identifier found on commit.record.embed.images[].image.ref.
{image_type}Image extension based on commit.record.embed.images[].image.mimeType, so image/jpeg becomes jpeg.

Using the example document above and following this template, the resulting image URL will be:

https://cdn.bsky.app/img/feed_fullsize/plain/did:plc:ybux27rtlxargbcezubtlkzl/bafkreicdadsx4jtulwxax6fbroqf3uafmb55nsoxejmxwm4w73onuqslxm@jpeg