Meetrix Transcriber: Developer Guide

Meetrix Transcriber: Developer Guide

Welcome to the Meetrix Transcriber! Meetrix Transcriber is a powerful video transcription software available on AWS Marketplace, designed to effortlessly and accurately convert your audio and video content into written text.

Video
Blog
Meetrix’s Amazon Transcriber: The Ultimate Guide to Enhanced Transcription Services
Dive into a comprehensive guide on Meetrix’s Amazon Transcriber, integrated with AWS. Discover its unparalleled advantages, applications across industries, and tips for maximizing efficiency. Transform your business with state-of-the-art transcription!

Setup Guide

Follow this guide to set up Meetrix transcriber from AWS Marketplace.

1. Subscribe to Meetrix transcriber

  1. Visit the Meetrix transcriber product page on AWS Marketplace.
  2. Click the "Continue to Subscribe" button and review the terms of use.
  3. Click "Accept Terms" to subscribe to Meetrix transcriber.

2. Launch Meetrix transcriber

  1. After subscribing, click "Continue to Configuration" on the AWS Marketplace page.
  2. Click "Continue to Launch" and review the launch details.

3. Click on the “cloudformation-template” link under “Deployment template”, which will redirect you to the “Quick Create Stack”.

4. Provide necessary parameters including DeploymentName, KeyName, PythonServicesInstanceType, SSHLocation and then click “Create stack”.

It will take about 10 minutes for creating the stack.

5. After the stack creation is complete, navigate to the “Outputs” tab, and click on the 'HttpApiUrl' link. This will take you to the Transcriber dashboard.

Transcriber dashboard

3. Transcribe a video

  1. Click “Transcribe a new video“.
  2. Enter the required details and provide the video url.

Please ensure that you provide a bucket name that exists within the current region you are in.

(To find the list of S3 buckets in a particular AWS region using the AWS Console, navigate to the S3 service, select the desired region from the region selector in the top-right corner, and you will see the list of S3 buckets specific to that region in the S3 dashboard).

  1. Click “Add”.
  2. In a few minutes refresh the page and the transcription will be completed.

You can download the transcription file in JSON format upon completion of the transcription job. Additionally, the transcription file will be automatically uploaded to an S3 bucket for your convenience.

API Documentation

Getting Started

Prerequisites

Before using Meetrix Transcriber, make sure you have the following prerequisites in place:

  1. An AWS account with access to AWS Marketplace.
  2. Node.js installed on your local machine. You can download it from nodejs.org.

Installation

To use Stable Diffusion in your Node.js project, follow these steps:

Install Stable Diffusion from AWS Marketplace:

  • Log in to your AWS account.
  • Navigate to Meetrix Transcriber AWS Marketplace.
  • Follow the Setup Guide to subscribe.
  • Obtain the 'HttpApiUrl' link.

Install the AWS SDK:

  • aws-sdk is used to interact with AWS Transcribe programmatically. To install it, you can use npm:

npm install aws-sdk

1. Create a Transcription Job

Below is a code snippet that demonstrates how to create a transcription job. You have to define the following parameters,

region

  • Specify your desired region.
  • e.g. "us-east-1"

endPoint

  • Enter the endpoint url ( HttpApiUrl you obtained earlier).
  • e.g. "https://jkdnbj2z17.execute-api.us-west-2.amazonaws.com/transcription".

transcriptionJobName

  • e.g. "TranscriptionJob1".

languageCode

  • e.g. for English, the language code used is "en".

mediaFormat

  • Specify the format of the video you intend to transcribe.
  • Should be “mp4” or “webm”.

mediaFileUri

  • Provide the URL of the video that you would like to transcribe.

outputBucketName

  • Specify the name of your Amazon S3 bucket where you want the transcribed file(.json) to be stored.

create.js

import { StartTranscriptionJobCommand } from "@aws-sdk/client-transcribe";
import { TranscribeClient } from "@aws-sdk/client-transcribe";

// Define the parameters
const region = "us-east-1";

const endPoint = "https://jkdnbj2z17.execute-api.us-west-2.amazonaws.com/transcription";

const transcriptionJobName = "TestJob2";
const languageCode = "en";
const mediaFormat = "webm";
const mediaFileUri = "https://s3.us-west-2.amazonaws.com/dev.store.screenapp.io/vid/60081ca49e4bb900110abd73/89b09c12-6539-4828-8d41-e493f62caa30.webm?AWSAccessKeyId=AKIAYN4VDY3GKRDG5VY7&Expires=1695668525&Signature=oCQTZSFNEIPrBKDiMTGRkuqyjAw%3D&response-content-disposition=attachment%3B%20filename%3D%22file.webm%22%3B%20filename%2A%3D%20UTF-8%27%27Recording_1684726689229.webm%3B";
const outputBucketName = "awsbuckettest93";

// Create an Amazon Transcribe service client object.
const transcribeClient = new TranscribeClient({
  endpoint: endPoint,
  region: region,
});

// Set the parameters
export const params = {
  TranscriptionJobName: transcriptionJobName,
  LanguageCode: languageCode,
  MediaFormat: mediaFormat,
  Media: {
    MediaFileUri: mediaFileUri,
  },
  OutputBucketName: outputBucketName,
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new StartTranscriptionJobCommand(params)
    );
    console.log("Success - put", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
    console.log({err}.$response);
  }
};
run();

