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

Dry run (preview changes without renaming):

mpn . --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)

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.1.2.tar.gz (6.9 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.1.2-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: meaningful_pdf_names-0.1.2.tar.gz
  • Upload date:
  • Size: 6.9 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.1.2.tar.gz
Algorithm Hash digest
SHA256 0b688666372841e215238d59346c1d76136074e3e16a12d7ac11b5422d5b4e53
MD5 d9b663b964eebf68fd3bb0dbdadc5e9d
BLAKE2b-256 d6d1d20f727fdf4ac472d273406a222b580723abaeeb2d3a28738e1dca674cb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for meaningful_pdf_names-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 93f1a1b73e99044658058f737c5fb682b93cae24995ba4df8ba6089627dc999b
MD5 17d8c8aa73e1afb30445c48f15459ea3
BLAKE2b-256 2fb392376e5ef3c469639faa41c45e69b103c79db3b5abc0127c313eca278c0d

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