roamjs / otter Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
<%OTTER%>
From Artur Piszek on Slack
Hey, this repo is cool and I'd like to use it to eventually connect to Roam.
However, I'd like to simply grab the conversations directly from my machine to extract the text. Is there some way you could direct me on how to do this? I tried the otter.ai-api repo (omerdn1/otter.ai-api#22), but it isn't working and I fear it is because the website was updated so the code broke.
Your code is way more up-to-date so perhaps you've found a way around this? Honestly, this is my first day using javascript (I typically use Python) so it's hard for me to understand the codebase. Any ideas on what I can use to simply grab the conversations from otter? Thanks! :)
I believe the offending code is here:
if (user.rawToken !== authToken || email !== authEmail) return undefined;
If I enter the email that is tied to my Roam Account in the Otter Roam Depot settings The email tied to your Otter account
, then I had no problem importing.
I am receiving a "Failed to fetch" error when attempting to my account in the Otter Roam Depot interface.
I have tried from my desktop Mac (with latest OS updates) & iOS using two different Roam Research accounts.
(As this is my first ever reporting of an "issue" anywhere on GitHub, I hope I am doing it correctly)
Speaker names are redundabt if theres only one
I think it'd be great if you could configure plugin to automatically pull-in any new transcripts available in Otter (phonetoroam style)
"auto-import doesn't seem to work - I don't see any errors, it just doesn't seem to run" - Vlad from Discord
May want to look into stability solutions for SmartBlocks, then abstract framework into roamjs-components for reuse here
When I try to use the extension - I get a loading indication for a bit and then it stops doing anything
When I look in the browser console I see the following errors from it:
Access to XMLHttpRequest at 'https://lambda.roamjs.com/otter' from origin 'https://roamresearch.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Btw, I'm curious - why does this extension need a backend vs doing a direct query to otter?
One of the things that my Otter WF does is to resolve the audio URL that you can embed directly. So an example entry would look like:
Another test of the outer input
- Recorded at::12/27/2021, 11:29:43 PM
- https://otter.ai/u/HlAqvZnJTCG-44uCBJOb9I_Odbo
- {{audio: https://speech-prod.s3.us-west-2.amazonaws.com/u1368930/22OWHLGB7D7GP437.mp3?response-content-disposition=attachment%3B%20filename%3D%22Note.mp3%22&AWSAccessKeyId=AKIAIJIXVALPR766FCHA&Expires=1640874334&Signature=X5UuKPaLVvC70igiF5qLRwpPYXw%3D }}
Which allows you to listen to the audio directly inside Roam.
It's provided in API return as audio_url
https://github.com/Stvad/alfred-otter/blob/master/otter.ts#L33
What I want to achieve is being able to embed otter ui for the speech directly into Roam (arguably a better version of #6). If I just use the speech url now - it won't load, but if I enable sharing for the speech I get the result like:
So the proposal here is to allow people to opt-in to automatically enable sharing for ingested speeches, to make the iframe thing work.
example api request:
await fetch("https://otter.ai/forward/api/v1/share_speech?otid={otid}&userid={userid}", {
"credentials": "include",
"headers": {
"Accept": "application/json, text/plain, */*",
"Accept-Language": "en-US,en;q=0.5",
"X-CLIENT-VERSION": "Otter v2.3.114",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin"
},
"method": "GET",
"mode": "cors"
});
I find it useful to tag things that need my attention with a certain date, so I can ensure that I processed the note properly. It'd be great if you could do that as one of the template substitutions.
One way to do it would be to use chrono-node
to resolve natural dates (as roam-toolkit and phonetoroam do).
But I think also just having a few basic things like {today}
, {tomorrow}
can be a simple 80/20 solution
This causes issues when ~10+ speeches are imported.
Relevant issue: samepage-network/otter-samepage#4
It seems right now when multiple speeches are retreated - they are written to Roam in no particular order (or maybe kind of in chrono order but not consistently?).
For taking notes the order is actually important though, so it'd be nice to do it consistently!
It's problematic =\
I understand why it happens rn, but it's still a problem:
Given how otter api is, I'm not sure if there is a great solution here, but one approach that I think makes things a bit better is to store the password in browser local storage.
It allows you to avoid the backup issue and arguably protects from casual browsing by humans a bit (or accidental sharing when you share a DB)
It has UX implications ofc of having to ask for password on each device/browser person uses, but it's arguably worth it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.