diff --git a/README.md b/README.md index 8bd0dc7..b0baf8d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Transcripto +# TranscripTonic Simple Google Meet transcripts. Private and open source. ![marquee-large](/assets/marquee-large.png) @@ -20,21 +20,21 @@ View video on [YouTube](https://www.youtube.com/watch?v=MRmZLO-f8Sg) # Installation - +

-# How to use Transcripto +# How to use TranscripTonic ![screenshot-2](/assets/screenshot-2.png) -Transcripto has two modes of operation. +TranscripTonic has two modes of operation. **In both modes, transcript will be automatically downloaded as a text file at the end of each meeting.** - **Auto mode:** Automatically records transcripts for all meetings -- **Manual mode:** Switch on Transcripto by clicking on captions icon in Google Meet (CC icon) +- **Manual mode:** Switch on TranscripTonic by clicking on captions icon in Google Meet (CC icon) > **Avoid closing the meeting tab to end the call.** If you do it by mistake, you can still download the last meeting transcript by opening the extension. This will be overwritten when a new meeting starts. @@ -48,12 +48,12 @@ Transcripto has two modes of operation. **Can I change the language of the transcript?** -Yes. Transcripto picks up the output of Google Meet captions. Google Meet captions supports variety of languages that you can choose from. Click the settings icon when captions start showing and change the language. +Yes. TranscripTonic picks up the output of Google Meet captions. Google Meet captions supports variety of languages that you can choose from. Click the settings icon when captions start showing and change the language.

