Skip to content

Commit 3e3e17b

Browse files
committed
+ home + "/media/hulu/PlayReady",
1 parent 98464f9 commit 3e3e17b

File tree

4 files changed

+46
-20
lines changed

4 files changed

+46
-20
lines changed

hulu/hulu_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func TestPlayReady(t *testing.T) {
3535
t.Fatal(err)
3636
}
3737
err = os.WriteFile(
38-
home + "/media/hulu/DashPrServer",
38+
home + "/media/hulu/PlayReady",
3939
[]byte(play.DashPrServer), os.ModePerm,
4040
)
4141
if err != nil {

nbc/nbc.go

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,30 @@ import (
1515
"time"
1616
)
1717

18-
const drm_proxy_secret = "Whn8QFuLFM7Heiz6fYCYga7cYPM8ARe6"
18+
func playReady() *url.URL {
19+
now := fmt.Sprint(time.Now().UnixMilli())
20+
hash := func() string {
21+
secret := hmac.New(sha256.New, []byte(drm_proxy_secret))
22+
fmt.Fprint(secret, now, "playready")
23+
return fmt.Sprintf("%x", secret.Sum(nil))
24+
}()
25+
return &url.URL{
26+
Scheme: "https",
27+
Host: "drmproxy.digitalsvc.apps.nbcuni.com",
28+
Path: "/drm-proxy/license/playready",
29+
RawQuery: url.Values{
30+
"device": {"web"},
31+
"hash": {hash},
32+
"time": {now},
33+
}.Encode(),
34+
}
35+
}
1936

2037
func Widevine(data []byte) ([]byte, error) {
21-
time1 := fmt.Sprint(time.Now().UnixMilli())
38+
now := fmt.Sprint(time.Now().UnixMilli())
2239
hash := func() string {
2340
hash1 := hmac.New(sha256.New, []byte(drm_proxy_secret))
24-
fmt.Fprint(hash1, time1, "widevine")
41+
fmt.Fprint(hash1, now, "widevine")
2542
return fmt.Sprintf("%x", hash1.Sum(nil))
2643
}()
2744
req, err := http.NewRequest(
@@ -35,7 +52,7 @@ func Widevine(data []byte) ([]byte, error) {
3552
req.URL.RawQuery = url.Values{
3653
"device": {"web"},
3754
"hash": {hash},
38-
"time": {time1},
55+
"time": {now},
3956
}.Encode()
4057
req.Header.Set("content-type", "application/octet-stream")
4158
resp, err := http.DefaultClient.Do(req)
@@ -46,6 +63,8 @@ func Widevine(data []byte) ([]byte, error) {
4663
return io.ReadAll(resp.Body)
4764
}
4865

66+
const drm_proxy_secret = "Whn8QFuLFM7Heiz6fYCYga7cYPM8ARe6"
67+
4968
type Vod struct {
5069
PlaybackUrl string // MPD
5170
}

nbc/nbc_test.go

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,29 @@ package nbc
22

33
import (
44
"fmt"
5+
"os"
56
"testing"
6-
"time"
77
)
88

9-
var tests = []struct {
9+
func TestPlayReady(t *testing.T) {
10+
home, err := os.UserHomeDir()
11+
if err != nil {
12+
t.Fatal(err)
13+
}
14+
err = os.WriteFile(
15+
home + "/media/nbc/PlayReady",
16+
[]byte(playReady().String()), os.ModePerm,
17+
)
18+
if err != nil {
19+
t.Fatal(err)
20+
}
21+
}
22+
23+
func TestVideo(t *testing.T) {
24+
fmt.Println(video_tests)
25+
}
26+
27+
var video_tests = []struct {
1028
url string
1129
program string
1230
id int
@@ -30,15 +48,3 @@ var tests = []struct {
3048
url: "nbc.com/saturday-night-live/video/march-30-ramy-youssef/9000283435",
3149
},
3250
}
33-
34-
func Test(t *testing.T) {
35-
for _, test1 := range tests {
36-
var meta Metadata
37-
err := meta.New(test1.id)
38-
if err != nil {
39-
t.Fatal(err)
40-
}
41-
fmt.Println(meta)
42-
time.Sleep(time.Second)
43-
}
44-
}

rakuten/rakuten_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ func Test(t *testing.T) {
3737
t.Fatal(err)
3838
}
3939
err = os.WriteFile(
40-
home + "/media/rakuten/Pr", []byte(info.LicenseUrl), os.ModePerm,
40+
home + "/media/rakuten/PlayReady",
41+
[]byte(info.LicenseUrl), os.ModePerm,
4142
)
4243
if err != nil {
4344
t.Fatal(err)

0 commit comments

Comments
 (0)