I just made a vb .net app that can search for subtitles using movie hash but i have stucked on how to get subtitles by query.
i have tryied a lot of thing to get results using query (movie name) but without success.
To get subs with hash search im using this class:
Code: Select all
Imports CookComputing.XmlRpc
Public Structure LoginRequest
Public token As String
Public status As String
Public seconds As Double
End Structure
Public Structure LogoutRequest
Public status As String
Public seconds As Double
End Structure
Public Structure FileDet
Public sublanguageid As String
Public moviehash As String
Public moviebytesize As Double
End Structure
Public Structure DataReturn
Public IDSubMovieFile As String
Public MovieHash As String
Public MovieByteSize As String
Public MovieTimeMS As String
Public IDSubtitleFile As String
Public SubFileName As String
Public SubActualCD As String
Public SubSize As String
Public SubHash As String
Public IDSubtitle As String
Public UserID As String
Public SubLanguageID As String
Public SubFormat As String
Public SubSumCD As String
Public SubAuthorComment As String
Public SubAddDate As String
Public SubBad As String
Public SubRating As String
Public SubDownloadsCnt As String
Public MovieReleaseName As String
Public IDMovie As String
Public IDMovieImdb As String
Public MovieName As String
Public MovieNameEng As String
Public MovieYear As String
Public MovieImdbRating As String
Public UserNickName As String
Public ISO639 As String
Public LanguageName As String
Public SubDownloadLink As String
Public ZipDownloadLink As String
End Structure
Public Structure SubReturn
Public data As DataReturn()
Public seconds As Double
End Structure
Public Structure SubTitlefl
Public idsubtitlefile As String
Public data As String
End Structure
Public Structure Downsubs
Public status As String
Public data As SubTitlefl()
Public seconds As Double
End Structure
Public Structure srchsubfilt
End Structure
Public Structure Getsublangstrct
Public SubLanguageID As String
Public LanguageName As String
Public ISO639 As String
End Structure
Public Structure Getsublang
Public data As Getsublangstrct()
Public seconds As Double
End Structure
<XmlRpcUrl("http://api.opensubtitles.org/xml-rpc")> _
Public Interface Opensubhub
Inherits IXmlRpcProxy
<XmlRpcMethod("LogIn")> _
Function LogIn(usename As String, password As String, language As String, useragent As String) As LoginRequest
<XmlRpcMethod("LogOut")> _
Function LogOut(token As String) As LogoutRequest
<XmlRpcMethod("SearchSubtitles")> _
Function SearchSubtitles(token As String, detail As FileDet()) As SubReturn
<XmlRpcMethod("GetSubLanguages")> _
Function GetSubLanguages(language As String) As Getsublang
End Interface
Code: Select all
Dim Client As New WebClient()
If IsConnectedToInternet() Then
Dim subhub As Opensubhub = DirectCast(XmlRpcProxyGen.Create(GetType(Opensubhub)), Opensubhub)
hashsize = ComputeMovieHash(paths)
hashcode = ToHexadecimal(hashsize)
Dim info As New FileInfo(paths)
Dim bytesize As Double = info.Length
Dim inrequest As LoginRequest
Dim outrequest As LogoutRequest
Dim detail As FileDet() = New FileDet(0) {}
Dim returndetails As SubReturn
Try
inrequest = subhub.LogIn("", "", "en", "OS Test User Agent")
detail(0).sublanguageid = subsLang
detail(0).moviehash = hashcode
detail(0).moviebytesize = bytesize
returndetails = subhub.SearchSubtitles(inrequest.token, detail)
rest of the code...