zerratar / subsync Goto Github PK
View Code? Open in Web Editor NEWAutomatically download subtitles for your movies
License: MIT License
Automatically download subtitles for your movies
License: MIT License
Running subsync.exe with the most basic command like no parameters at all or just specific the downloads folder returns this error for every movie file found "Object reference not set to an instance of an object"
I found this bug, fixed it, and created a pull request.
You can close it when you want!
Either web, desktop using Electron so it's cross-platform, or compiled binary for Mac? Currently it seems this only works on Windows.. leaving a lot of us users out.. would love to have a standalone alternative to VLSub which also stopped working correctly for me
sorry to post here, but i dont now how to get it to work, should i put all the files in my movies folder?
edit:
i now it now but it gives some error:
Excepção não processada: System.ArgumentException: O nome de directório D:\Torrents" é inválido.
em System.IO.FileSystemWatcher..ctor(String path, String filter)
em SubSync.SubtitleSynchronizer.Start() em E:\git\SubSync\src\SubSync\Logic\SubtitleSynchronizer.cs:line 50
em SubSync.Program.Main(String[] args) em E:\git\SubSync\src\SubSync\Program.cs:line 60
i put it:
SubSync.exe "D:\Torrents"
does it go for subfolders also?
Forgive me, I am new at this. I already opened the SubSync file and pressed Ctrl+Alt+B. My question is where do I put the SubSync.exe "D:\My Awesome Movies"?
First time running with the new --resync option:
PS D:\SubSync> dotnet run --project .\src\SubSync\SubSync.csproj \\c3p0\storage\media -resync -exit
...
Synchronizing Mary Poppins (1964) [720] [tt0058331].avi
[DBG] get-async: 'Mary Poppins (1964) [720] [tt0058331].avi'
[DBG] OpenSubtitles login successefull
[DBG] Searching for 'Mary Poppins (1964) [720] [tt0058331].avi'...
[DBG] Searching with query 'Mary Poppins (1964) [720] [tt0058331].avi'...
Synchronization of Mary Poppins (1964) [720] [tt0058331].avi failed with: Cannot create a file when that file already exists
They don't all fail, but a significant percentage do.
Apparently this parameter stopped working since last update as the commando :
SubSync.exe "D:\Media" -lang spanish
Is not listing any movie file... but when I run it without the -lang parameter, it start scrapping all movie files.
I have an external HDD I use for storing movies on, where the root is F:
(on my PC), and it simply contains folders containing movies. The problem is trying to get subs recursively. There are obviously some hidden system folders like F:\$RECYCLE.BIN
which will crash the program when it attempts to access them.
I had a previous issue myself on minor personal project before, and found it could be easily solved while enumerating directories with something akin to this:
var info = new DirectoryInfo(path);
var root = info.Root.FullName == info.FullName;
if (!root && info.Attributes.HasFlag(FileAttributes.System))
continue;
"C:\Users\USERNAME\Desktop\Tools-SubsDL\SubSync\SubSync.exe" "D:--DOWNLOADS FOR NAS" -lang dutch;english
Is my .bat file yet it doesn't do anything, just runs Subsync but nothing gets ever downloaded.
When I remove the -lang arguement it starts working but of course only downloads the English subtitles which are fun but not perfect.
PS D:\SubSync> dotnet run --project .\src\SubSync\SubSync.csproj \\c3p0\storage\media -exit
...
Synchronizing Will & Grace - S07E16 - Dance Cards and Greeting Cards DVD.avi
[DBG] get-async: 'Will & Grace - S07E16 - Dance Cards and Greeting Cards DVD.avi'
[DBG] Searching for 'Will & Grace - S07E16 - Dance Cards and Greeting Cards DVD.avi'...
[DBG] Searching with query 'Will & Grace - S07E16 - Dance Cards and Greeting Cards DVD.avi'...
Synchronization of Will & Grace - S07E16 - Dance Cards and Greeting Cards DVD.avi failed with: Use ExtractAllEntries to extract SOLID archives.
I found a .rar file in the S07 directory with the following properties (not sure it's related, but it is solid
):
Rather than leaving SubSync running I would like it to exit when finished. Maybe --exit on the command line or similar?
This would allow me to schedule it to run instead of tying up a console window.
I have a large number of subtitles that are out of sync with their attached video. It would be nice if I could specify a flag to overwrite them (--overwrite?) so that I can get the latest/greatest versions.
Running the include binary or the binary from the release package causes the following error on my Win10 system:
Error:
An assembly specified in the application dependencies manifest (SubSync.deps.json) was not found:
package: 'SharpCompress', version: '0.20.0'
path: 'lib/netstandard2.0/SharpCompress.dll'
SubSync doesn't work when it has cyrillic letter in a path. I tried couple paths, same error everytime
When specifying the language, does it not follow the normal naming conventions? e.g. -lang French,English
should result in <title> (<year>).fr.srt
or <title> (<year>).en.srt
.
I'd like to be able to have it download multiple languages as we often have students from other countries staying with us (mostly Japan) and it's a treat for them to watch a movie with us in English but have the subtitles in their language. The rest of the time we like subtitles in English (mostly cause volume is low when kids are in bed). I don't mind running it multiple times, once per language, I just don't want subsequent runs overwriting English with German, etc.
You might have noticed that some subtitles fails and gives you an error saying it failed to download after 3 tries.
This is most likely caused by the fact that it couldnt find anything but it can also be an error code returned from the server that is not properly handled or just an out right bug in SubSync.
Since I've got a limited time I can work on this project, I need your help! The moment you see the error message, could any of you guys post the video filenames so I can try and reproduce the issue? The more, the better! Let's get SubSync to work more reliably!
For anyone that posts to this issue, I thank you! You just helped to make SubSync even better!
After a few hundred (thousand?) requests all requests start failing. I think it is likely my IP Address has reached a limit and SubScene is now hard blocking me. The logging doesn't indicate the reason it failed but when it goes from only the odd requests here and there failing to every request failing I think thats probably a good indicator.
If the there was a configurable delay between requests this could help mitigate outright blocking.
Launching with:
PS D:\SubSync\> dotnet run --project .\src\SubSync\SubSync.csproj '\\C3P0\Storage\media\TV\Bull (2016)\'
...
Following folder and its subfolders being watched
\\C3P0\Storage\media\TV\Bull (2016)"
...
Unhandled Exception: System.ArgumentException: The directory name \\C3P0\Storage\media\TV\Bull (2016)" is invalid.
Parameter name: path
at System.IO.FileSystemWatcher..ctor(String path, String filter)
at SubSyncLib.Logic.SubtitleSynchronizer.Start() in D:\Source\3rdParty\SubSync\src\SubSyncLib\Logic\SubtitleSynchronizer.cs:line 53
at SubSyncLib.Program.Main(String[] args) in D:\Source\3rdParty\SubSync\src\SubSyncLib\Program.cs:line 66
at SubSync.Program.Main(String[] args) in D:\Source\3rdParty\SubSync\src\SubSync\Program.cs:line 10
The same path without the trailing \
runs fine.
If being run and it finds files in sub directories it crashes with the PathTooLongException and you have to run it again. Would be nice if it didn't crash and instead just ignores it. Potentially make a log of ignored files / output to console.
Unhandled Exception: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.GetFullPathInternal(String path)
at System.IO.FileInfo.Init(String fileName, Boolean checkHost)
at System.IO.FileInfo..ctor(String fileName)
at SubSync.Processors.SubSyncMediaWatcher.IsSynchronized(String filePath)
at SubSync.Processors.SubSyncMediaWatcher.Sync(String fullFilePath)
at SubSync.Extensions.EnumerableExtensions.ForEach[T](IEnumerable1 enumerable, Action
1 body)
at SubSync.Processors.SubSyncMediaWatcher.SyncAll()
at SubSync.Processors.SubSyncMediaWatcher.Start()
at SubSync.Program.Main(String[] args)
In https://github.com/zerratar/SubSync/tree/v0.1.4 release I can't see *.exe file!
Just upgraded from 1.4 to 1.6.2 and ran the script for my movies and series and it worked great.
The problem is that for all my series it seems like I have reached the limit for how many subtitles it can download. If I play a clip the subtitle says In order to continue you have to login for the whole movie..
I created an account at OpenSubtitles and entered the info in Opensubtitles.auth-file but I got the same "error". Did some research and it seems like there is a limit on 100 Subtitles per 24 hours and 1000 if you pay for VIP.
I'm wondering if its possible to see if the API-returns that you have reached the limit and not download the file. Right now it downloaded 100's of 1kb .srt-files that said that I have to login.
If anyone else had the same problem here is a batch script that will remove all .srt-files that are smaller than 200kb in this folder and all subfolders.
@echo off
setlocal
for /f "usebackq delims=;" %%A in (`dir /s /b *.srt`) do If %%~zA LSS 200 del "%%A"
pause
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.