It started with a 5TB drive and a shared obsession: collecting movies, series, and games — not just hoarding, but actually watching and playing them.
At first, every download meant clicking links one by one. Then we got smarter: copy links into a text file, feed them to IDM with scheduling.
The real pain came later. When Iran's internet restrictions forced our go‑to site to change domains overnight, over 300 hand‑collected links became useless in an instant.
Nobody wanted to do that again. So we asked: "What if a tool could handle this for us?"
That question became LinkLens — a Python project born from real frustration, built to automate link collection, survive domain changes, and grow into a full download manager. What started as a personal fix between two people is now evolving into a serious engineering portfolio project.
LinkLens is in early development. The first milestone is a CLI tool that takes a URL, extracts all download links (filtered by file type), and saves them to a text file — ready for your download manager.
Later phases will add concurrent downloads, queue persistence, and link health monitoring. But right now, it solves one problem well: never copy a download link by hand again.
linklens/
├── pyproject.toml
├── config.yaml
├── README.md
│
├── linklens/
│ ├── init.py
│ ├── main.py
│ ├── core/
│ │ ├── init.py
│ │ ├── base_collector.py
│ │ └── filters.py
│ ├── collectors/
│ │ ├── init.py
│ │ ├── factory.py
│ │ └── generic.py
│ ├── infrastructure/
│ │ ├── init.py
│ │ ├── http_client.py
│ │ └── file_io.py
│ └── utils/
│ ├── init.py
│ └── url_utils.py
│
└── tests/
├── init.py
├── conftest.py
├── test_base_collector.py
└── test_generic.py
█▓▒░░░░░░░░░░░░░░░░░░░░░░░▒▓█