Skip to content

Instantly share code, notes, and snippets.

View Uvacoder's full-sized avatar

uvacoder Uvacoder

View GitHub Profile
@Uvacoder
Uvacoder / spotify.js
Created June 16, 2024 22:37 — forked from jabedzaman/spotify.js
Fetch currently playing song on Spotify
// pages/api/spotify.
import querystring from 'querystring';
const {
NEXT_PUBLIC_SPOTIFY_CLIENT_ID: client_id,
NEXT_PUBLIC_SPOTIFY_CLIENT_SECRET: client_secret,
NEXT_PUBLIC_SPOTIFY_REFRESH_TOKEN: refresh_token,
} = process.env;
@Uvacoder
Uvacoder / generate-rss.mjs
Created June 16, 2024 22:36 — forked from luigircruz/generate-rss.mjs
Generate rss for markdown blog posts
// https://luigicruz.dev/feed.xml
import { readFileSync, readdirSync, writeFileSync } from 'fs'
import { join } from 'path'
import RSS from 'rss'
import matter from 'gray-matter'
async function generate() {
const feed = new RSS({
title: 'Luigi Cruz',
@Uvacoder
Uvacoder / getTopTracks.js
Created June 16, 2024 22:34 — forked from iamhectorsosa/getTopTracks.js
Snippet: Get Your Spotify's Top Tracks #Spotify
import { getTopTracks } from '../../lib/spotify';
export default async (_, res) => {
const response = await getTopTracks();
const { items } = await response.json();
const tracks = items.slice(0, 10).map((track) => ({
artist: track.artists.map((_artist) => _artist.name).join(', '),
songUrl: track.external_urls.spotify,
title: track.name
@Uvacoder
Uvacoder / spotify.ts
Created June 16, 2024 22:34 — forked from ashwnn/spotify.ts
using oauth with spotify.com
const client_id = process.env.SPOTIFY_CLIENT_ID
const client_secret = process.env.SPOTIFY_CLIENT_SECRET
const refresh_token = process.env.SPOTIFY_REFRESH_TOKEN
const basic = Buffer.from(`${client_id}:${client_secret}`).toString('base64')
const NOW_PLAYING_ENDPOINT = `https://api.spotify.com/v1/me/player/currently-playing`
const TOP_TRACKS_ENDPOINT = `https://api.spotify.com/v1/me/top/tracks`
const TOKEN_ENDPOINT = `https://accounts.spotify.com/api/token`
async function getAccessToken() {
@Uvacoder
Uvacoder / spotify-player-widget.js
Created June 16, 2024 22:32 — forked from 29SimonB/spotify-player-widget.js
A Scriptable iOS widget that shows what‘s playing on Spotify
//Source: Spotify Web API
let spotifyCredentials
if (!config.runsInWidget) {
switch (config.widgetFamily) {
case 'small': await widget.presentSmall(); break;
case 'medium': await widget.presentMedium(); break;
case 'large': await widget.presentLarge(); break;
import React, { useState, useEffect } from "react";
const clientId = "b841fe980d704720934f655f5e92d2e3";
const redirectUrl = "http://localhost:3000/callback";
const authorizationEndpoint = "https://accounts.spotify.com/authorize";
const tokenEndpoint = "https://accounts.spotify.com/api/token";
const scope =
"user-read-private user-read-email playlist-read-private playlist-modify-private user-library-read user-library-modify";
@Uvacoder
Uvacoder / README.md
Created June 16, 2024 22:30 — forked from SerafDosSantos/README.md
spotify-web-api-node/README.md
@Uvacoder
Uvacoder / spotify-now-playing.js
Created June 16, 2024 22:28 — forked from marco79cgn/spotify-now-playing.js
A Scriptable iOS widget that shows what‘s playing on Spotify
let spotifyCredentials
let widget = await createWidget()
Script.setWidget(widget)
Script.complete()
async function createWidget() {
let widget = new ListWidget()
let spotifyIcon = await getImage("spotify-icon.png")
widget.backgroundColor = new Color("1e2040")
@Uvacoder
Uvacoder / route.ts
Created June 16, 2024 22:23 — forked from m1guelpf/route.ts
Next.js App Route for getting the current playing song on Spotify (or a cached version)
import redis from '@/lib/redis'
import { tap } from '@/lib/utils'
import { NextResponse } from 'next/server'
import { NowPlaying } from '@/types/activities'
import { base64_encode, use } from '@/lib/utils'
type SpotifyResponse = {
is_playing: boolean
progress_ms: number
item: {
@Uvacoder
Uvacoder / now-playing.tsx
Created June 16, 2024 22:22 — forked from zpuckeridge/now-playing.tsx
Spotify Now Playing Component + API Route + Token Generation
"use client";
import { useState, useEffect } from "react";
import Image from "next/image";
import { FaSpotify } from "react-icons/fa6";
interface SongData {
progress: number;
duration: number;
title: string;