If you like #ai, and you've used #fabric before, then check out this project (or even if you haven't, check it out anyways)
https://github.com/ebrakke/yt-fabric-ui
still a WIP, but I love having a place to summarize different youtube videos and decide what is worth my time to watch.
I've been playing around with fabric: https://github.com/danielmiessler/fabric
for a little while now, and it's awesome. Since the underlying software got converted to go, I decided to write my own little web UI on top of it for summarizing and keeping track of youtube videos.
Here's a little demo - You can paste in a youtube video, and it will go out and get the transcript for it.
You can then go to the video page and select and model and a pattern to use on the video - in this example I'm using the gpt-4o model and the summary type. However you can have this run against a local LLM as well (basically anything fabric supports).
My workflow here can now be that I'll just grab youtube videos that _might_ interest me. I can then get summarizes, extract_wisdom, or rate the video. Once I read through those, I can decide if the video is actually worth my time, or if I'm fine with skipping it.
Ideally I'd release this as a binary that anyone can run on their computer. Your own personal youtube time saver!
#ai #fabric #go #youtube #savetime
https://video.nostr.build/45f496b6ee251d7e4eae5e2608f712cf8a2a621fb71269a649d48d6462bfd2d9.mp4
@rossbates two things I'm thinking for the kind 2002 event that would potentially make it more interoperable / usable.
1) The "i" tag can just be any general information about how to find the song. The MBID schema is great if a user has it, but I don't think it needs to be limited to that. Having `spotify:track:{spotifyId}` or `tidal:track:{tidalId}` would allow clients to more easily link to a spot where the song can be played.
2) I think adding a `source` would be fun, then a client like scrobble.nostr-music.cc can show which player the the scrobble event came from. Cmus, spotify, last.fm, etc...
This would also tie in nicely to building out a more structure graph of how to find music on the web. Something can ingest this data piece together the spotify link, tidal link, mbid link, etc... and turn that into a Song event.
I almost have a little app done that will handle publishing these events directly from your spotify plays, rather than having to go through last.fm, and I think that will open up this event kind to many more users.
I'm also trying to figure out the best way to link to bandcamp from the scrobble site. That's going to be next on my list once I get better integration with spotify.
Yeah, basically I just need to find a way to query for a bandcamp link by artist name, a quick look doesn't look like they really have a concept of IDs (at least not exposed in an easy way)
But I want my scrobbler app to have a link to checkout the song on bandcamp, so that one could buy a song from that artist.
MAF training has been my goto when shaking off the rust. It can be painful to run slow, even walking at time. But after a month or two the results really start to show.
I've been enjoying ditto.pub
Buggy at times but I like the clean look.
Nostrudel is great too, reminds me of the spirit of Amethyst (if it can be done, it will be done), but on the web.
Even though coding via go templates and plain ol' javascript is worse at scale for highly interactive apps, it's been really fun learning into htmx and Alpine and seeing what all I can do without frameworks and a build system.
Turns out, you can do quite a lot.
#go #htmx
I find myself using slack or discord a lot to send notes to myself. Especially if I want to send something from my PC to my phone.
I'm sure others use services like notion or apple notes to just automatically do that, but I decided to create one using nostr.
This webapp will send draft kind 23 notes to a server and it is stored in a relay run by that server. Everything is encrypted client side.
Users get an nsec generated on first visit. You can "share your notes" and you'll get a link with the nsec so you can retrieve notes on another device. It's super basic and definitely lacking in more features.
Try it out at
https://nts.fly.dev
Note: the DB backing this could be wiped at any time. So just keep that in mind.
#go #notestoself
Agreed. Already working on another extension that I'm calling `window.scrobble`, so any client can just hook into that to publish the scrobble event.
Bridging existing data out of walled gardens is just one piece. I also agree on the "streaming by another name". I want to just own my music and pay you for it one time.
Okay one last one for the weekend...
Here's a chrome extension that will act as a last.fm to nostr bridge.
You just have a to give a last.fm API key, your username, and your nsec (for signing the 2002 events).
In this demo, I am play all this music through the spotify app on my phone. I have spotify hooked up to my last.fm account.
This extension is listening for those scrobble events from last.fm, and publishing them to the scrobble relay.
Finally, the app in the background is listening to new events coming in on the same relay, so in real time you can see my scrobbles getting added on the app.
Open protocols are awesome, I love the inter connectivity!
#music #scrobble #extensions
https://audio.nostr.build/5eb53525a26133e3ba5bb2a90f6861ad5699851bdf48b178b24c92ad62cfab0f.webm
If you're a last.fm user and want to participate, you can run this script while streaming, and it'll generate the scrobble events. When it's all setup, you should see your scrobbles at https://nostr-scrobbler.pages.dev/https://github.com/ebrakke/nostr-scrobbler/tree/main/lastfm-to-nostr
nostr:nevent1qqswfur248655ulh2txa46wwuagtjtd0jc2cu8ghfu7fqqgcy0kg4ssprfmhxue69uhhyetvv9ujuempd368xem4d33kstnrvvhsygqlw9ud24u6uthtczg9ncwfr7f5zng7pjwrlg5p70qm57wft8x4typsgqqqqqqs9w67tr
I'm thinking that I'll periodically snapshot this relay and upload it to a blossom server. Then the server page can post a hash with the download link to grab the data.
Then anyone could run the graph if they want on their own relay, and they'll already get seeded all of the scrobble events.
nostr:nprofile1qqswd2dylpf7fvw5ym45f5x9mvylm3q4eegnuejprr6x7hlmagcye0qpzemhxue69uhhyetvv9ujuurjd9kkzmpwdejhgqgswaehxw309ahx7um5wgh8w6twv5q3gamnwvaz7tmjv4kxz7fwdehhxarj9e3xw84a563 check out https://relay.nostr-music.cc
You can publish your scrobbke events there to this relay, and this webpage will show all the music that has been scrobbled to it
#scrobble #music #nuds
Ha I did the same. Didn't realize uploads were disabled by default!
I've been finding my blossom server useful just for sending videos to friends as well. (Android to iPhone be damned)
I'm using blossom server (the one written by hzrd149)
I have that setup on a VPS with cloudflare R2 as the backend blob storage. The nice thing with R2 is you never pay for reads. Only writes and other operations.
I'm probably going to set one up on my home network and use minio as the backend as well.
I've been using cursor for the past week for so. I just asked it to build me a go server that would query a relay for the scrobble kind and organize it into stats. And then serve up an htmx + Tailwind page to display it all
And it did it. First try. In 10 seconds
The amount of time this saves me just getting everything wired up is massive. Very bullish
https://image.nostr.build/b6f3c7d7c6bbce2e5affd1592894d826e7f795034c1dfe389e012300a6725461.jpg
https://github.com/ebrakke/nostr-scrobbler
Not really sure how NUDs should work, but I made this for music scrobbling. After reading the issue nostr:nprofile1qqsd6ejdteqpvse63ntf7qz6u9yqspp4z7ymt8094urzwm0x2ceaxxgprdmhxue69uhhg6r9vehhyetnwshxummnw3erztnrdakj7qguwaehxw309a6xsetrd96xzer9dshxummnw3erztnrdakj7qgnwaehxw309ac82unsd3jhqct89ejhxtccyjmzy posted about nuds becoming nips, thought it would be cool to have a repo surrounding a NUD (like and awesome-* repo per NUD)
If it gains traction it can make its way to becoming a nip. If not, people can still use it, it it just won't be "official".
Maybe NUDs don't need to be an event on Nostr, just a concept and playbook devs can follow.
#music #scrobble
Built a little go CLI tool that can check with cmus which track is playing and generate a nostr scrobble event (WIP) from it.
The best part is I was able to generate the code for this POC in about an hour using cursor IDE. Extremely bullish on the future of NOSTR and AI
https://image.nostr.build/68e653b6aa2915268344404dce897927f0a1b6519abf2c6e33fd02a5072283df.jpg
#music #scrobble #ai #go #cmus
Between that and MP trying to get everyone to sign up for onx and blocking a full quarter of the page with a sign up box, gotta get all that climbing data out of the walled gardens.
Music. Scrobbling integrations. Decentralizing the entire music recommendation industry, as that is one of the main reasons I think Spotify still has such a hold on people.
Do you have a loose spec on what this kind should look like? I'd love to start figuring out how to integrate it into some of the music players I use (like cmus). Mostly just so I can publish to my own relay and keep track of my listening history.
Sad that libre.fm is in closed beta. I'm sure I could get added, but also seems like something that NOSTR would be perfect for.
The scrobble protocol is pretty simple, and DVMs seem like the perfect use case for song recommendations.
#music #tunestr
Big fan of this soloman vest
https://www.salomon.com/en-us/shop/product/adv-skin-12-lc11657.html#color=66310
You can pack it super light with just the bottles (500ml each) or you can throw a full bladder in the back. Combine both and you can get 3L easily.
Tons of space for phone, snack, jacket, whatever. Just make sure you don't get it too big, otherwise it'll flap around while you run.
First pass at an Activity NIP: https://github.com/nostr-protocol/nips/pull/1423
Anyone who regularly uses Strava, Garmin Connect, or similar - I would love some feedback on this flow. Especially if you're a developer!
#running #nostrava #nips
Yeah working on a new event kind to facilitate this stuff. The goal of the client I'm building is to give fine grained control over what part of an activity you actually share.
Ultimately you'll be able to encrypt the data if you don't want to let others see all of the location data, or choose to not upload it, but allow people to still see stats.
Then utilizing DVMs, you could still get cool aggregates on the stats you choose to make public, like how strava will match a run and give you trends of slower or faster.
Suuuper rough, but here's a client that can handle nostr activites (like garmin / strava / etc..)
https://nostrava.xyz
It's still a WIP and will only use one specific relay current to write all of the activity related notes (relay.nostrava.xyz).
While the NIP is still being worked on, I figure it makes sense to not publish these notes to a bunch of public relays as things could still change.
Currently auth is only supported via nip-07 browser extensions (more auth support will come soon).
When you share an activity, you can expand "Share Settings" to choose exactly what you want to share as a NOSTR note. You can trim the Map file so that you don't dox your exact location, you can also choose to not upload your activity file. In this case, only a summary of statistic will be generated.
I'm using the "sports-lib" javascript library to analyze the activity files. It's far from perfect, but it's good enough for now. My hope is that other who are better at this kind of analysis can create DVMs or other libraries to generate summaries from the raw GPX files, which other clients can then pick up on.
Relevant code is here:
https://github.com/ebrakke/nostr-avahttps://github.com/ebrakke/nostr-activities-sdk
#running #nostrava #activities #cycling #gpx
Notes by Erik | export