Skip to content

A modern, cross-platform desktop app that visualizes your iTunes & Apple Music Library history and delivers a "iTunes Wrapped" experience.

License

Notifications You must be signed in to change notification settings

mooseses/TunesBack

Repository files navigation

TunesBack Logo

TunesBack

The replay statistics for the rest of us.

The "Year-In-Review" experience for iTunes and iPod users.

License: GPL v3 Build Status

Welcome Screen
Welcome Screen
Main Dashboard
Main Dashboard

🎵 Why TunesBack?

Spotify has Wrapped. Apple Music has Replay. But what about iTunes and iPod users?

TunesBack fills that gap. Streaming services provide year-end analytics, but local music libraries don't... until now. TunesBack brings that experience to your local library: track listening habits, discover top artists, albums and songs, and see how your taste evolves over time.

Works with both iTunes and Apple Music libraries. Cross-platform support for Windows, macOS, and Linux.

Powered by libpytunes for robust iTunes XML parsing.

✨ Features

  • Compare periods or analyze single snapshots (XML files be properly named. See guide below)
  • Top Artists, Albums & Songs with customizable rankings (5-100 items)
  • Flexible display: Hours/minutes, sort by time/plays
  • Beautiful dashboard with dark/light mode
  • 100% private: All processing happens locally on your machine

🚀 Quick Start

1. Run TunesBack

Download from Releases

Note: On first launch, macOS may show a security warning. Go to System Settings → Privacy & Security and click "Open Anyway"

From source:

git clone https://github.com/mooseses/TunesBack.git

cd TunesBack

pip install -r requirements.txt

python main.py

2. Export Your Library

  1. Open iTunes/Music → FileLibraryExport Library
  2. Save as .xml with a date in filename (e.g., 2025-12-01.xml)
  3. Export again later to compare!

3. Analyze

  1. Click Select Folder and choose your XML files location
  2. Pick date range or single snapshot
  3. Click Generate Recap

📁 File Naming Guide

How TunesBack Parses Dates

TunesBack uses fuzzy date parsing to automatically extract dates from your XML filenames and displays them as YYYY-MM-DD in the app.

Recommended Formats

2025-12-01.xml
2025_12_01.xml
December-01-2025.xml
Dec-01-2025.xml
01 December 2025.xml
2025-12-01 iTunes Library.xml
Library_2025_12_01_backup.xml

Best Practice: Use ISO format YYYY-MM-DD.xml or include month names to avoid confusion.

These examples are too ambiguous or won't work:

  • library.xml (no date)
  • v2.1.3-export.xml (version numbers confused with dates)
  • backup.xml (no date information)
  • 01-12-2025.xml → Could be Jan 12 or Dec 1
  • 12-01-2025.xml → Could be Dec 1 or Jan 12

💡 Pro Tip: Automate Your Exports

Set up a scheduled task (cron/Task Scheduler) to automatically copy and rename your iTunes Library XML to a snapshots folder weekly/monthly:

macOS/Linux:

# Add to crontab: Run monthly on the 1st at midnight
0 0 1 * * cp ~/Music/iTunes/iTunes\ Library.xml ~/Music/Snapshots/$(date +\%Y-\%m-\%d).xml

Windows PowerShell (Task Scheduler):

$date = Get-Date -Format "yyyy-MM-dd"
Copy-Item "$env:USERPROFILE\Music\iTunes\iTunes Library.xml" "$env:USERPROFILE\Music\Snapshots\$date.xml"

You can also integrate this with cloud-based iTunes Library XML parsers like this one to sync playlists to Plex while backing up snapshots.

🛠️ Tech Stack

License

Distributed under the GPL-3.0 License. See LICENSE for details.

About

A modern, cross-platform desktop app that visualizes your iTunes & Apple Music Library history and delivers a "iTunes Wrapped" experience.

Topics

Resources

License

Stars

Watchers

Forks

Languages