VrokSub released!

Saturday, March 15, 2008

VrokSub released!



UPDATED VERSION 1.10
UPDATE 5/11/2008: Made it so it works with the new version of the opensubtitles api

This command line program will automatically download subtitles for your movies, rename your movies using a customized format, create folders for your movies and download imdb covers and details. You just pass a folder path and a preferred language list and it searches for subtitles using your avi files. It uses opensubtitles for the search and it requires the .net 2 framework runtimes which you probably already have.

Useage:

vroksub.exe "[Folder Path]" [Language Code Sequence] [Params]

Folder Path: The path to the folder that has all your movies. VrokSub will search all subfolders of this path for movies.

Language Code Sequence: A sequence of two letter language codes according to your preference separated by coma. You can find the two letter codes here: http://www.loc.gov/standards/iso639-2/php/code_list.php VrokSub will search subtitles of the first language code and if it doesn't find one it will continue to the next code.

Params:
/rename will rename all the movies for which vroksub has found a subtitle using the format found in vroksub.exe.config.
/newonly will only try to locate subtitles for movies without subtitles and ignore the ones that have subtitles already
/nfo will download data from imdb.com (like actors, directors etc) and save them to a .nfo file named like your movie
/covers will download the cover images imdb uses and save them to a .jpg file named like your movie
/folders will create a folder for each movie and move all files there. If /covers is used with this then a folder.jpg will also be created so that whenever you browser your output folder with explorer's thumbnail view, this cover will be displayed over the folder icon.
/move="[Output Path]" will move all files and folders for movies who's subtitles were found to the given path. Useful if combined with /folders so you don't have both old and new folders in the same directory

Config:
Edit your vroksub.exe.config to alter the way vroksub renames your movie files with /rename or creates folders with /folders.

CDFormat is the format used for the current CD. %C is the CD number.
FileFormat is the format used for renaming your movies. %M is movie, %C is the CD string after format and %Y is year
Example1: %M renames to Casablanca
Example2: %M(%Y)%C renames to Casablanca(1942)-CD1.avi
FolderFormat is the format used for the /folders parameter to get each folder's name.
Example1: %M%Y creates outputPath\Casablanca(1942)
Example2: %Y\\%M creates outputPath\1942\Casablanca

Examples:

vroksub.exe "c:\my videos" gr,en

This will first try to locate a greek subtitle for every movie in c:\my videos (including subfolders) and if it doesn't find one it will try to find one in english. You can use more language codes if you'd like.

vroksub.exe "c:\my videos" gr,en /rename
will also rename all movies where subtitle has been found with the format found in vroksub.exe.config. default: MovieName(Year)-CD2.avi

vroksub.exe "c:\my videos" gr,en /newonly
will only search for subtitles for movies that don't have a subtitle already.

vroksub.exe "c:\unsubbedvideos" nl /rename /folders /nfo /covers /move="c:\my videos"
1) Creates a folder for each movie under "c:\my videos" with the name format found in vroksub.exe.config
2) Renames each movie using the format found in vroksub.exe.config
3) Downloads dutch subtitles for each movie
4) Downloads imdb details and saves them to the output folder
5) Downloads imdb covers and saves them to the output folder as folder.jpg and movie.jpg

Note: Only movies with found subtitles will be affected (the language sequence parameter is required)

Download it here: VrokSub 1.10
Older version: VrokSub 1.00

57 comments:

Anonymous said...

Link updated!

http://elgeek.com/2008/03/25/vroksub-baja-subtitulos-para-tus-videos/

Vrokolos said...

Thanks

Leif said...

The previous version did not work for me and when I saw that an update was available I had my doubts. But now it works flawlessly! Thanks, man!
Greetings from Sweden!

Anesh & Bina said...

Great App man! you rule.

is there anyway you can bypass the subtitle being found so that it processes all movies?

Thanks!

Vrokolos said...

To Anesh & Bina:

When this ticket gets implemented by the admin of the opensubtitles.com site, I will.
http://trac.opensubtitles.org/projects/opensubtitles/ticket/106

Zenia said...

