public IList<Sub> GetCandidateSubs(Video video, bool searchInComments, Dictionary<string, string> cache)
        {
            Console.WriteLine();
            Console.WriteLine("Text used to seach subtitle is: {0}", video.GetSearchString());
            Console.WriteLine("Release Group to match: {0}", video.ReleaseGroup);

            this.login();

            var candidateSubs = new List<Sub>();
            var subdivxClient = new CookieAwareWebClient(this.loginCookies);
            subdivxClient.Headers["User-Agent"] = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))";

            var page = 1;

            while (page > 0)
            {
                var url = this.GetUrl(video.GetSearchString(), page);

                string output;
                if (cache.ContainsKey(url))
                {
                    output = cache[url];
                }
                else
                {
                    output = subdivxClient.DownloadString(url);
                    cache.Add(url, output);
                }

                var doc = new HtmlDocument();
                doc.LoadHtml(output);
                var subsHtmlNodes = doc.DocumentNode.Descendants("div").Where(div => div.GetAttributeValue("id", string.Empty).Equals("buscador_detalle"));

                if (subsHtmlNodes.Count() == 0)
                {
                    page = -1;
                }
                else
                {
                    foreach (var subHtmlNode in subsHtmlNodes)
                    {
                        var subComments = string.Empty;
                        if (searchInComments)
                        {
                            subComments = this.GetSubComments(subdivxClient, subHtmlNode);
                        }

                        var sub = new Sub(subHtmlNode, subComments);

                        if (sub.Matches(video))
                        {
                            candidateSubs.Add(sub);
                        }
                    }
                }

                page++;
            }

            candidateSubs.Sort(new Sub.SubComparer());

            return candidateSubs;
        }