A macOS 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.
- 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
Windows support may come later
- 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
- Launch the video.fm application
- Configure your API keys in the settings panel
- Esnter 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
This application requires two API keys to function properly:
-
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)
-
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
- Operating System: macOS 10.13+ (Sillicon recommended)
- 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)
Issue | Solution |
---|---|
Failed to compile videos | Make sure the Last.fm user you're targetting 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 |
Command windows appearing (Windows) | This is normal behavior when processing videos |
Temporary files not cleaning up | Restart the application or manually delete files in AppData/Local/video.fm |
Video generation stuck | Cancel the process, clear cache, and try again with fewer songs |
Cannot preview video | Bugged, just view it by clicking the file button |
Slow video processing | Try h264_videotoolbox if you are on macOS |
Installation issues on Windows | Make sure you have administrator privileges when installing |
Path too long error (Windows) | Install the app in a directory with a shorter path |
Videos not found for songs | Try the manual URL input option for rare or regional music |
Can't pause video generation | Currently not supported - you'll need to stop and restart |
- All API keys and user preferences are stored locally on your device
- The application only communicates with Last.fm and YouTube APIs
# 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
# Be sure to be in a venv
# 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
Contributions are welcome! Please check out the Contributing Guide for more information.
- Custom video intro/outro options
- Additional video effects and transitions
- Year in review compilation feature
- Artist-specific compilations
- Export to various quality settings
- More
- Last.fm for the listening history API
- yt-dlp
- FFmpeg for media processing
- Electron for the application framework
- Discord: @corinthians00