Very good application, thank you! The only thing is if any file within folder is "busy" or unreachable (locked by another process), program seems to stop working correctly.

Nika said...

Great tool! Shouldn't it be possible to use folder names for the scanning and/or rar-files (just the way they could be downloaded)?

Vrok said...

Hey Nika! Can you clarify a bit since I couldn't understand that completely?

Nika said...

Hi Vrok,

Well - just before I went on holiday I wanted to download each movie-description of some downloaded movies (for private copies / easy viewing instead of having to bring full DVD's off course :)). I play the downloaded movies directly from their rar's (without unrarring) using Dziobas rar-player (another must-have, great tool!), which also takes the sub from the same folder. When using VrokSub, I had to unrar the avi first before it was able to detect the movie and download the description & cover...It would have been great & saved me much time, if unrrarring is not necessary...

Nevertheless - the way it is now, is already really cool, thanks for that! :)

Regards,

Nika.

PS. I've added your page to ChangeDetection.com, one more really cool tool/page, which works perfectly for your page:
http://www.changedetection.com/log/blogspot/vrokolos/vroksub-released_log.html

Padin Fazelian said...

Hi, i downloaded your prog, but i can not use it here in workplace bcoz it does not support proxy server. Then i searched anywhere to find a way to set proxy server for .Net 2 applications. I found a way by changing the content of web.config, but it also didn't work. Can you help me how to get use of this useful application? mail me @ padinium@gmail.com. thx in advance.

Vrok said...

To Nika: I use a batch file to first unrar and move every avi to a folder and then run vroksub on the decompressed movies..

Let me grab it for you:
unrar e -r -sm300000000 -y -o- -n*.avi c:\downloads\*.rar c:\videos\unsubbed
FOR /F "usebackq delims==" %%i IN (`dir c:\downloads\*.avi /b /s`) DO move /Y "%%i" c:\videos\unsubbed
vroksub.exe c:\videos\unsubbed gr,en /nfo /rename /folders /imdb /covers /move="c:\videos"

I believe you can understand most of it.. I was already thinking about rar support but since I don't have much time right now (started full time job) it's going to take some time. Thanks!

Vrok said...

To: padin

I'm sorry but I haven't thought about using a proxy yet.. maybe in next version

tipsen said...

I was successful using your tool at first but after a while I started getting the following error:
...
Downloading subtitles...
Unhandled Exception: CookComputing.XmlRpc.XmlRpcTypeMismatchException: response
contains boolean value where array expected [response : struct mapped to type su
bdata : member data mapped to type subtitle[]]
at CookComputing.XmlRpc.XmlRpcSerializer.ParseBoolean(XmlNode node, Type Valu
eType, ParseStack parseStack, MappingAction mappingAction)
at CookComputing.XmlRpc.XmlRpcSerializer.ParseValue(XmlNode node, Type ValueT
ype, ParseStack parseStack, MappingAction mappingAction, Type& ParsedType, Type&
ParsedArrayType)
at CookComputing.XmlRpc.XmlRpcSerializer.ParseValue(XmlNode node, Type ValueT
ype, ParseStack parseStack, MappingAction mappingAction)
at CookComputing.XmlRpc.XmlRpcSerializer.ParseStruct(XmlNode node, Type value
Type, ParseStack parseStack, MappingAction mappingAction)
at CookComputing.XmlRpc.XmlRpcSerializer.ParseValue(XmlNode node, Type ValueT
ype, ParseStack parseStack, MappingAction mappingAction, Type& ParsedType, Type&
ParsedArrayType)
at CookComputing.XmlRpc.XmlRpcSerializer.ParseValue(XmlNode node, Type ValueT
ype, ParseStack parseStack, MappingAction mappingAction)
at CookComputing.XmlRpc.XmlRpcSerializer.DeserializeResponse(XmlDocument xdoc
, Type returnType)
at CookComputing.XmlRpc.XmlRpcSerializer.DeserializeResponse(Stream stm, Type
svcType)
at CookComputing.XmlRpc.XmlRpcClientProtocol.ReadResponse(XmlRpcRequest req,
WebResponse webResp, Stream respStm, Type returnType)
at CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(Object clientObj, MethodI
nfo mi, Object[] parameters)
at CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(MethodInfo mi, Object[] P
arameters)
at XmlRpcProxy3db92675-7f6f-459f-8fdd-38541bde9749.DownloadSubtitles(String ,
String[] )
at OSDbClient.Program.Go(String FolderArg, String outputPath, String LangArg,
Boolean overwrite, Boolean rename, Boolean newOnly, Boolean nfo, Boolean folder
s, Boolean imdb, Boolean covers)
at OSDbClient.Program.Main(String[] args)