# Privacy policy -Transcripto Chrome extension does not collect any information from users in any manner. All processing/transcript storage happens within the user's Chrome browser and does not leave the device. +TranscripTonic Chrome extension does not collect any information from users in any manner. All processing/transcript storage happens within the user's Chrome browser and does not leave the device. diff --git a/assets/demo.gif b/assets/demo.gif index 7fea2c1..0e34563 100644 Binary files a/assets/demo.gif and b/assets/demo.gif differ diff --git a/assets/marquee-large.png b/assets/marquee-large.png index f8d9121..4ed9bad 100644 Binary files a/assets/marquee-large.png and b/assets/marquee-large.png differ diff --git a/assets/marquee-small.png b/assets/marquee-small.png index df34524..11c19cd 100644 Binary files a/assets/marquee-small.png and b/assets/marquee-small.png differ diff --git a/assets/screenshot-1.png b/assets/screenshot-1.png index c5f282d..a09f382 100644 Binary files a/assets/screenshot-1.png and b/assets/screenshot-1.png differ diff --git a/assets/screenshot-2.png b/assets/screenshot-2.png index ac933d5..0c106b0 100644 Binary files a/assets/screenshot-2.png and b/assets/screenshot-2.png differ diff --git a/assets/youtube-thumbnail.png b/assets/youtube-thumbnail.png index abf7320..9bb78ff 100644 Binary files a/assets/youtube-thumbnail.png and b/assets/youtube-thumbnail.png differ diff --git a/extension/background.js b/extension/background.js index 8769d5d..67b886e 100644 --- a/extension/background.js +++ b/extension/background.js @@ -22,7 +22,7 @@ chrome.runtime.onMessage.addListener(function (message, sender, sendResponse) { function downloadTranscript() { chrome.storage.local.get(["transcript", "meetingTitle", "meetingStartTimeStamp"], function (result) { if (result.transcript) { - const fileName = result.meetingTitle && result.meetingStartTimeStamp ? `Transcripto/Transcript-${result.meetingTitle} at ${result.meetingStartTimeStamp}.txt` : `Transcripto/Transcript.txt` + const fileName = result.meetingTitle && result.meetingStartTimeStamp ? `TranscripTonic/Transcript-${result.meetingTitle} at ${result.meetingStartTimeStamp}.txt` : `TranscripTonic/Transcript.txt` // Create an array to store lines of the text file const lines = []; @@ -35,7 +35,8 @@ function downloadTranscript() { }); lines.push("---") - lines.push("Transcript saved using Transcripto Chrome extension") + lines.push("Transcript saved using TranscripTonic Chrome extension (https://chromewebstore.google.com/detail/ciepnfnceimjehngolkijpnbappkkiag)") + // Join the lines into a single string const textContent = lines.join('\n'); @@ -50,15 +51,15 @@ function downloadTranscript() { filename: fileName, conflictAction: 'uniquify' // Automatically rename the file if it already exists }).then(() => { - console.log("Transcript downloaded to Transcripto directory") + console.log("Transcript downloaded to TranscripTonic directory") }).catch((error) => { console.log(error) chrome.downloads.download({ url: 'data:text/plain;base64,' + btoa(textContent), - filename: "Transcripto/Transcript.txt", + filename: "TranscripTonic/Transcript.txt", conflictAction: 'uniquify' // Automatically rename the file if it already exists }) - console.log("Invalid file name. Transcript downloaded to Transcripto directory with simple file name.") + console.log("Invalid file name. Transcript downloaded to TranscripTonic directory with simple file name.") }) } else diff --git a/extension/content.js b/extension/content.js index 9d61472..57bc473 100644 --- a/extension/content.js +++ b/extension/content.js @@ -13,7 +13,7 @@ let meetingStartTimeStamp = new Date().toLocaleString("default", options).replac let meetingTitle = document.title const extensionStatusJSON_bug = { "status": 400, - "message": "Transcripto seems to have an error
Please report it here." + "message": "TranscripTonic seems to have an error
Please report it here." } checkExtensionStatus().then(() => { @@ -50,7 +50,7 @@ checkExtensionStatus().then(() => { observer.observe(targetNode, config) chrome.storage.sync.get(["operationMode"], function (result) { if (result.operationMode == "manual") - showNotification({ status: 400, message: "Transcripto is not running
Turn on captions using the CC icon, if needed" }) + showNotification({ status: 400, message: "TranscripTonic is not running
Turn on captions using the CC icon, if needed" }) else showNotification(extensionStatusJSON) }) @@ -196,8 +196,13 @@ function transcriber(mutationsList, observer) { const people = document.querySelector('.a4cQT').firstChild.firstChild.childNodes const person = people[people.length - 1] - const currentPersonName = person.childNodes[1] ? person.childNodes[1].textContent : "" - const currentTranscriptText = person.childNodes[2].lastChild ? person.childNodes[2].lastChild.textContent : "" + if ((!person.childNodes[0]) || (!person.childNodes[1]?.lastChild)) { + console.log("There is a bug in TranscripTonic. Please report it at https://github.com/vivek-nexus/transcriptonic/issues") + showNotification(extensionStatusJSON_bug) + return + } + const currentPersonName = person.childNodes[0] ? person.childNodes[0].textContent : "" + const currentTranscriptText = person.childNodes[1].lastChild ? person.childNodes[1].lastChild.textContent : "" if (beforeTranscriptText == "") { personNameBuffer = currentPersonName @@ -263,7 +268,7 @@ function updateMeetingTitle() { async function checkExtensionStatus() { // Set default value as 200 chrome.storage.local.set({ - extensionStatusJSON: { status: 200, message: "Transcripto is running
Do not turn off captions" }, + extensionStatusJSON: { status: 200, message: "TranscripTonic is running
Do not turn off captions" }, }); // https://stackoverflow.com/a/42518434 diff --git a/extension/manifest.json b/extension/manifest.json index 267c4ab..ef0369c 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,6 +1,6 @@ { - "name": "Transcripto", - "version": "1.1.0", + "name": "TranscripTonic", + "version": "2.0.0", "manifest_version": 3, "description": "Simple Google Meet transcripts. Private and open source.", "action": { diff --git a/extension/popup.html b/extension/popup.html index 0b2e320..4a97880 100644 --- a/extension/popup.html +++ b/extension/popup.html @@ -3,7 +3,7 @@ - Transcripto + TranscripTonic