Skip to content
Skip to main content

Transcript

The Transcript component displays the text transcript of a meeting that was recorded using Notetaker. It automatically formats speaker labels and transcribed text in a clear, readable way.

You can use the Transcript component to present a diarized transcript on a meeting summary page. It accepts transcript data as an array of segments, each with a speaker name and text, or as plain text.

import { Transcript } from "@nylas/react";
// import '@nylas/react/style.css' // to style the component
const transcriptData = [
{
start: 1000,
end: 2000,
speaker: "Alice",
text: "Hello world!",
},
{
start: 5000,
end: 6000,
speaker: "Bob",
text: "How are you?",
},
];
function App() {
return (
<Transcript
transcript={transcriptData}
autoscroll={false}
toolbar={true}
emptyState={<div>No transcript available.</div>}
showSpeaker={true}
showTimestamps={true}
resumeAutoscrollLabel="Scroll to active"
onTimestampClick={(timestamp) =>
console.log("Timestamp clicked!", timestamp)
}
/>
);
}
export default App;

When you use the Transcript and VideoPlayer components on the same page, they automatically synchronize. This means…

  • Clicking on a timestamp in the transcript will seek the video recording to that position.
  • The transcript will automatically scroll to and highlight the current segment as the recording plays.
DescriptionAutomatically scroll to the active item as the recording plays.
Typeboolean
Defaulttrue
DescriptionA custom ReactNode to display when there are no transcripts.
TypeReactNode
DescriptionCallback function invoked when a user clicks a timestamp (play button). Receives the timestamp in seconds.
Type(timestamp: number) => void
DescriptionA custom label for the Resume Autoscroll button.
Typestring
Default"Resume Autoscroll"
DescriptionShow the speaker name for each transcript item.
Typeboolean
Defaulttrue
DescriptionShow the timestamp for each transcript item.
Typeboolean
Defaulttrue
DescriptionDisplay the toolbar at the top of the component.
Typeboolean
Defaulttrue

Toolbar enabled (toolbar={true}):

import { Transcript } from "@nylas/react";
// import '@nylas/react/style.css' // to style the component
const transcriptData = [
{
start: 1000,
end: 2000,
speaker: "Alice",
text: "Hello world!",
},
{
start: 5000,
end: 6000,
speaker: "Bob",
text: "How are you?",
},
];
function App() {
return (
<Transcript
transcript={transcriptData}
autoscroll={false}
toolbar={true}
emptyState={<div>No transcript available.</div>}
showSpeaker={true}
showTimestamps={true}
resumeAutoscrollLabel="Scroll to active"
onTimestampClick={(timestamp) =>
console.log("Timestamp clicked!", timestamp)
}
/>
);
}
export default App;

Toolbar disabled (toolbar={false}):

import { Transcript } from "@nylas/react";
// import '@nylas/react/style.css' // to style the component
const transcriptData = [
{
start: 1000,
end: 2000,
speaker: "Alice",
text: "Hello world!",
},
{
start: 5000,
end: 6000,
speaker: "Bob",
text: "How are you?",
},
];
function App() {
return (
<Transcript
transcript={transcriptData}
autoscroll={false}
toolbar={false}
emptyState={<div>No transcript available.</div>}
showSpeaker={true}
showTimestamps={true}
resumeAutoscrollLabel="Scroll to active"
onTimestampClick={(timestamp) =>
console.log("Timestamp clicked!", timestamp)
}
/>
);
}
export default App;
DescriptionAn array of transcript items to display.
TypeTranscriptData[]
DescriptionA custom component that renders the transcript text. If not provided, uses the default Text component.
TypeComponentType<{ highlight: ...; text: ...; }>
PropertyTypeDescription
speakerstringThe speaker label.
startnumberA timestamp indicating when the transcript item begins in the recording.
endnumberA timestamp indicating when the transcript item ends in the recording.
textstringThe content of the transcript item.