emericg / OpenSubtitlesDownload

Automatically find and download the right subtitles for your favorite videos!
https://emeric.io/OpenSubtitlesDownload
GNU General Public License v3.0
595 stars 65 forks source link

add option to search by IMDB ID #74

Closed joedefen closed 3 years ago

joedefen commented 3 years ago

I added added options to use IMDB IDs for searching. Very quickly after starting to use this (otherwise great) tool, I found a number of files for which the hash and filename did not suffice; just two examples:

I suspect the "extra" year in the filename is blowing the search in these cases.

So, I added three options:

For movies, only --imdb is needed. For TV shows, all three options are advisable especially if using --auto also (or you don't want to select from a long list of subtitles); but there may be cases where it makes sense to provide the full option set for a TV show.

I put in a restriction that if you specify --imdb, then you may only give one video file, and I enforce it in the code. These new options are very valuable when:

BTW, I make two more gratuitous modifications having nothing to do with this feature:

Thanks for your consideration; for my use case, I need this feature. For others that are frustrated when the tool fails to find subtitles or the the wrong subtitles, they now have a remedy easier than fully manual repair.

joedefen commented 3 years ago

Nevermind.

emericg commented 3 years ago

?

joedefen commented 3 years ago

Well, a couple things made me regret this submission.

So, thanks ... I found this project very useful and very inspiring, but not exactly what I want; and I'm sure my planned refactoring and enhancements will be MUCH more than you care to review or test (even if were to try keep it feature compatible).

emericg commented 3 years ago

Alright no problem I understand ^^ Have fun with the refactor, and do not hesitate to keep the fork public if interested people want to use it.

Personnaly I mostly use this with the GUI and linux, all of the CLI features are ok with me as long as they do not go to deep in very specific use cases.

joedefen commented 2 years ago

FYI, inspired by your project and others, I created a more comprehensive download-and-synchronize project (https://github.com/joedefen/subshop). You seem to be content with the manual approach, and that is fine if it suffices. But, I desire full automation with a small number of manual repairs.

My variation on your approach to choose subtitles is described here (https://github.com/joedefen/subshop#choosing-subtitles-to-download). Basically, the code tries to find the IMDB automatically, cleans up the title search by parsing the filename (which seems to help), and searches several ways (including the hash), scores the closeness of the title match, considers the length of the video and candidate subtitles, and then uses weights to get a grand total score. So, the problem of where to "fit" the IMDB search was solved by weights eventually.

After download, the final step is to sync the subtitles to the video, score the fit, and replace the current subtitles if the fit is better. A very poor score usually indicates you downloaded the wrong subtitles; so, that helps with creating exceptions to be repaired.

Since the scope of my project is wildly expanded (in many areas and contracted in others), keeping the "fork public" was not an option, but there are large fragments of your code in my project. Not sure if you cared for an update, but there you have it. Cheers.

emericg commented 2 years ago

Since the scope of my project is wildly expanded (in many areas and contracted in others), keeping the "fork public" was not an option, but there are large fragments of your code in my project. Not sure if you cared for an update, but there you have it. Cheers.

Indeed the approach and scope of the projects are now quite different... Don't worry about a public fork, I'm just happy you could build upon this code! Thanks for the update, it's great to see what you've done with your idea. It seems to be a well thought project, and you found some neat tools to integrate too, I wish you all the best :)