
A desktop application that automatically creates personalized music video compilations based on your Last.fm listening history. Transform your music taste into shareable video content with just a few clicks.
Features
- Last.fm Integration: Seamlessly enter the user of any Last.fm account to access its full listening history
- Custom Compilations: Create video compilations of your top songs for any given date period
- Smart Video Selection: Automatically searches for related music videos
- Video Editing: Replace specific videos during the creation process
- Cross-platform: Compatible with both macOS and Windows
Note
macOS and Windows have separate branches
Installation
macOS
- Download the latest
.dmg
file from the Releases page or videofm.app - Open the DMG file and drag the application to your Applications folder
- Right-click on the app and select "Open" to bypass macOS security warning on first launch
- If you see a security warning, go to System Preferences → Security & Privacy → General and click "Open Anyway"
- If none of the above worked, open Terminal and paste
xattr -cr /Applications/video.fm.app
- If that didn't open the app, paste
open /Applications/video.fm.app
Windows
- Download the latest
.exe
installer from the Releases page or videofm.app - Run the installer and follow the on-screen instructions
- Launch the application from the Start menu or desktop shortcut
- If SmartScreen shows a warning, click "More info" and "Run anyway"
Regular Python Script [main branch]
(Smoothest experience if you know what you are doing)
- Download files in the main branch and put it into a folder
- Download ALL dependencies; can be found in requirements.txt
- Make sure to have Python installed on your system
- A text editor like VS Code can make running it easy. Open the folder within the workspace you're using. (VS Code, Terminal, Command Prompt, PowerShell, etc)
- If you're on Windows, change the CODEC to
libx264
. If you have an NVIDIA GPU you can tryh264_nvenc
Usage
Getting Started
- Launch the video.fm application
- Configure your API keys in the settings panel
- Enter your Last.fm username in the main field
- Select the year and month for your compilation
- Choose how many songs to include (1-50)
- Check "Allow manual YouTube URL entry" if you want to provide specific video URLs from failed searches
- Click "Generate" to start the compilation process
Hardware acceleration coming later
API Keys
This application requires two API keys to function properly:
1. Last.fm API Key
- Register at Last.fm API
- Click on "Create API account" and fill out the application form:
- Application name: video.fm (or your anything). You can skip the rest
- After submitting, you'll receive your API key immediately on the confirmation page
- Copy this API key and paste it into the settings section of video.fm (gear icon)
2. YouTube API Key
- Go to Google Cloud Console and sign in with your Google account
- Click "Create Project" at the top of the page and name it (e.g., "video.fm")
- Once your project is created, navigate to "APIs & Services" > "Library" in the left sidebar
- Search for "YouTube Data API v3" and select it from the results
- Click the "Enable" button to activate this API for your project
- After enabling, go to "APIs & Services" > "Credentials" in the left sidebar
- Click "Create Credentials" and select "API key" from the dropdown menu
- Your new API key will be displayed - copy it to use in video.fm
- Paste your API key into the video.fm settings screen (gear icon)
Helpful tutorial: https://www.youtube.com/watch?v=uz7dY8qTFJw
System Requirements
- Operating System: macOS 10.13+ or Windows 10+
- Memory: 4GB RAM minimum, 8GB recommended
- Disk Space: 2GB+ free space (varies based on compilation length)
- Internet: Good internet connection
- Dependencies: FFmpeg (automatically downloaded if not present)
Troubleshooting
Common Issues
Issue
Solution
Failed to compile videos
Make sure the Last.fm user you're targeting has a public recent scrobble profile
No videos found
Verify your Last.fm username and time period
API quota exceeded
Get a new YT API key or wait next day
Low quality videos
Check your internet connection or manually provide URLs
Application crashes
Check console logs and ensure all dependencies are installed
Missing audio
Make sure FFmpeg is properly installed
File already exists. Replace y/N
Working on this, for now just try to delete or move video files you don't need
Issues with FFmpeg
Install manually or paste these into terminal (Mac):
sudo chmod +x /Applications/video.fm.app/Contents/Resources/extraResources/bin/ffmpeg
sudo chmod +x /Applications/video.fm.app/Contents/Resources/extraResources/bin/ffprobe
Privacy
- All API keys and user preferences are stored locally on your device
- The application only communicates with Last.fm and YouTube APIs
Development
Building from Source & Setup requirements
Mac
# Clone repository (macOS branch)
git clone -b mac https://github.com/yourusername/video-fm.git
cd video-fm
# Install dependencies
npm install
# Run in development mode
npm start
# Setup requirements (before building)
# 1. Create a bundled-tools directory and add FFmpeg executables
mkdir -p bundled-tools
cp /path/to/ffmpeg bundled-tools/ffmpeg
cp /path/to/ffprobe bundled-tools/ffprobe
chmod +x bundled-tools/ffmpeg bundled-tools/ffprobe
# 2. Ensure you have compiled the Python executable with PyInstaller
pyinstaller videofm.spec
# Build for production
npm run dist:mac
Windows
# Clone repository (Windows branch)
git clone -b windows https://github.com/yourusername/video-fm.git
cd video-fm
# Install dependencies
npm install
# Run in development mode
npm start
# Setup requirements (before building)
# 1. Create a bundled-tools directory and add FFmpeg executables
mkdir bundled-tools
# Copy ffmpeg.exe and ffprobe.exe to the bundled-tools folder
# 2. Ensure you have compiled the Python executable with PyInstaller
pyinstaller videofm.spec
# Build for production
npm run dist:win
Contributing
Contributions are welcome! Please check out the Contributing Guide for more information.
License
Roadmap
- Custom video intro/outro options
- Additional video effects and transitions
- Year in review compilation feature
- Artist-specific compilations
- Export to various quality settings
- More
Credits
- Last.fm for the listening history API
- yt-dlp
- FFmpeg for media processing
- Electron for the application framework
Contact
Discord: @corinthians00