nfl.py 970 B

12345678910111213141516171819202122232425262728
  1. import json
  2. from .common import TokenGenerator
  3. class NFLTokenGenerator(TokenGenerator):
  4. _AUTHORIZATION = None
  5. def generate(ie, anvack, mcp_id):
  6. if not NFLTokenGenerator._AUTHORIZATION:
  7. reroute = ie._download_json(
  8. 'https://api.nfl.com/v1/reroute', mcp_id,
  9. data=b'grant_type=client_credentials',
  10. headers={'X-Domain-Id': 100})
  11. NFLTokenGenerator._AUTHORIZATION = '%s %s' % (reroute.get('token_type') or 'Bearer', reroute['access_token'])
  12. return ie._download_json(
  13. 'https://api.nfl.com/v3/shield/', mcp_id, data=json.dumps({
  14. 'query': '''{
  15. viewer {
  16. mediaToken(anvack: "%s", id: %s) {
  17. token
  18. }
  19. }
  20. }''' % (anvack, mcp_id),
  21. }).encode(), headers={
  22. 'Authorization': NFLTokenGenerator._AUTHORIZATION,
  23. 'Content-Type': 'application/json',
  24. })['data']['viewer']['mediaToken']['token']