@@ -13,7 +13,7 @@ import (
13
13
)
14
14
15
15
var reNHPlayerURL = regexp .MustCompile (`https://nhplayer\.com/v/[^/"]+` )
16
- var rePlayerURL = regexp .MustCompile (`/player.php\?u=( [^"&]+) ` )
16
+ var rePlayerURL = regexp .MustCompile (`/player.php\?[^"]+ ` )
17
17
var reHTStreamingVideoURL = regexp .MustCompile (`https://htstreaming.com/video/([^"]*)` )
18
18
19
19
type extractor struct {}
@@ -61,12 +61,19 @@ func extractData(URL string) (*static.Data, error) {
61
61
return htstreaming .ExtractData (videoURL )
62
62
}
63
63
64
- playerURL := rePlayerURL .FindStringSubmatch (htmlString )
65
- if len (playerURL ) < 2 {
64
+ // non htstreaming video
65
+
66
+ matchedPlayerURL := rePlayerURL .FindString (htmlString )
67
+ if len (matchedPlayerURL ) < 2 {
66
68
return nil , static .ErrDataSourceParseFailed
67
69
}
68
70
69
- b64Path , err := base64 .StdEncoding .DecodeString (playerURL [1 ])
71
+ playerURL , err := url .Parse (matchedPlayerURL )
72
+ if err != nil {
73
+ return nil , err
74
+ }
75
+
76
+ b64Path , err := base64 .StdEncoding .DecodeString (playerURL .Query ().Get ("u" ))
70
77
if err != nil {
71
78
return nil , err
72
79
}
@@ -82,6 +89,23 @@ func extractData(URL string) (*static.Data, error) {
82
89
83
90
size , _ := request .Size (videoURL , URL )
84
91
92
+ captions := []* static.Caption {}
93
+ subtitleQuery := playerURL .Query ().Get ("s" )
94
+ if subtitleQuery != "" {
95
+ b64Path , err := base64 .StdEncoding .DecodeString (subtitleQuery )
96
+ if err != nil {
97
+ return nil , err
98
+ }
99
+ subtitleURL := string (b64Path )
100
+ captions = append (captions , & static.Caption {
101
+ URL : static.URL {
102
+ URL : subtitleURL ,
103
+ Ext : utils .GetFileExt (subtitleURL ),
104
+ },
105
+ Language : "English" ,
106
+ })
107
+ }
108
+
85
109
return & static.Data {
86
110
Site : baseURL .Host ,
87
111
Title : title ,
@@ -98,6 +122,7 @@ func extractData(URL string) (*static.Data, error) {
98
122
Size : size ,
99
123
},
100
124
},
101
- URL : URL ,
125
+ Captions : captions ,
126
+ URL : URL ,
102
127
}, nil
103
128
}
0 commit comments