- tab : for firefox only ,to get tab's url to decide whether auto refresh or alert.
- cookies : for force setting radiko.jp's current location.
- storage : for storing your location configuration.
- webRequest : modify request to pass the authentication.
- webRequestBlocking : modify request to pass the authentication.
- ://.radiko.jp/* : the only site we aimed at.
- declartiveContent : [TODO] for showing icon only on radiko pages.But firefox does not support this api.When firefox supports this api,tab permission will not be required.
-
How it works?
The authentication of pc(html5) version radkio validates user's location via ip address.
However the android version of radkio validates user via geolocation provided by GPS(if possible),not via user's ip.
So why don't we use the authentication method of android version in pc to bypass ip check?
The authentication includes two step:
-
auth1
request : platform_info , user_id
response : a token to be valid, full_key_offset ,partial_key_length
-
auth2
request: token ,platform_info ,user_id, a parital key generated by full key and offset , connection type (in android), gps location(in android)
response: Your location (and your token is valid for only this location) / OUT
In the pc version,the full key is simplely placed in the javascript code in
apps/js/playerCommon.js
:player = new RadikoJSPlayer($audio[0], 'pc_html5', 'bcd151073c03b352e1ef2fd66c32209da9ca0afa' /*full key*/ ...
However the android version's full key is protected by native dynamic librarys.Obviously the key is much longer than that in pc version.
-
-
But how do you generate the partialkey/how do you get fullkey?
TODO
- Fake request headers more similarly (such as remove cookies and set accept,user agent,and etc) to avoid detection due to the limitation of extension , cannot captialize some header's key
- Automatic switch location , no need for manually choice.
- Add recording function?
- Force Firefox android load web page,not app download page.