1
mirror of https://github.com/nilaoda/N_m3u8DL-CLI synced 2025-09-10 12:40:52 +02:00

Compare commits

..

10 Commits
2.4.7 ... 2.4.9

Author SHA1 Message Date
nilaoda
809380b7ab 修正VIKI下载JS 2020-02-11 23:59:37 +08:00
nilaoda
ab57420507 增加基于Firefox的网易云课堂KEY获取教程 2020-02-02 01:23:52 +08:00
nilaoda
80230f12fe 增加网易云课堂KEY获取教程 2020-02-02 00:43:55 +08:00
nilaoda
a6c7c0fd8c ?__gda__行为优化 2020-01-31 21:39:05 +08:00
nilaoda
bd6df6b58c JS增加naver tv 2020-01-31 21:38:27 +08:00
nilaoda
e0a9071d62 修改超链接错误 2020-01-30 19:16:11 +08:00
nilaoda
5c9bcf72d2 更新OnDemandChina获取JS 2020-01-29 23:48:15 +08:00
nilaoda
7cf2c12d0c 增加OnDemandChina获取JS 2020-01-29 23:41:03 +08:00
nilaoda
1b35fe2d2c Update DownloadManager.cs 2020-01-29 22:45:26 +08:00
nilaoda
ed3aae1cb9 v2.4.7 2020-01-29 22:28:07 +08:00
26 changed files with 752 additions and 27 deletions

View File

@@ -410,7 +410,7 @@ namespace N_m3u8DL_CLI
foreach (string s in Global.GetFiles(DownDir + "\\Part_0", ".ts"))
{
//跳过有MAP的情况
if (!File.Exists(DownDir + "\\Part_0\\!MAP.ts") && !FFmpeg.CheckMPEGTS(s))
if (!isVTT && !File.Exists(DownDir + "\\Part_0\\!MAP.ts") && !FFmpeg.CheckMPEGTS(s))
{
//转换
LOGGER.PrintLine("将文件转换到 MPEG-TS 封装:" + Path.GetFileName(s));
@@ -558,7 +558,7 @@ namespace N_m3u8DL_CLI
foreach (string s in Global.GetFiles(DownDir, ".ts"))
{
//跳过有MAP的情况
if (!File.Exists(DownDir + "\\!MAP.ts") && !FFmpeg.CheckMPEGTS(s))
if (!isVTT && !File.Exists(DownDir + "\\!MAP.ts") && !FFmpeg.CheckMPEGTS(s))
{
//转换
LOGGER.PrintLine("将文件转换到 MPEG-TS 封装:" + Path.GetFileName(s));

View File

@@ -30,8 +30,8 @@ namespace N_m3u8DL_CLI
/*===============================================================================*/
static string nowVer = "2.4.6";
static string nowDate = "20191228";
static string nowVer = "2.4.8";
static string nowDate = "20200131";
public static void WriteInit()
{
Console.Clear();

View File

@@ -111,6 +111,9 @@ namespace N_m3u8DL_CLI
if (m3u8Content.Contains("qiqiuyun.net/") || m3u8Content.Contains("aliyunedu.net/") || m3u8Content.Contains("qncdn.edusoho.net/")) //气球云
isQiQiuYun = true;
if (M3u8Url.Contains("tlivecloud-playback-cdn.ysp.cctv.cn") && M3u8Url.Contains("endtime="))
isEndlist = true;
//输出m3u8文件
File.WriteAllText(m3u8SavePath, m3u8Content);
@@ -210,10 +213,10 @@ namespace N_m3u8DL_CLI
segments = (JArray)parts[parts.Count - 1];
parts.RemoveAt(parts.Count - 1);
hasAd = false;
continue;
continue;
}
//常规情况的#EXT-X-DISCONTINUITY标记新建part
if (!hasAd && segments.Count > 1)
if (!hasAd && segments.Count > 1)
{
parts.Add(segments);
segments = new JArray();
@@ -225,7 +228,7 @@ namespace N_m3u8DL_CLI
else if (line.StartsWith(HLSTags.ext_x_version)) ;
else if (line.StartsWith(HLSTags.ext_x_allow_cache)) ;
//解析KEY
else if (line.StartsWith(HLSTags.ext_x_key) && string.IsNullOrEmpty(keyFile) && string.IsNullOrEmpty(keyBase64))
else if (line.StartsWith(HLSTags.ext_x_key) && string.IsNullOrEmpty(keyFile) && string.IsNullOrEmpty(keyBase64))
{
m3u8CurrentKey = ParseKey(line);
//存储为上一行的key信息
@@ -276,7 +279,10 @@ namespace N_m3u8DL_CLI
if (Global.GetTagAttribute(line, "TYPE") == "AUDIO")
MEDIA_AUDIO.Add(Global.GetTagAttribute(line, "GROUP-ID"), CombineURL(BaseUrl, Global.GetTagAttribute(line, "URI")));
if (Global.GetTagAttribute(line, "TYPE") == "SUBTITLES")
MEDIA_SUB.Add(Global.GetTagAttribute(line, "GROUP-ID"), CombineURL(BaseUrl, Global.GetTagAttribute(line, "URI")));
{
if (!MEDIA_SUB.ContainsKey(Global.GetTagAttribute(line, "GROUP-ID")))
MEDIA_SUB.Add(Global.GetTagAttribute(line, "GROUP-ID"), CombineURL(BaseUrl, Global.GetTagAttribute(line, "URI")));
}
}
else if (line.StartsWith(HLSTags.ext_x_playlist_type)) ;
else if (line.StartsWith(HLSTags.ext_i_frames_only))
@@ -312,7 +318,7 @@ namespace N_m3u8DL_CLI
else if (expectSegment)
{
segUrl = CombineURL(BaseUrl, line);
if (M3u8Url.Contains("akamaized.net") && M3u8Url.Contains("?__gda__"))
if (M3u8Url.Contains("?__gda__"))
{
segUrl += new Regex("\\?__gda__.*").Match(M3u8Url).Value;
}
@@ -342,7 +348,7 @@ namespace N_m3u8DL_CLI
{
string listUrl;
listUrl = CombineURL(BaseUrl, line);
if (M3u8Url.Contains("akamaized.net") && M3u8Url.Contains("?__gda__"))
if (M3u8Url.Contains("?__gda__"))
{
listUrl += new Regex("\\?__gda__.*").Match(M3u8Url).Value;
}

View File

@@ -215,6 +215,13 @@ namespace N_m3u8DL_CLI.NetCore
/// - 修复part大于1时读取json混流文件的严重错误
/// - 自动去除优酷的广告分片及前情提要
/// - 修复腾讯视频HDR10视频下载合并异常问题
/// 2020年1月26日
/// - 在央视频回看链接且有endtime参数的情况下不识别为直播流
/// 2020年1月29日
/// - 修复识别大师列表的bug (多个字幕同一个GROUP-ID)
/// - 修复vtt字幕无法正常合并的bug
/// 2020年1月31日
/// - ?__gda__行为优化
/// </summary>
///

550
docs/163study.html Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB