@birdie-so/snippet
v1.1.5
Published
Helper for integrating the Birdie screen recording snippet into modern JavaScript apps. Requires a Birdie account.
Downloads
69,408
Maintainers
Readme
@birdie-so/snippet
Easily integrate the Birdie screen recording snippet into your application using modern frameworks like React, Vue, Angular, or plain JavaScript — with full control over initialization, metadata, and event hooks.
⚡ This package is a helper utility for integrating Birdie.
You must have a Birdie account and a validclientIdto use this package.
It does not work on its own — visit https://app.birdie.so to get started.
⚡ The core logic is still loaded from our CDN. This package is just a light wrapper for easier integration and customization.
🚀 Installation
npm install @birdie-so/snippet
# or
yarn add @birdie-so/snippet✨ Quick Start
React / Vue / Angular / JS
import { initBirdie } from "@birdie-so/snippet";
initBirdie({
clientId: "YOUR_CLIENT_ID", // required
// Optional metadata available to recordings
metadata: {
user: {
id: "123",
email: "[email protected]",
},
},
// Optional setting to remove response bodies when collecting logs
settings: {
privacy: {
mask_response_body: true
}
},
// Optional hook once Birdie is ready
onReady(birdie) {
// you can register for the following events
birdie.on("recorderOpen", (data) => {
console.log("Recorder tab is opened", data);
});
birdie.on("start", (data) => {
console.log("Recording started", data);
birdie.metadata = { dynamicKey: "value" };
});
birdie.on("pause", (data) => {
console.log("Recording paused", data);
});
birdie.on("resume", (data) => {
console.log("Recording resumed", data);
});
birdie.on("stop", (data) => {
console.log("Recording stopped", data);
});
birdie.on("restart", (data) => {
console.log("Recording restarted", data);
});
birdie.on("captureStarted", (data) => {
console.log("Capturing logs started", data);
});
birdie.on("captureStopped", (data) => {
console.log("Capturing logs stopped", data);
});
birdie.on("recordingSent", (data) => {
// data.link contains the link to the video
console.log("A new recording has been sent", data);
});
birdie.on("recorderClose", (data) => {
console.log("Recorder tab was closed", data);
});
birdie.on("error", (error) => {
console.log("Something went wrong", error);
});
}
});🧠 How It Works
This package:
- Injects the Birdie CDN snippet dynamically using your
clientId. - Sets global
window.birdieSettingsbefore loading. - Registers event callbacks once the Birdie SDK is ready (
window.birdieis available).
Your original snippet like this:
<script>
window.birdieSettings = {
/* ... */
};
</script>
<script src="https://app.birdie.so/widget/embed/YOUR_CLIENT_ID"></script>Is now handled via code with initBirdie().
🧩 Advanced
Get Birdie instance later
import { getBirdieInstance } from "@birdie-so/snippet";
getBirdieInstance((birdie) => {
birdie.on("start", () => {
console.log("Recording started!");
});
});Or synchronously:
const birdie = getBirdieInstance();
if (birdie) {
birdie.metadata = { key: "value" };
}📘 Docs
For full documentation and integration examples, visit our docs page
🛠 Support
Need help? Reach out to us at [email protected]
📄 License
MIT
