Fully-local sync tool for the Sony ICD-UX570 voice recorder
Project description
REEL
A fully-local, automatic sync tool for the Sony ICD-UX570 — and any USB drive. Plug something in and Reel pulls everything new onto your PC, names it cleanly, and files it where it belongs. Re-plug the same stick and nothing copies twice. A clean terminal, a progress bar, done.
Everything stays on your machine. Your devices are never wiped. The library is just folders — open it in Explorer any time.
What it does
- Detects what you plug in. The recorder (by label or its
REC_FILEfolder), and any removable USB drive — sticks, camera cards, anything that mounts. - Knows what it's looking at. A
REC_FILEfolder → voice recorder;DCIMor mostly photos → camera; mostly audio → music stick; anything else → a generic drive. - Copies only what's new. Every file is fingerprinted; already-synced files are skipped. Each device keeps its own dedup index, so re-plugging never duplicates.
- One library, sorted right. Everything lands in the same
Reel/folder:- The recorder's audio → smart categories (Interviews / Songs / Memes / Podcasts / Voice Notes), by source folder, filename keyword, or length.
- Everything else → by file kind: Photos, Videos, Audio, Documents, Archives, Other.
- Names it right. Recordings and camera files get a date-first, sorts-forever name (
2026-06-08_1432_IMG_0421.jpg); files that already have a real name — documents, music — keep it. - Fully automatic — no questions. Plug a drive in and it syncs. One shared index means the same file never copies twice, even off two different cards. (Recorder-only? Set
enabled = falseunder[devices].) - Mirrors to any extra drives you list, so sync doubles as backup.
- Runs automatically in watch mode — leave it running and every plug-in just syncs, then it bows out the moment you unplug.
Files land here — one folder, organised:
Reel/
├── Interviews/2026/2026-06-08_1432_reel-7F3A.mp3 ← recorder audio, smart-categorised
├── Songs/2026/2026-05-30_2011_reel-A1C9.mp3
├── Photos/2026/2026-05-14_0941_IMG_0421.jpg ← anything else, filed by kind
├── Videos/2026/2026-05-14_0941_MVI_0423.mp4
├── Documents/2026/Tax Return 2025.pdf ← real names kept
└── .reel/manifest.json ← one dedup index (nothing copies twice)
Install
Once it's published, anyone can install it from PyPI:
pip install reel-sync
(The package is reel-sync; the command you run is just reel.)
From this folder (for development)
- Install Python 3.11+ (python.org → tick Add Python to PATH).
- Install Reel as a command — open a terminal in this folder once:
That puts apip install -e .reelcommand on your PATH, so you can run it from any folder (includingC:\Users\YOU>), not just this one. - Set your path in
config.toml:[library] sync_root = "C:/Users/YOURNAME/Reel"
Pointsync_rootat a cloud-synced folder (pCloud / OneDrive / Dropbox) and your off-site backup is automatic.
Reel finds this config.toml automatically wherever you run it from (it also
checks ./config.toml and ~/.reel/config.toml first). No config at all? It
falls back to sensible defaults (~/Reel).
Use it
You really only need two commands. Run them from anywhere — your home prompt is fine.
First time — run this, then plug in the recorder when it asks:
reel setup
A short welcome, then it waits for your ICD-UX570, does the big initial copy, and
stays running as auto-sync from there. (Run reel setup again later and it
just says "Already set up :)".)
The hands-off way (recommended) — set it once and forget it:
reel auto
Reel now starts with Windows and syncs the moment you plug anything in — no
terminal, nothing to remember. (See Make it truly hands-off below. reel auto off
turns it back off.)
Or run it in a terminal when you want to watch it work:
reel start
It does the initial sync, then keeps syncing automatically whenever you drop a file onto the recorder from your PC — and it stops by itself the moment you unplug the recorder. (Press Ctrl + C to stop sooner.)
That's the whole flow. The rest is optional:
reel sync # a single one-off sync, then exit (rarely needed)
reel sort <path> # auto-filter a folder/files you drop in (or use the .bat)
reel play # play your latest recording (right in the terminal)
reel play songs # play through a whole category (or: interviews, voice, …)
reel play <file|word> # play one recording, a folder, or anything matching a name
reel status # what's in your library, per category
reel devices # is the recorder detected right now?
reel open # open the Reel library in Explorer
reel reset # clear first-time setup (to see the welcome again)
reel --theme dark start# dark terminal theme
Listen back (reel play)
A little terminal player, same vibe as the rest: a live progress bar, a queue,
and one-key controls — space pause, n / b skip, ◂ ▸ seek, ± volume,
q quit. reel play alone grabs your latest recording; reel play songs
(or interviews, voice, podcasts, memes) plays through that whole shelf,
newest first.
Playback is an optional add-on so the core sync never depends on an audio library. Turn it on once:
pip install reel-sync[play] # or: pip install just_playback
Without it, reel play simply opens the file in your system's default audio app.
(python -m reel start and python run.py start work identically.)
Make it truly hands-off — reel auto
One command and you never think about it again:
reel auto # run at login + start watching now (no terminal to keep open)
reel auto off # turn it back off
reel auto status # is it on / running right now?
reel auto installs a tiny hidden launcher so Reel starts with Windows and watches
quietly in the background. Here's what you actually see:
Plug a drive in → a window pops up showing the logo and live progress bars as it syncs. When it's done → the window tucks itself down to the taskbar (like clicking the – button) and sits there as a calm "all synced" spinner. Unplug → the window vanishes. The background watcher keeps waiting for the next drive.
That's the whole thing: plug in, watch it sort, walk away. Because reel auto already
runs continuously, reel start isn't needed — run it and Reel just reminds you
it's already on autopilot.
Branding
Light by default — colours tuned for a white terminal. Want dark? theme = "dark" in config.toml, or --theme dark on any command. Identity lives in reel/branding.py.
Notes
- Privacy: nothing leaves your machine except the copies you put in your own mirror/cloud folders.
- Safety:
delete_after_sync = falseby default — Reel only ever copies off your devices, never deletes from them. - No duplicates: one content-hash index (
.reel/manifest.json) covers the whole library, so the same file off two different drives only lands once. - Coming later: smarter sorting, a few quality-of-life touches. See
ROADMAP.md. (Any-USB-device auto-sync and built-in playback have both landed.)
REEL v2.2.0 — plug it in, sorted.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reel_sync-2.3.0.tar.gz.
File metadata
- Download URL: reel_sync-2.3.0.tar.gz
- Upload date:
- Size: 40.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ad03b27b85318bf218897446f72b0ad8b7057e8d0eb7c6df2ce5261a5d53c90
|
|
| MD5 |
549a81786c56accd7408853d7edf74f5
|
|
| BLAKE2b-256 |
13844c65b5ef246e43b7a045395b5f9f05b646510ad42f5713fea943cd026ef9
|
File details
Details for the file reel_sync-2.3.0-py3-none-any.whl.
File metadata
- Download URL: reel_sync-2.3.0-py3-none-any.whl
- Upload date:
- Size: 43.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1b3dee338ff89e81420126ce54543e6cd514940d60911e789406f41125afae0
|
|
| MD5 |
bee1288803335a892a4475ae5848e7c1
|
|
| BLAKE2b-256 |
7f223f8e722bf05dfc93b5776c2a711c08d167af618a398f7cdf94f3b4edc8b5
|