
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
@dinuda/transcript-tracer
Advanced tools
a tool that synchronizes text transcripts with corresponding audio segments using WebVTT (VTT) files
Transcript Tracer is a tool that synchronizes text transcripts with audio or video content using WebVTT (VTT) files. By linking the transcript to specific timestamps, it allows users to follow along with the media playback and highlights the corresponding transcript text. This tool is designed to enhance accessibility and user engagement.
https://github.com/user-attachments/assets/803117de-025f-468f-a1a1-243939618188

You can install Transcript Tracer using npm:
npm install transcript-tracer
Here’s a simple example to get you started:
Include an audio or video element with a WebVTT file:
<audio
src="https://raw.githubusercontent.com/Dinuda/transcript-tracer/master/src/assets/test.wav"
controls
>
<track
kind="metadata"
src="https://raw.githubusercontent.com/Dinuda/transcript-tracer/master/src/assets/test.vtt"
/>
</audio>
<div
class="tt-transcript"
data-tt-media-urls="https://raw.githubusercontent.com/Dinuda/transcript-tracer/master/src/assets/test.wav"
>
Welcome to the transcript tracer test. In this demo, we will synchronize the
transcript with the audio. You can generate wav or mp3 files and VTT captions
using the Azure Speech Service. Let's get started.
</div>
import { loadTranscriptTracer } from "transcript-tracer";
// Fetch the transcript and initialize
fetch(
"https://raw.githubusercontent.com/Dinuda/transcript-tracer/master/src/assets/test.vtt"
)
.then(
(response) => response.text() // Get the transcript as text
)
.then((transcript) => {
// Once the transcript is fetched, initialize the TranscriptTracer
TranscriptTracer.loadTranscriptTracer({}, transcript);
})
.catch((error) => console.error("Error loading the transcript:", error));
You can also use cleanupTranscriptTracer() to reset the state when needed.
Transcript Tracer provides several configuration options for customization:
| Option | Type | Description |
|---|---|---|
blockSelector | string | CSS selector for block elements within the transcript. |
phraseSelector | string | CSS selector for phrase elements within the transcript. |
alignmentFuzziness | number | Amount of fuzziness allowed when aligning words with timings (default: 0). |
timeOffset | number | Time offset to adjust the current time of the media player (default: 0). |
autoScroll | string | Determines the scroll behavior: 'block', 'phrase', or 'word' (default: null). |
clickable | boolean | Whether words should be clickable to jump to their start time (default: false). |
loadTranscriptTracer(
{
ttClickable: true,
ttAutoScroll: "word", // Auto-scroll by 'block', 'phrase', or 'word'
ttTimeOffset: 0.5, // Adjust timing offset in seconds
},
transcript
);
You can customize the look and feel of the transcript using CSS. Here’s an example of some basic styles:
.tt-transcript {
font-family: Arial, sans-serif;
font-size: 16px;
line-height: 1.5;
}
.tt-word {
cursor: pointer;
background-color: transparent;
transition: background-color 0.3s ease;
}
.tt-word:hover {
background-color: #f0f0f0;
}
.tt-current-word {
background-color: #ffeb3b;
}
.tt-previous-word {
color: gray;
}
.tt-current-block-container,
.tt-current-phrase-container {
background-color: rgba(255, 235, 59, 0.3);
}
Feel free to modify the styles to fit your project’s design.
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
a tool that synchronizes text transcripts with corresponding audio segments using WebVTT (VTT) files
We found that @dinuda/transcript-tracer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.