101 <meta charset="UTF-8" />
102 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
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"
1#### SHOTCLIP
2
3Demo of embedding images with [substrate](https://www.substrate.run/), and querying them for semantic relevance.
4
5Use the query parameter `prompt` to control the search.
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"/>
3View and interact with your Val Town SQLite data. It's based off Steve's excellent [SQLite Admin](https://www.val.town/v/stevekrouse/sqlite_admin?v=46) val, adding the ability to run SQLite queries directly in the interface. This new version has a revised UI and that's heavily inspired by [LibSQL Studio](https://github.com/invisal/libsql-studio) by [invisal](https://github.com/invisal). This is now more an SPA, with tables, queries and results showing up on the same page.
4
5
6
7## Install
29 title: text("title"),
30 url: text("url"),
31 image_url: text("image_url"),
32 thumbnail_url: text("thumbnail_url"),
33 icon_url: text("icon_url"),
125 >
126 </script>
127 <link rel="icon" href="/favicon.ico" type="image/x-icon" />
128 <title>Play me a song in Spotify</title>
129 </head>
20 title: text("title"),
21 url: text("url"),
22 image_url: text("image_url"),
23 thumbnail_url: text("thumbnail_url"),
24 icon_url: text("icon_url"),
36 title text,
37 url text,
38 image_url text,
39 thumbnail_url text,
40 icon_url text,
63 title,
64 url: external_urls.spotify,
65 image_url: album.images[0].url,
66 thumbnail_url: album.images[1].url,
67 icon_url: album.images[2].url,
68 duration_ms,
69 duration: duration_ms / 1_000.0,
13 title: text("title"),
14 url: text("url"),
15 image_url: text("image_url"),
16 thumbnail_url: text("thumbnail_url"),
17 icon_url: text("icon_url"),
28 title: String!
29 url: String!
30 image_url: String
31 thumbnail_url: String
32 icon_url: String
68 title
69 url
70 image_url
71 }
72}
18 title
19 url
20 image_url
21 }
22}
20 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0",
21 "Accept":
22 "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8",
23 "Accept-Language": "en-US,en;q=0.5",
24 "Content-Type": "application/x-www-form-urlencoded",
327 ---
328
329 Val Town comes with blob storage built-in. It allows for storing any data: text, JSON, images. You can access it via [\`std/blob\`](https://www.val.town/v/std/blob).
330
331 Blob storage is scoped globally to your account. If you set a blob in one val, you can retrieve it by the same key in another val. It's backed by Cloudflare R2.