ladies and gents, it's Friday once again. if you work remote, and don't go to school, you don't relate
😭3
so, i saw this post earlier, and thought of building a cool bot. what if you can create Spotify playlists right from telegram. you can forward songs to it and it will add the songs to the configured Spotify playlist. you can also add the bot as an admin in channels and playlist will be created automatically. well, ended up building SpotGram 🫶 . i have currently implemented the following features:
- song identification from audio files and Spotify search
- add songs to playlist right from telegram
- create and manage multiple Spotify playlists
- SQLite database with automatic migrations
currently it uses Spotify OAuth and it downloads audio files and extracts metadata. then uses the Spotify Web API to search for tracks and manage playlists. and stores user tokens and song history in SQLite. if it becomes any useful, i'll deploy it. main feats once it becomes stable:
- automatic channel monitoring: new songs and existing ones will be automatically added to your active playlist
- robust batch processing: it can handle a bunch of audio files gracefully
- advanced song identification, shazam integration, analytics and stuff
#MyProjects
- song identification from audio files and Spotify search
- add songs to playlist right from telegram
- create and manage multiple Spotify playlists
- SQLite database with automatic migrations
currently it uses Spotify OAuth and it downloads audio files and extracts metadata. then uses the Spotify Web API to search for tracks and manage playlists. and stores user tokens and song history in SQLite. if it becomes any useful, i'll deploy it. main feats once it becomes stable:
- automatic channel monitoring: new songs and existing ones will be automatically added to your active playlist
- robust batch processing: it can handle a bunch of audio files gracefully
- advanced song identification, shazam integration, analytics and stuff
#MyProjects
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤3
This media is not supported in your browser
VIEW IN TELEGRAM
in the meantime, building some stuff too. will be done by next week hopefully
🔥10
maybe she would find me cool if i told her i had 600 subs on an app with no feed algorithm 😔
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14❤13
Mira
who even takes pictures at 4am
saving the city once again.
yes, we do take pictures at this time
yes, we do take pictures at this time
🔥10❤7❤🔥1
came across this service which provides thousands of models just for free with unified single API just like the vercel ai-sdk. downside: only 1 concurrent request, but no restriction on usage, and tbh fast inference given that you got unlimited requests. you can access 141k models (including gpt 4.1 and many multimodals) on the free tier. they got both python and js sdk. cool stuff to experiment with
models: https://bytez.com/models
docs: https://docs.bytez.com/model-api/docs/welcome
#resources
models: https://bytez.com/models
docs: https://docs.bytez.com/model-api/docs/welcome
#resources
Bytez
Bytez - open source AI
Keep up with AI. Discover, demo, and deploy open source models
❤8
it's so off displaying your framework's generic 500 pages. in svelte, i do something like
then your
if you protect your routes in root
// src/lib/server/utils/safe-page-load.ts
import type { ServerLoadEvent } from '@sveltejs/kit';
export function safePageLoad<T>(
loadFn: (event: ServerLoadEvent) => Promise<T>
) {
return async (event: ServerLoadEvent) => {
try {
const result = await loadFn(event);
return { ...result, error: null };
} catch (err) {
console.error('safePageLoad error:', err);
return {
error: {
message: 'Something went wrong. Please try again later.', // this is probably a connectivity issue. so you can display something like "Check your internet connection"
details: process.env.NODE_ENV === 'development' ? String(err) : undefined
}
} as T & { error: { message: string; details?: string } };
}
};
}
then your
+page.server.ts will be
import { eq } from 'drizzle-orm';
import { safePageLoad } from '$lib/server/utils/safe-page-load';
import { db } from '$lib/server/db';
export const load = safePageLoad(async ({ locals }) => {
const { user } = locals;
const myQueryResults = await db.query.something.findMany({
where: eq(something.id, user.id)
});
return { myQueryResults };
});
if you protect your routes in root
+layout.server.ts, auth errors will never bubble up that far, so the error is only user's connectivity issue. then data.error will be set a value, and you can show a nice UI instead of the generic 500 page
<noscript lang="ts">
let { data } = $props()
</noscript>
{#if data.error}
<ErrorComponent />
{:else}
<div class="grid gap-4">
{#each myQueryResults as result}
{ result }
{/each}
</div>
{/if}
thanks to yohannes i am now in the queue waiting for fetira 😭
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11
you can't be hot and cool at the same time. sweetheart, that's just how thermodynamics works.
(pure cope)
😁19😭6🤣3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15
only slept for like 3 hours in the past 44 hours. i look like i have been high for the straight two days. welp, let's sleep now. see y'all at night with some spam energy 🥺
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15😁3
beautiful you are, like a storm i don’t run from. you’ll wreck the place, smile about it, and somehow i’ll thank you for it. i tell myself i’m fine, that i’m choosing this, but really i just like watching the fire and pretending it’s warmth. you tear things apart just to see what’s inside, i stand there calling it beauty and stay close enough to get burned. it’s easier to stay in the wreckage than face the quiet after. because the silence asks questions i can’t answer. maybe there is no meaning, maybe it’s just the comfort of knowing pain won’t lie to me. and i guess this is all it is, to circle the same ache and calling it purpose, because it’s the only thing that still feels real.
#inkwave
#inkwave
❤4🥰2👍1😁1