Skip to content

Commit 602ce31

Browse files
authored
Merge pull request #19 from cabbagekobe/feature/FlashAbolitionSupport
Flash player removal support
2 parents 62b3561 + bab1c8f commit 602ce31

File tree

2 files changed

+19
-32
lines changed

2 files changed

+19
-32
lines changed

auth.go

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,44 @@
11
package radiko
22

33
import (
4-
"bytes"
54
"context"
65
"encoding/base64"
76
"errors"
87
"fmt"
9-
"io"
108
"io/ioutil"
119
"strconv"
1210
"strings"
1311
)
1412

1513
// AuthorizeToken returns an enables auth_token and error,
1614
// and sets auth_token in Client.
17-
// Is is a alias function that wraps Auth1Fms and Auth2Fms.
15+
// Is is a alias function that wraps Auth1 and Auth2.
1816
func (c *Client) AuthorizeToken(ctx context.Context) (string, error) {
19-
bin, err := downloadBinary()
17+
authToken, length, offset, err := c.Auth1(ctx)
2018
if err != nil {
2119
return "", err
2220
}
2321

24-
f := bytes.NewReader(bin)
22+
b := radikoAuthkeyValue[offset : offset+length]
23+
partialKey := base64.StdEncoding.EncodeToString([]byte(b))
2524

26-
authToken, length, offset, err := c.Auth1Fms(ctx)
25+
slc, err := c.Auth2(ctx, authToken, partialKey)
2726
if err != nil {
2827
return "", err
2928
}
30-
31-
b := make([]byte, length)
32-
io.CopyN(ioutil.Discard, f, offset)
33-
if _, err = f.Read(b); err != nil {
34-
return "", err
35-
}
36-
partialKey := base64.StdEncoding.EncodeToString(b)
37-
38-
slc, err := c.Auth2Fms(ctx, authToken, partialKey)
39-
if err != nil {
40-
return "", err
41-
}
42-
if err := verifyAuth2FmsResponse(slc); err != nil {
29+
if err := verifyAuth2Response(slc); err != nil {
4330
return "", err
4431
}
4532

4633
c.setAuthTokenHeader(authToken)
4734
return authToken, nil
4835
}
4936

50-
// Auth1Fms returns authToken, keyLength, keyOffset and error.
51-
func (c *Client) Auth1Fms(ctx context.Context) (string, int64, int64, error) {
52-
apiEndpoint := apiPath(apiV2, "auth1_fms")
37+
// Auth1 returns authToken, keyLength, keyOffset and error.
38+
func (c *Client) Auth1(ctx context.Context) (string, int64, int64, error) {
39+
apiEndpoint := apiPath(apiV2, "auth1")
5340

54-
req, err := c.newRequest(ctx, "POST", apiEndpoint, &Params{
41+
req, err := c.newRequest(ctx, "GET", apiEndpoint, &Params{
5542
header: map[string]string{
5643
radikoAppHeader: radikoApp,
5744
radikoAppVersionHeader: radikoAppVersion,
@@ -85,14 +72,12 @@ func (c *Client) Auth1Fms(ctx context.Context) (string, int64, int64, error) {
8572
return authToken, length, offset, err
8673
}
8774

88-
// Auth2Fms enables the given authToken.
89-
func (c *Client) Auth2Fms(ctx context.Context, authToken, partialKey string) ([]string, error) {
90-
apiEndpoint := apiPath(apiV2, "auth2_fms")
75+
// Auth2 enables the given authToken.
76+
func (c *Client) Auth2(ctx context.Context, authToken, partialKey string) ([]string, error) {
77+
apiEndpoint := apiPath(apiV2, "auth2")
9178

92-
req, err := c.newRequest(ctx, "POST", apiEndpoint, &Params{
79+
req, err := c.newRequest(ctx, "GET", apiEndpoint, &Params{
9380
header: map[string]string{
94-
radikoAppHeader: radikoApp,
95-
radikoAppVersionHeader: radikoAppVersion,
9681
radikoUserHeader: radikoUser,
9782
radikoDeviceHeader: radikoDevice,
9883
radikoAuthTokenHeader: authToken,
@@ -118,7 +103,7 @@ func (c *Client) Auth2Fms(ctx context.Context, authToken, partialKey string) ([]
118103
return s, nil
119104
}
120105

121-
func verifyAuth2FmsResponse(slc []string) error {
106+
func verifyAuth2Response(slc []string) error {
122107
if len(slc) == 0 {
123108
return errors.New("missing token")
124109
}

client.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,10 @@ const (
3131
radikoKeyOffsetHeader = "X-Radiko-KeyOffset"
3232
radikoPartialKeyHeader = "X-Radiko-Partialkey"
3333

34-
radikoApp = "pc_ts"
35-
radikoAppVersion = "4.0.0"
34+
radikoAuthkeyValue = "bcd151073c03b352e1ef2fd66c32209da9ca0afa"
35+
36+
radikoApp = "pc_html5"
37+
radikoAppVersion = "0.0.1"
3638
radikoUser = "test-stream"
3739
radikoDevice = "pc"
3840
)

0 commit comments

Comments
 (0)