Broky said...

Maybe I'm dum ass but I don't know how to work this program. I keep getting error messages. Can anybody explain to me how to work with program? Tnx

Svein T said...

Is this not working anymore? I run it and it says "Found subtitles:", then it says "Disconnecting" and nothing seems to have happened. Can't find the subtitles anywhere.
But I noticed you need to register to download from opensubtitle.com, so maybe that's it? Please help me out.

Vrok said...

svein: Yes I noticed that too.. I will try to figure out what's wrong.. probably something changed in opensubtitles.com.

Tommy Ipsen said...

I'm also encountering the problems described by svein t - it's worked fine until the last couple of days/weeks.
I hope you track down the error - it's a nice little time-saver you've made :-)
/Tommy

Sean said...

Yeah, It broke about 2 weeks ago, on a Sunday I believe... ;) Very nice app my friend! I have ~700 movies that I need to rename.

Rikard said...

I want to use this app to download folder.jpg's to my DVD-collection.
But, as the DVD-collection uses the structure "X:\DVD\Some Film\VIDEO_TS" and "X:\DVD\Some Other Film\VIDEO_TS" the scanner says:
X:\>VrokSub.exe X:\DVD /covers
Searching for movie files
Found 0 Movie Files
Creating subtitle request from movie files
Connecting...
No movies found
Searching for subtitles...
Found subtitles:
Downloading covers...
Disconnecting...

Anonymous said...

Have you been able to figure out the bug yet?

Regards, An anxious user of vroksub :-)

sXe said...

Is it working again?

Vrok said...

I'm sorry I had no internet for the last days. I'll try fixing it ASAP

Djordje Vasiljevic said...

Did you fix it?

Rogger said...

I'm also looking forward to an fixed version, I really liked your program!
Thanx you in advance!

Vandaahl said...

this is a great idea

been trying this but didnt read the comments so now i see its not working anymore
seems like a change in opensubtitles.com indeed

i hope you can fix it since this is a VERY nice prog!!!!!

Tommy Ipsen said...

I'm really missing this fancy little utility - any chance of you fixing it or are you busy with other stuff?
Cheers, Tommy

Helper said...

Look here - > http://forum.opensubtitles.org/viewtopic.php?p=5117#5117

Anonymous said...

Sorry to be a little pushy, but this is the only tool I've found which can do the subtitle download automatically.

Anyway.. Have you found the problem?

Vrok said...

link updated

hope it's fixed now

Tommy Ipsen said...

I can't find the new version - it seems like the version on googlepages is even older than the one I had before - and it crashes when trying to run it!?

Shane said...

I'm running this in Vista from a cmd window with administrator rights. I have a file named hancock.avi in a similarly named folder (I've tried a couple of movies). Here is what I get:

C:\>vroksub.exe "c:\hancock" en
Found 1 Movie Files
Connecting...

Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
at OSDbClient.Program.Go(String FolderArg, String LangArg, Boolean overwrite,
Boolean rename, Boolean newOnly)
at OSDbClient.Program.Main(String[] args)

Any idea what I am doing wrong?

gato said...

Hey Vrok,
It seems that your app could solve all my problems!
But I get an error when I try to execute it:

C:\Documents and Settings\user\Desktop\VrokSub>vroksub.exe C:\movies en /rename
Found 4 Movie Files
Connecting...

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at OSDbClient.Program.Go(String FolderArg, String LangArg, Boolean overwrite, Boolean rename, Boolean newOnly)
at OSDbClient.Program.Main(String[] args)

More info:

- File names without strange symbols. Just ASCII and .avi extension

