3Speech-to-text and chapter summaries powered by [Substrate](https://substrate.run)
4
5🪩 To fork, [sign up for Substrate](https://substrate.run/signin) to get your own API key and $50 free credits
23
24async function processAudio(audio_uri) {
25 const substrate = new Substrate({ apiKey: Deno.env.get("SUBSTRATE_API_KEY") });
26 const opts = { cache_age: 60 * 60 * 24 * 7 };
27
103 <link rel="icon" href="https://www.substrate.run/favicon.ico" type="image/x-icon">
104 <link
105 href="https://fonts.googleapis.com/css2?family=Roboto:wght@700&display=swap"
106 rel="stylesheet"
107 />
6* Fork this val to your own profile.
7* Make a folder for the temporary vals that get generated, take the ID from the URL, and put it in `tempValsParentFolderId`.
8* If you want to use OpenAI models you need to set the `OPENAI_API_KEY` [env var](https://www.val.town/settings/environment-variables).
9* If you want to use Anthropic models you need to set the `ANTHROPIC_API_KEY` [env var](https://www.val.town/settings/environment-variables).
10* Create a [Val Town API token](https://www.val.town/settings/api), open the browser preview of this val, and use the API token as the password to log in.
11
12<img width=500 src="https://imagedelivery.net/iHX6Ovru0O7AjmyT5yZRoA/7077d1b5-1fa7-4a9b-4b93-f8d01d3e4f00/public"/>
1const TELEGRAM_CHAT_ID = Deno.env.get("TELEGRAM_CHAT_ID");
2const TELEGRAM_TOKEN = Deno.env.get("TELEGRAM_TOKEN");
3const COINGECKO_API_KEY = Deno.env.get("COINGECKO_API_KEY");
4
5const getCryptoPrices = async () => {
6 const response = await fetch(
7 "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=bitcoin,ethereum,dogecoin,solana,binancecoin,ripple,pepe",
8 {
9 headers: {
10 "accept": "application/json",
11 "x-cg-demo-api-key": COINGECKO_API_KEY,
12 },
13 },
51const sendTextWithTelegram = async (text) => {
52 const telegramSendUrl =
53 `https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage?chat_id=${TELEGRAM_CHAT_ID}&parse_mode=HTML&disable_notification=true&text=${text}`;
54 await fetch(telegramSendUrl);
55};
13## Authentication
14
15Login to your SQLite Explorer with [password authentication](https://www.val.town/v/pomdtr/password_auth) with your [Val Town API Token](https://www.val.town/settings/api) as the password.
16
17## Todos / Plans
27 <head>
28 <title>SQLite Explorer</title>
29 <link rel="preconnect" href="https://fonts.googleapis.com" />
30
31 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
32 <link
33 href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@300..700&family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap"
34 rel="stylesheet"
35 />
1# Glide API 2.0: Bulk Import
2
3You can fork this Val to implement your own bulk import to Glide.
4
5Glide's high-performance bulk import API can load millions of rows
6into Big Tables. It's designed for importing your business data
7into Glide on a regular schedule (e.g. nightly).
8
9We designed this API for customers who regularly import tens of
10thousands of rows or more to Glide using tools like Make. Our goal
11was to make this process more efficient and less expensive.
12
13Note: This API is currently free to use. Future usage will cost
14approximately 1 update per 10k rows.
15
69
70 // Search for the track
71 const response = await fetch(`https://api.spotify.com/v1/search?q=${query}&type=track`, {
72 headers: {
73 "Authorization": `Bearer ${accessToken.access_token}`,
1# Tracks GraphQL API
2
3Query some Spotify tracks I probably listened to via GraphQL.
26
27
28Migrated from folder: GraphQL/tracksAPI
37
38## How it works
39The sketch function returns an http handler that sets up a basic page with p5.js added. It then imports your module from the browser and wires up all the exports so p5.js can see them. All the code in your val will run in the browser (except for the default `sketch` export) so you can't call any Deno functions, environment variables, or other server side apis.
40
41