iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Visualize your Spotify listening habits, create playlists, and share your stats. Built with R and Shiny.
MediaR · ShellGitHub @AnttiRaskOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
TrackTeller is a Shiny web app that connects to your Spotify account to visualize your listening habits and create playlists from your personal data
Taken from the repository README
Loading the full README.
Read the full README ↗TrackTeller is a Shiny web app that connects to your Spotify account to visualize your listening habits and create playlists from your personal data.
👉 Try it live on Google Cloud Run
TrackTeller/
├── app/ # Everything that goes into the Docker image
│ ├── ui.R # Function-based UI (5 tabs + OAuth callback handling)
│ ├── server.R # Server logic (Spotify API + visualizations + stats cards)
│ ├── run.R # App entry point
│ ├── scripts/
│ │ ├── spotify_oauth.R # Custom OAuth 2.0 implementation
│ │ ├── config.R # Environment-based configuration
│ │ └── global.R # Shared helpers (ggplot theme, colors)
│ ├── css/
│ │ └── styles.css # Spotify dark theme + mobile responsiveness
│ └── www/
│ ├── redirect.js # JavaScript for OAuth redirects
│ └── favicon.png # App favicon
├── docs/
│ └── index.html # Static landing page (GitHub Pages)
├── Dockerfile # Container definition (rocker/shiny:4.3.1 + magick)
├── docker-compose.yml # Local development orchestration
├── deploy.sh # Google Cloud Run deployment script
├── DEPLOY.md # Deployment guide
├── .env.example # Credential template
└── renv.lock # Package dependency lock file
| Variable | Description |
|---|---|
SPOTIFY_CLIENT_ID | Spotify Developer app client ID |
SPOTIFY_CLIENT_SECRET | Spotify Developer app client secret |
APP_URL | Your app's URL (for OAuth redirect) |
Set these as environment variables or in a .env file.
# Copy and configure environment
cp .env.example .env
# Edit .env with your Spotify credentials
# Build and run with Docker
sudo docker compose up --build
# Access at http://127.0.0.1:8080
Deployed on Google Cloud Run with credentials stored in Secret Manager.
See DEPLOY.md for full deployment instructions, or quick deploy:
./deploy.sh
| Component | Technology |
|---|---|
| Language | R |
| Framework | Shiny + bslib |
| Music Data | Spotify Web API |
| Visualizations | plotly + ggplot2 |
| Image Processing | magick (ImageMagick) |
| Styling | Custom CSS (dark theme) |
| Containerization | Docker |
| Deployment | Google Cloud Run |
| Secrets | Google Cloud Secret Manager |
The inspiration for this project came from R User Group Helsinki's workshop in March 2023. We learned to use the Spotify API using the {spotifyr} package.
The original app relied on Spotify's audio features and recommendations APIs, which were deprecated in November 2024. TrackTeller is a complete redesign using only currently available endpoints.
Created by Antti Rask