Skip to main content

Offline-friendly PDF renamer that generates meaningful, keyword-rich filenames from PDF content.

Project description

meaningful-pdf-names

Python application PyPI version codecov Code style: black Downloads

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.pdfurban-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 -p flag (e.g., -p 4 for 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) via transformers + 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

  1. Install the package (see above)
  2. 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
  3. Run the command:
    mpn .
    

For Linux Users

  1. Install the package (see above)
  2. Navigate to your PDF folder:
    cd /path/to/your/pdf/folder
    
  3. 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.pdf
    • machine-learning-neural-networks-research-4x2.pdf
    • healthcare-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 - Year patterns (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

meaningful_pdf_names-0.2.0.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meaningful_pdf_names-0.2.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file meaningful_pdf_names-0.2.0.tar.gz.

File metadata

  • Download URL: meaningful_pdf_names-0.2.0.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for meaningful_pdf_names-0.2.0.tar.gz
Algorithm Hash digest
SHA256 219c22a74276dbfed4c1f41dff5acf7714bcae70def71283077d62bdd49c3ed4
MD5 9dc8a421a7dc6fcc00a2391ff251c5e8
BLAKE2b-256 93437c9c16477b41667af7040fe3b318bca31941397fe5fbe3c12ad858bec2bc

See more details on using hashes here.

File details

Details for the file meaningful_pdf_names-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for meaningful_pdf_names-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d013880f7b67f01d7275a3aab8aab59bdfb45edaf419c910b2a4a14455427c4
MD5 34bd5c0ed411ec8502f0a6713fa64304
BLAKE2b-256 59e3c0458576eb243034589951c5cb03fba1f8f91d8347e7d5eb99f1b75c54ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page