Run the file, if the transcription job is successfully initiated, the following response will be printed in the console:

Success - put {
  '$metadata': {
    httpStatusCode: 200,
    requestId: undefined,
    extendedRequestId: undefined,
    cfId: undefined,
    attempts: 1,
    totalRetryDelay: 0
  },
  TranscriptionJob: {
    CreationTime: 2023-09-19T10:30:22.593Z,
    LanguageCode: 'en',
    Media: {
      MediaFileUri: 'https://s3.us-west-2.amazonaws.com/dev.store.screenapp.io/vid/60081ca49e4bb900110abd73/89b09c12-6539-4828-8d41-e493f62caa30.webm?AWSAccessKeyId=AKIAYN4VDY3GKRDG5VY7&Expires=1695668525&Signature=oCQTZSFNEIPrBKDiMTGRkuqyjAw%3D&response-content-disposition=attachment%3B%20filename%3D%22file.webm%22%3B%20filename%2A%3D%20UTF-8%27%27Recording_1684726689229.webm%3B'
    },
    MediaFormat: 'webm',
    StartTime: 2023-09-19T10:30:22.593Z,
    TranscriptionJobName: 'TestJob2',
    TranscriptionJobStatus: 'IN_PROGRESS'
  }
}

2. List Transcription Jobs

The List.js script shows how to list transcription jobs, providing visibility into the status and progress of your jobs. Monitoring and managing transcription jobs is crucial for real-time applications and maintaining data accuracy.

You have to define the following parameters,

region

  • Specify your desired region.
  • e.g. "us-east-1"

endPoint

  • Enter the endpoint url.
  • e.g. "https://jkdnbj2z17.execute-api.us-west-2.amazonaws.com/transcription".

jobNameContains

  • Not required.
  • This parameter allows you to filter the results and retrieve only those transcription jobs whose names contain the specified string.

list.js

// Import the required AWS SDK clients and commands for Node.js
import { ListTranscriptionJobsCommand } from "@aws-sdk/client-transcribe";
import { TranscribeClient } from "@aws-sdk/client-transcribe";

// Define the parameters
const region = "us-east-1";
const endPoint = "https://jkdnbj2z17.execute-api.us-west-2.amazonaws.com/transcription";
const jobNameContains = "";

// Create an Amazon Transcribe service client object.
const transcribeClient = new TranscribeClient({
    endpoint: endPoint,
  region: region,
});

// Set the parameters
export const params = {
   JobNameContains: jobNameContains,
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new ListTranscriptionJobsCommand(params)
    );
    console.log("Success", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();

In the response, you can observe the transcription jobs that you initiated, accompanied by comprehensive details including their status, language code, start time, completion time, and output location type.

Success {
  '$metadata': {
    httpStatusCode: 200,
    requestId: undefined,
    extendedRequestId: undefined,
    cfId: undefined,
    attempts: 1,
    totalRetryDelay: 0
  },
  TranscriptionJobSummaries: [
    {
      CompletionTime: 2023-09-19T10:32:58.559Z,
      CreationTime: 2023-09-19T10:30:22.593Z,
      LanguageCode: 'en',
      OutputLocationType: 'CUSTOMER_BUCKET',
      StartTime: 2023-09-19T10:30:22.593Z,
      TranscriptionJobName: 'TestJob2',
      TranscriptionJobStatus: 'COMPLETED'
    },
    {
      CompletionTime: 2023-09-19T10:07:37.845Z,
      CreationTime: 2023-09-19T09:49:36.621Z,
      LanguageCode: 'en',
      OutputLocationType: 'CUSTOMER_BUCKET',
      StartTime: 2023-09-19T09:49:36.621Z,
      TranscriptionJobName: 'TestJob1',
      TranscriptionJobStatus: 'COMPLETED'
    },
  ]
}

3. Deleting Transcription Jobs

You can delete jobs that are no longer needed to free up resources and maintain a tidy environment. The provided delete.js script demonstrates how to delete a Transcribe job programmatically.

You have to define the following parameters,

region

  • Specify your desired region.
  • e.g. "us-east-1"

endPoint

  • Enter the endpoint url.
  • e.g. "https://jkdnbj2z17.execute-api.us-west-2.amazonaws.com/transcription".

transcriptionJobName

  • Required.
  • Enter the job name you wish to delete.

delete.js

// Import the required AWS SDK clients and commands for Node.js
import { DeleteTranscriptionJobCommand } from "@aws-sdk/client-transcribe";
import { TranscribeClient } from "@aws-sdk/client-transcribe";

// Define the parameters
const region = "us-east-1";
const endPoint = "https://jkdnbj2z17.execute-api.us-west-2.amazonaws.com/transcription";
const transcriptionJobName = "TestJob1";

// Create an Amazon Transcribe service client object.
const transcribeClient = new TranscribeClient({
    endpoint: endPoint,
    region: region,
});

// Set the parameters
export const params = {
  TranscriptionJobName: transcriptionJobName,
};

export const run = async () => {
  try {
    const data = await transcribeClient.send(
      new DeleteTranscriptionJobCommand(params)
    );
    console.log("Success - deleted");
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
Discover Seamless Meetings with >>>
Meetrix