- My system configuration:

· Windows XP sp3
· .NET 2.0 sp1
· No proxy
· No antivirus
· Firewalled (but external connections allowed) - tried without firewall, same results

- sniffing traffic, I get an error from 92.240.234.126 (opensubtitles.org)
...-string- 411 Empty or invalid useragent -/string-...

Also, in your blog you mention a vroksub.exe.config configuration file, but I didn't found it, nor instructions to create it.

Any ideas?

Thanks for your efforts anyway!
gato

Vrok said...

Also, in your blog you mention a vroksub.exe.config

I uploaded a new zip - same name - including the config file.

Check it out now please

gato said...

Hi,
Thanks for the quick response.

Tried with the config file in the same directory as the .exe binary, but still the same error:

Found 4 Movie Files
Connecting...

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
at OSDbClient.Program.Go(String FolderArg, String LangArg, Boolean overwrite, Boolean rename, Boolean newOnly)
at OSDbClient.Program.Main(String[] args)

And the network sniff gives a response packet from opensubs.org with (what seems) an error message:
"411 Empty or invalid useragent"

Must the config file be referenced in any special way?

Thanks in advance,
gato

Vrok said...

Sorry but it's a bit hard to make it work correctly. Lots of changes on opensubtitles.org API.

I requested a useragent and I released a new version.

I get download limit reached on my PC. Can you try it now?

gato said...

Hi,
Worked like a charm!
(I love this expression)

I think your application is a true jewel!

It renames files (not the folders, where the films are in, though) perfectly.

The ouput text is a bit confusing when using /newonly, because it implies that it will re-download the already existing ones.

Maybe a log file with more verbose could be useful, also to debug purposes.

I'll try with some TV series, but I don't expect too many results from opensubs.

Thanks a lot for your efforts. I'll continue using it and reporting.

Cheers,
gato

Anonymous said...

i realy like the idea off this app but i cant get it to work...

here is a file with the errors i had:

http://www.mediafire.com/file/5jntkdnymr3/VrokSub.txt

thanks ;)

Vrok said...

I'm sorry about that error but I don't think I'm able to do anything about it. It's a 407 download limit reached error returned by the server and instead of downloading the subtitles it returns an error message.

I asked for opensubtitles support on this.

I get that error myself

cjulio said...

i am sorry to be annoyance but i was thinking (and this is only one idea)
cant you go around it and leave the subtitle download to do after everything else...
that way movies would be organized and you could keep the original name in the NFO in case the subtitles are not downloaded....

thanks ;)

Tommy Ipsen said...

I just downloaded the new version and it seems to find results from opensubtitles.org but afterwards I'm getting the same error as mentioned in the anonymous post above. Apparently it's a 407 download limit reached error which I find strange since this is my first actual try to download anything from opensubtitles in ages!
/Tipsen

Anonymous said...

When I use the latest version of VrokSub, I keep getting the following error message :

Unhandled Exception: System.TypeInitializationException: The type initializer fo
r 'OSDbClient.Program' threw an exception. ---> System.NullReferenceException: O
bject reference not set to an instance of an object.
at OSDbClient.Program..cctor()
--- End of inner exception stack trace ---
at OSDbClient.Program.Main(String[] args)

Do you have any idea how to fix this ??

Vrok said...

System.TypeInitializationException
check if all files are in the same directory, are uncompressed and you've got .net framework 2.

Tommy: keep trying with the same version to see if os fixes it

gato said...

Hi,
Same 407 error here.

I don't know if it's an opensubs error, because I'm triying subdownloader (similar program, but no renaming) and don't have problems downloading 32 movies subtitles.

Maybe there's a difference in some vroksub's request parameters... user login?

Cheers

juliomgm said...

I have searched the web for something that would organize my movies the way this app was supposed to work and cant find anything.

So i really, really, REALLY wanted to use it.... ;)

