Offline-friendly PDF renamer that generates meaningful, keyword-rich filenames from PDF content.
Project description
Mac users: If you just want the ready-to-use macOS installer (right-click integration, no terminal required), head to Meaningful PDF Names — macOS DMG Release.
meaningful-pdf-names
Offline-friendly CLI to turn your messy paper filenames into compact, keyword-rich names based on the PDF's first page.
Example:
final_v3_really_final.pdf → urban-resilience-transport-inequality-policy-a9f.pdf
Features
- Uses the first 2 pages by default (title, authors, abstract, introduction) for better context
- Configurable page count with
-pflag (e.g.,-p 4for 4 pages) - Up to 5 meaningful keywords per file
- Adds a 3-character [a-z0-9] suffix to avoid collisions
- Works fully offline with
pypdf - Optional: use a small local Hugging Face summarizer
(
sshleifer/distilbart-cnn-12-6) viatransformers+torch
Prerequisites
- Python 3.9+ installed on your system
- pip (Python package manager) - usually comes with Python
Quick Install
From PyPI (Recommended)
pip install meaningful-pdf-names
Quick Start Guide
For Mac Users
- Install the package (see above)
- Navigate to your PDF folder:
- Open Finder and go to the folder containing your PDFs
- Right-click on the folder and select "New Terminal at Folder"
- This opens Terminal directly in that folder
- Run the command:
mpn .
For Linux Users
- Install the package (see above)
- Navigate to your PDF folder:
cd /path/to/your/pdf/folder
- Run the command:
mpn .
For Any Folder Location
If you want to rename PDFs in a different folder without navigating there:
mpn /full/path/to/your/pdf/folder
Usage Examples
Basic usage (current folder):
mpn .
Specific folder:
mpn ~/Downloads/research_papers
mpn /Users/username/Documents/PDFs
Single PDF file:
mpn document.pdf
mpn ~/Downloads/paper.pdf
Multiple PDF files:
mpn paper1.pdf paper2.pdf paper3.pdf
mpn ~/Downloads/*.pdf
Mixed files and folders:
mpn . document.pdf ~/Downloads/research_papers
Dry run (preview changes without renaming):
mpn . --dry-run
mpn document.pdf --dry-run
Quiet mode (minimal output):
mpn . --quiet
Custom page count (read more pages for better context):
mpn . -p 4 # Read first 4 pages
mpn . -p 10 # Read up to 10 pages (or all if PDF has fewer)
mpn document.pdf -p 3 # Read first 3 pages of specific file
What It Does
- Scans all PDF files in the specified folder
- Extracts text from just the first page (fast!)
- Identifies meaningful keywords from titles, authors, abstracts
- Generates clean, readable filenames like:
climate-change-urban-planning-sustainability-a9f.pdfmachine-learning-neural-networks-research-4x2.pdfhealthcare-policy-digital-transformation-b7c.pdf
Why Not Existing Tools?
Other tools often:
- Depend on OpenAI / web APIs (requires internet, API keys)
- Require DOIs or external metadata (not always available)
- Use long
Author - Title - Yearpatterns (hard to read)
meaningful-pdf-names is:
- Local-only (no API keys, no network required)
- Fast (first-page only extraction)
- Slug-based: short, grep- and git-friendly names
License
MIT
Project details
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 meaningful_pdf_names-0.2.1.tar.gz.
File metadata
- Download URL: meaningful_pdf_names-0.2.1.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8308d57df65afacbb59554148ce4d4f303b9a5f8fcc3fa085f73ca5ac1428a92
|
|
| MD5 |
e0ff810c3cb613c4b1c8d940abce95ef
|
|
| BLAKE2b-256 |
67a12429c873d0dca1618669d9fd6b4367f68c25eb046b05dfa7b005bcf83f6f
|
File details
Details for the file meaningful_pdf_names-0.2.1-py3-none-any.whl.
File metadata
- Download URL: meaningful_pdf_names-0.2.1-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef2b3b57011b82bcd0e90bf7be997de0ede74a1bbca6841ee408159e2eacef1d
|
|
| MD5 |
42d712f927e06a37d51c570d29557309
|
|
| BLAKE2b-256 |
7a438e950d5417758048d1227fc9572998339f069333498b72ab971886e23063
|