示例#1
0
        private ChunksFile getChunksFile(string playlistM3U8)
        {
            ChunksFile chunks = new ChunksFile();

            chunks.Url     = cache.GetContent(data.formatChunksFileUrl(wantedQuality), data.VideoId);
            chunks.Content = cache.GetContent(data.formatChunksFileContent(wantedQuality), data.VideoId);

            if (chunks.Content == null || chunks.Url == null)
            {
                chunks = fetchAndCacheChunksFile(playlistM3U8);
            }

            return(chunks);
        }
示例#2
0
        private void parsePlaylist(string playlistM3U8)
        {
            chunks = getChunksFile(playlistM3U8);
            var allChunkNames = parseChunksFile(chunks.Content);

            chunkNames = new List <string>();

            foreach (var chunkName in allChunkNames)
            {
                if (!cache.HasFile(chunkName, data.VideoId))
                {
                    chunkNames.Add(chunkName);
                }
            }

            Console.WriteLine("There exists {0}/{1} of the needed chunks, downloading {2} chunks.",
                              allChunkNames.Count - chunkNames.Count, allChunkNames.Count, chunkNames.Count);

            totalUnits       = allChunkNames.Count;
            preExistingUnits = totalUnits - chunkNames.Count;
        }