mkv-episode-matcher 0.7.0__tar.gz → 0.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mkv-episode-matcher might be problematic. Click here for more details.
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.github/workflows/tests.yml +8 -10
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/PKG-INFO +4 -4
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/README.md +1 -1
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/docs/api/index.md +9 -5
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/docs/cli.md +6 -4
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/docs/installation.md +2 -2
- mkv_episode_matcher-0.7.2/docs/quickstart.md +88 -0
- mkv_episode_matcher-0.7.2/docs/tips.md +97 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/episode_identification.py +11 -4
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher.egg-info/PKG-INFO +4 -4
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/pyproject.toml +4 -1
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/setup.cfg +1 -1
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/uv.lock +518 -176
- mkv_episode_matcher-0.7.0/docs/quickstart.md +0 -76
- mkv_episode_matcher-0.7.0/docs/tips.md +0 -163
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.coverage +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.gitattributes +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.github/funding.yml +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.github/workflows/documentation.yml +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.github/workflows/python-publish.yml +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.gitignore +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.gitmodules +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.python-version +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/.vscode/settings.json +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/CHANGELOG.md +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/docs/changelog.md +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/docs/configuration.md +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkdocs.yml +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/.gitattributes +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/__init__.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/__main__.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/config.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/episode_matcher.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/subtitle_utils.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/tmdb_client.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher/utils.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher.egg-info/SOURCES.txt +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher.egg-info/dependency_links.txt +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher.egg-info/entry_points.txt +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher.egg-info/requires.txt +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher.egg-info/top_level.txt +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/setup.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/tests/__init__.py +0 -0
- {mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/tests/test_main.py +0 -0
|
@@ -11,24 +11,22 @@ jobs:
|
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
12
|
strategy:
|
|
13
13
|
matrix:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
- "3.11"
|
|
18
|
-
- "3.12"
|
|
14
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
15
|
+
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
16
|
+
fail-fast: false
|
|
19
17
|
|
|
20
18
|
steps:
|
|
21
19
|
- uses: actions/checkout@v4
|
|
22
20
|
|
|
23
21
|
- name: Install uv and set the python version
|
|
24
|
-
uses: astral-sh/setup-uv@
|
|
22
|
+
uses: astral-sh/setup-uv@v5
|
|
25
23
|
with:
|
|
24
|
+
enable-cache: true
|
|
25
|
+
cache-dependency-glob: "uv.lock"
|
|
26
26
|
python-version: ${{ matrix.python-version }}
|
|
27
27
|
|
|
28
|
-
- name: Install
|
|
29
|
-
run:
|
|
30
|
-
uv venv
|
|
31
|
-
uv pip install -e .
|
|
28
|
+
- name: Install the project
|
|
29
|
+
run: uv sync --all-extras --dev
|
|
32
30
|
|
|
33
31
|
- name: Run tests with pytest and coverage
|
|
34
32
|
run: |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: mkv-episode-matcher
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: The MKV Episode Matcher is a tool for identifying TV series episodes from MKV files and renaming the files accordingly.
|
|
5
5
|
Home-page: https://github.com/Jsakkos/mkv-episode-matcher
|
|
6
6
|
Author: Jonathan Sakkos
|
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
16
16
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
17
|
-
Requires-Python:
|
|
17
|
+
Requires-Python: <3.13,>=3.9
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
Requires-Dist: configparser>=7.1.0
|
|
20
20
|
Requires-Dist: ffmpeg>=1.4
|
|
@@ -58,7 +58,7 @@ Automatically match and rename your MKV TV episodes using The Movie Database (TM
|
|
|
58
58
|
|
|
59
59
|
## Prerequisites
|
|
60
60
|
|
|
61
|
-
- Python 3.9
|
|
61
|
+
- Python 3.9-3.12
|
|
62
62
|
- [FFmpeg](https://ffmpeg.org/download.html) installed and available in system PATH
|
|
63
63
|
- TMDb API key (optional, for subtitle downloads)
|
|
64
64
|
- OpenSubtitles account (optional, for subtitle downloads)
|
|
@@ -26,7 +26,7 @@ Automatically match and rename your MKV TV episodes using The Movie Database (TM
|
|
|
26
26
|
|
|
27
27
|
## Prerequisites
|
|
28
28
|
|
|
29
|
-
- Python 3.9
|
|
29
|
+
- Python 3.9-3.12
|
|
30
30
|
- [FFmpeg](https://ffmpeg.org/download.html) installed and available in system PATH
|
|
31
31
|
- TMDb API key (optional, for subtitle downloads)
|
|
32
32
|
- OpenSubtitles account (optional, for subtitle downloads)
|
|
@@ -4,25 +4,29 @@ This section contains the automatically generated API documentation for MKV Epis
|
|
|
4
4
|
|
|
5
5
|
## Core Modules
|
|
6
6
|
|
|
7
|
+
::: mkv_episode_matcher.__main__
|
|
8
|
+
options:
|
|
9
|
+
show_root_heading: true
|
|
10
|
+
heading_level: 2
|
|
11
|
+
|
|
7
12
|
::: mkv_episode_matcher.episode_matcher
|
|
8
13
|
options:
|
|
9
14
|
show_root_heading: true
|
|
10
15
|
heading_level: 2
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
::: mkv_episode_matcher.tmdb_client
|
|
17
|
+
::: mkv_episode_matcher.episode_identification
|
|
15
18
|
options:
|
|
16
19
|
show_root_heading: true
|
|
17
20
|
heading_level: 2
|
|
18
21
|
|
|
19
|
-
##
|
|
22
|
+
## TMDB Client
|
|
20
23
|
|
|
21
|
-
::: mkv_episode_matcher.
|
|
24
|
+
::: mkv_episode_matcher.tmdb_client
|
|
22
25
|
options:
|
|
23
26
|
show_root_heading: true
|
|
24
27
|
heading_level: 2
|
|
25
28
|
|
|
29
|
+
|
|
26
30
|
## Utilities
|
|
27
31
|
|
|
28
32
|
::: mkv_episode_matcher.utils
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Command Line Interface
|
|
2
2
|
|
|
3
|
+
The CLI features a rich, user-friendly interface with color-coded output and progress indicators.
|
|
4
|
+
|
|
3
5
|
## Basic Commands
|
|
4
6
|
|
|
5
7
|
### Process Show
|
|
@@ -29,13 +31,13 @@ mkv-match --show-dir "/path/to/show" --season 1
|
|
|
29
31
|
### Dry Run Mode
|
|
30
32
|
|
|
31
33
|
```bash
|
|
32
|
-
mkv-match --show-dir "/path/to/show" --dry-run
|
|
34
|
+
mkv-match --show-dir "/path/to/show" --dry-run
|
|
33
35
|
```
|
|
34
36
|
|
|
35
37
|
### Download Subtitles
|
|
36
38
|
|
|
37
39
|
```bash
|
|
38
|
-
mkv-match --show-dir "/path/to/show" --get-subs
|
|
40
|
+
mkv-match --show-dir "/path/to/show" --get-subs
|
|
39
41
|
```
|
|
40
42
|
|
|
41
43
|
### Set API Key
|
|
@@ -50,8 +52,8 @@ mkv-match --show-dir "/path/to/show" --tmdb-api-key "your_key"
|
|
|
50
52
|
mkv-match \
|
|
51
53
|
--show-dir "/path/to/show" \
|
|
52
54
|
--season 1 \
|
|
53
|
-
--get-subs
|
|
54
|
-
--dry-run
|
|
55
|
+
--get-subs \
|
|
56
|
+
--dry-run
|
|
55
57
|
```
|
|
56
58
|
|
|
57
59
|
## Logging
|
|
@@ -34,7 +34,7 @@ Find the appropriate CUDA version and upgrade Torch (e.g., for CUDA 12.4) from t
|
|
|
34
34
|
pip install -U torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
|
|
35
35
|
|
|
36
36
|
# Verify GPU availability
|
|
37
|
-
mkv-match --check-gpu
|
|
37
|
+
mkv-match --check-gpu
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
### Development Installation
|
|
@@ -83,7 +83,7 @@ Verify your installation:
|
|
|
83
83
|
mkv-match --version
|
|
84
84
|
|
|
85
85
|
# Check GPU availability (if installed with GPU support)
|
|
86
|
-
mkv-match --check-gpu
|
|
86
|
+
mkv-match --check-gpu
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
## Troubleshooting
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Quick Start Guide
|
|
2
|
+
|
|
3
|
+
Get started with MKV Episode Matcher quickly and efficiently.
|
|
4
|
+
|
|
5
|
+
## Basic Usage
|
|
6
|
+
|
|
7
|
+
### 1. Interactive Mode
|
|
8
|
+
|
|
9
|
+
Simply run:
|
|
10
|
+
```bash
|
|
11
|
+
mkv-match
|
|
12
|
+
```
|
|
13
|
+
The program will guide you through the setup interactively.
|
|
14
|
+
|
|
15
|
+
### 2. Command Line Options
|
|
16
|
+
|
|
17
|
+
Process a specific season:
|
|
18
|
+
```bash
|
|
19
|
+
mkv-match --show-dir "/path/to/show" --season 1
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Process all seasons with subtitles:
|
|
23
|
+
```bash
|
|
24
|
+
mkv-match --show-dir "/path/to/show" --get-subs
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Test run with detailed output:
|
|
28
|
+
```bash
|
|
29
|
+
mkv-match --show-dir "/path/to/show" --dry-run --verbose
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Key Features
|
|
33
|
+
|
|
34
|
+
- Interactive setup
|
|
35
|
+
- Progress bars with ETA
|
|
36
|
+
- Detailed matching information
|
|
37
|
+
- Confidence-based matching
|
|
38
|
+
- Automatic subtitle downloads
|
|
39
|
+
- GPU acceleration support
|
|
40
|
+
|
|
41
|
+
## Directory Structure
|
|
42
|
+
|
|
43
|
+
Expected TV show organization:
|
|
44
|
+
```
|
|
45
|
+
Show Name/
|
|
46
|
+
├── Season 1/
|
|
47
|
+
│ ├── episode1.mkv
|
|
48
|
+
│ ├── episode2.mkv
|
|
49
|
+
├── Season 2/
|
|
50
|
+
│ ├── episode1.mkv
|
|
51
|
+
│ └── episode2.mkv
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Configuration
|
|
55
|
+
|
|
56
|
+
Configuration is stored at `~/.mkv-episode-matcher/config.ini`:
|
|
57
|
+
```ini
|
|
58
|
+
[Config]
|
|
59
|
+
tmdb_api_key = your_tmdb_api_key
|
|
60
|
+
show_dir = /path/to/show
|
|
61
|
+
open_subtitles_api_key = your_opensubs_key
|
|
62
|
+
open_subtitles_user_agent = your_user_agent
|
|
63
|
+
open_subtitles_username = your_username
|
|
64
|
+
open_subtitles_password = your_password
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Common Commands
|
|
68
|
+
|
|
69
|
+
### Check GPU Support
|
|
70
|
+
```bash
|
|
71
|
+
mkv-match --check-gpu true
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Set Confidence Level
|
|
75
|
+
```bash
|
|
76
|
+
mkv-match --show-dir "/path/to/show" --confidence 0.8
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Enable Verbose Output
|
|
80
|
+
```bash
|
|
81
|
+
mkv-match --show-dir "/path/to/show" --verbose true
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Next Steps
|
|
85
|
+
|
|
86
|
+
- Read [Installation Guide](installation.md) for setup details
|
|
87
|
+
- Check [Tips and Tricks](tips.md) for advanced usage
|
|
88
|
+
- See [API Reference](api/index.md) for development
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Tips and Tricks
|
|
2
|
+
|
|
3
|
+
## Best Practices
|
|
4
|
+
|
|
5
|
+
### Directory Organization
|
|
6
|
+
|
|
7
|
+
Organize your files consistently:
|
|
8
|
+
```
|
|
9
|
+
TV Shows/
|
|
10
|
+
├── Show Name/
|
|
11
|
+
│ ├── Season 1/
|
|
12
|
+
│ │ ├── episode1.mkv
|
|
13
|
+
│ │ └── episode2.mkv
|
|
14
|
+
│ └── Season 2/
|
|
15
|
+
│ ├── episode1.mkv
|
|
16
|
+
│ └── episode2.mkv
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Performance & Accuracy
|
|
20
|
+
|
|
21
|
+
1. **Confidence Threshold**
|
|
22
|
+
```bash
|
|
23
|
+
# Increase matching accuracy (default: 0.7)
|
|
24
|
+
mkv-match --show-dir "/path/to/show" --confidence 0.8
|
|
25
|
+
```
|
|
26
|
+
Start with a higher value and decrease if needed. Lower values may result in false positives.
|
|
27
|
+
|
|
28
|
+
2. **Batch Processing with Progress**
|
|
29
|
+
The tool now shows detailed progress for each season:
|
|
30
|
+
```bash
|
|
31
|
+
mkv-match --show-dir "/path/to/show"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
3. **Speech Recognition**
|
|
35
|
+
- Uses Whisper for audio analysis
|
|
36
|
+
- Processes files in parallel for speed
|
|
37
|
+
- Shows real-time progress with completion estimates
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## Advanced Usage
|
|
41
|
+
|
|
42
|
+
### Testing Changes
|
|
43
|
+
|
|
44
|
+
Always use dry-run first:
|
|
45
|
+
```bash
|
|
46
|
+
mkv-match --show-dir "/path/to/show" --dry-run true
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Debug Output
|
|
50
|
+
|
|
51
|
+
Enable verbose logging:
|
|
52
|
+
```bash
|
|
53
|
+
mkv-match --show-dir "/path/to/show" -v
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Log Files
|
|
57
|
+
|
|
58
|
+
Check the logs at:
|
|
59
|
+
```
|
|
60
|
+
~/.mkv-episode-matcher/logs/
|
|
61
|
+
├── stdout.log # General operation logs
|
|
62
|
+
└── stderr.log # Error and warning logs
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Troubleshooting
|
|
66
|
+
|
|
67
|
+
### Common Issues
|
|
68
|
+
|
|
69
|
+
1. **File Permission Errors**
|
|
70
|
+
```bash
|
|
71
|
+
# Check file permissions
|
|
72
|
+
chmod -R 644 "/path/to/show"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
2. **API Rate Limits**
|
|
76
|
+
- Use rate limiting in configuration
|
|
77
|
+
- Implement exponential backoff
|
|
78
|
+
|
|
79
|
+
3. **Speech Recognition**
|
|
80
|
+
- GPU recommended for faster processing
|
|
81
|
+
- Processing happens in 30s intervals
|
|
82
|
+
- More accurate than OCR-based methods
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
4. **Low Confidence Matches**
|
|
86
|
+
- Increase confidence threshold
|
|
87
|
+
- Check reference subtitles for accuracy
|
|
88
|
+
|
|
89
|
+
5. **No Matches Found**
|
|
90
|
+
- Verify file organization
|
|
91
|
+
- Check reference subtitles
|
|
92
|
+
- Enable verbose output
|
|
93
|
+
|
|
94
|
+
6. **Performance Issues**
|
|
95
|
+
- Process one season at a time
|
|
96
|
+
- Check available disk space
|
|
97
|
+
- Monitor system resources
|
|
@@ -10,6 +10,7 @@ import torch
|
|
|
10
10
|
import whisper
|
|
11
11
|
from loguru import logger
|
|
12
12
|
from rapidfuzz import fuzz
|
|
13
|
+
from utils import extract_season_episode
|
|
13
14
|
|
|
14
15
|
console = Console()
|
|
15
16
|
|
|
@@ -127,13 +128,19 @@ class EpisodeMatcher:
|
|
|
127
128
|
confidence = self.chunk_score(chunk_text, ref_text)
|
|
128
129
|
|
|
129
130
|
if confidence > best_confidence:
|
|
131
|
+
print(f"New best confidence: {confidence} for {ref_file}")
|
|
130
132
|
best_confidence = confidence
|
|
131
|
-
best_match = ref_file
|
|
133
|
+
best_match = Path(ref_file)
|
|
132
134
|
|
|
133
135
|
if confidence > self.min_confidence:
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
season,
|
|
136
|
+
print(f"Matched with {best_match} (confidence: {best_confidence:.2f})")
|
|
137
|
+
try:
|
|
138
|
+
season,episode = extract_season_episode(best_match.stem)
|
|
139
|
+
except Exception as e:
|
|
140
|
+
print(f"Error extracting season/episode: {e}")
|
|
141
|
+
continue
|
|
142
|
+
print(f"Season: {season}, Episode: {episode} (confidence: {best_confidence:.2f})")
|
|
143
|
+
if season and episode:
|
|
137
144
|
return {
|
|
138
145
|
"season": season,
|
|
139
146
|
"episode": episode,
|
{mkv_episode_matcher-0.7.0 → mkv_episode_matcher-0.7.2}/mkv_episode_matcher.egg-info/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: mkv-episode-matcher
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
4
4
|
Summary: The MKV Episode Matcher is a tool for identifying TV series episodes from MKV files and renaming the files accordingly.
|
|
5
5
|
Home-page: https://github.com/Jsakkos/mkv-episode-matcher
|
|
6
6
|
Author: Jonathan Sakkos
|
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
16
16
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
17
|
-
Requires-Python:
|
|
17
|
+
Requires-Python: <3.13,>=3.9
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
Requires-Dist: configparser>=7.1.0
|
|
20
20
|
Requires-Dist: ffmpeg>=1.4
|
|
@@ -58,7 +58,7 @@ Automatically match and rename your MKV TV episodes using The Movie Database (TM
|
|
|
58
58
|
|
|
59
59
|
## Prerequisites
|
|
60
60
|
|
|
61
|
-
- Python 3.9
|
|
61
|
+
- Python 3.9-3.12
|
|
62
62
|
- [FFmpeg](https://ffmpeg.org/download.html) installed and available in system PATH
|
|
63
63
|
- TMDb API key (optional, for subtitle downloads)
|
|
64
64
|
- OpenSubtitles account (optional, for subtitle downloads)
|
|
@@ -21,7 +21,7 @@ classifiers = [
|
|
|
21
21
|
authors = [
|
|
22
22
|
{ name = "Jsakkos", email = "jonathansakkos@gmail.com" },
|
|
23
23
|
]
|
|
24
|
-
requires-python = ">=3.9"
|
|
24
|
+
requires-python = ">=3.9,<3.13"
|
|
25
25
|
dependencies = [
|
|
26
26
|
"configparser>=7.1.0",
|
|
27
27
|
"ffmpeg>=1.4",
|
|
@@ -51,6 +51,9 @@ dev = [
|
|
|
51
51
|
"pytest>=8.3.3",
|
|
52
52
|
"ruff>=0.8.0",
|
|
53
53
|
"chardet>=5.2.0",
|
|
54
|
+
"matplotlib>=3.9.4",
|
|
55
|
+
"memory-profiler>=0.61.0",
|
|
56
|
+
"line-profiler>=4.2.0",
|
|
54
57
|
]
|
|
55
58
|
|
|
56
59
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[metadata]
|
|
2
2
|
name = mkv_episode_matcher
|
|
3
|
-
version = 0.7.
|
|
3
|
+
version = 0.7.2
|
|
4
4
|
author = Jonathan Sakkos
|
|
5
5
|
author_email = jonathansakkos@gmail.com
|
|
6
6
|
description = The MKV Episode Matcher is a tool for identifying TV series episodes from MKV files and renaming the files accordingly.
|