the prob is it isnt working :(

why (for now)(and this is just one idea)dont you change things a little and create one version that doesnt download the subtitles but does all the rest..
1 - search opensub get information for file.
2 - don't donwload subs.
3 - download all the rest and then save in the nfo the initial name off the movie.

Vrok said...

I reuploaded 1.10 version. Download it and try it out.

Changed a single property in request: "Keepalive = false"

It works for me

Please post here if it works for you too

Kobe said...

Hi Vrok,
I like your app, Really nice job!
May it be possible to submit subtitles if found locally and not found on OpenSubtitles?
It would tremendously enlarge their DB and we all would benefit from that.

Anonymous said...

hi i love your app... thanks ;)

just one thing i have been having some trouble with some files....

i can find them when i make a search in OS but vroksub doesnt find them. the movie name is exactly the same but nothing happens :(

ex:
http://www.opensubtitles.org/en/subtitles/3389655/zack-and-miri-make-a-porno-pt

http://www.opensubtitles.org/en/subtitles/3404153/defiance-pb

i am using this command line:
vroksub.exe "c:\Multimedia" pt,pb/pob /rename /folders /nfo /move="D:\Filmes"

Vrok said...

Kobe:
[May it be possible to submit subtitles if found locally and not found on OpenSubtitles?]

That was on my plans initially but now I don't think I've got the time to implement it. Maybe later.

Anonymous:
[i can find them when i make a search in OS but vroksub doesnt find them. the movie name is exactly the same but nothing happens]

vroksub doesn't use the movie name to do the search. Even if you rename the movie to something completely different it will find the correct subtitles because it uses file hashes. I think it doesn't support pb/pob yet. Will implement that soon.

Anonymous said...

[i can find them when i make a search in OS but vroksub doesnt find them. the movie name is exactly the same but nothing happens]

isnt it possible to creat a switch to search by file name "/name 30" in my idead the way to work it would make a 2 pass to search files..
the first pass search for hash.
the second pass would seach for filename for files (videos) that are older than 30 days...

Vrok said...

Anonymous:
[isnt it possible to creat a switch to search by file name "/name 30" in my idead the way to work it would make a 2 pass to search files]

The problem with name searching is that you can't be sure that the subtitle will always be the correct-synchronized one for your movie version so if the first pass didn't find any subtitle then I suggest searching for the subtitle manually

Power said...

Is there any plan of publishing the source code or even making the project open source?

Vrok said...

Yes will go open source soon. I just need some time to get svn sorted

Power said...

Great! I have some suggestions and would like to help with some coding as well.

Anonymous said...

Would it be possible to choose the format of the subtitle ? For my mediaplayer to understand the subtitle it needs to be thesame name as the avi file. So I need a subtitle without the language extension. Would it be possible to drop the language extension if only 1 language is choosen ?
ex : vroksub.exe "c:\unsubbedvideos" nl -> movie.avi and movie.nl.srt -> movie.srt (without the .nl) Thanks

gamebabes said...

Power: vroksub is now open source: http://vroksub.googlecode.com

Anonymous: Everything is possible but I just don't have enough time right now..

Instead of waiting for me though you can also try using some command line renamers to rename every *.nl.srt to *.srt

Kobe said...

Hi Vrok,
Just wanted to say that making vroksub an open-source is a great step.
Hopefully, more people would be able to help you.
Great work.

Anonymous said...

Hi , I noticed the following error message today, Maybe something changed in opensubtitles.com ? :
Unhandled Exception: CookComputing.XmlRpc.XmlRpcServerException: Internal Server
Error
at CookComputing.XmlRpc.XmlRpcClientProtocol.ReadResponse(XmlRpcRequest req,
WebResponse webResp, Stream respStm, Type returnType)
at CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(Object clientObj, MethodI
nfo mi, Object[] parameters)
at CookComputing.XmlRpc.XmlRpcClientProtocol.Invoke(MethodInfo mi, Object[] P
arameters)
at XmlRpcProxya09adad6-bb4f-4a8e-8aba-3e904f301927.LogOut(String )
at OSDbClient.Program.Go(String FolderArg, String outputPath, String LangArg,
Boolean overwrite, Boolean rename, Boolean newOnly, Boolean nfo, Boolean folder
s, Boolean imdb, Boolean covers, Boolean nosubfolders)
at OSDbClient.Program.Main(String[] args)

Post a Comment