Я собирался написать о проекте, который я сделал около 5 месяцев назад, и о том, как он привлек внимание майора Нельсона и вскоре был закрыт.

Он был построен с помощью javascript и размещен на github.

Что вы сделали?

Для тех, кто не знает, Xbox One позволяет записывать игровые клипы и снимки экрана и делиться ими. Круто правда?

Я купил Xbox One и играю на нем почти всю ночь, слушая подкасты. При перечислении эпизода 355 подкаста «Петушиные зубы». В нем они говорили о возможности делиться и просматривать видео друг друга и о том, что невозможно увидеть материал, которым пользователь не делится (частные).

Что ж, у меня случился момент безумия, и я начал делать javascript-скрипт и веб-сайт, который позволил бы вам получать видео и игровые клипы пользователя по этому тегу игрока.

Как это сработало?

Сначала я зашел на сайт xbox.com, так как там можно просмотреть свои игровые клипы и скриншоты. Я открыл инструменты разработчика в Chrome и посмотрел на вкладку сети для любых загружаемых файлов JSON.

Я заметил, что загружаются два файла

https://account.xbox.com/en-us/gameclips/loadByUser?gamerTag=rob%20gabriel

и

https://account.xbox.com/en-us/gameclips/loadByUser?gamerTag=rob%20gabriel

Что ж, забавно было то, что для этих вызовов не было никакой авторизации, поэтому, заменив мой тег игрока на любой другой, он загружал видео или скриншоты с этим тегом игрока.

Итак, файл json выглядел так

{  
   "result":true,
   "data":{  
      "ContinuationToken":null,
      "Screenshots":[  
         {  
            "Id":"9e8a5803-a495-4a29-b21a-c64602434393",
            "Scid":"c4060100-4951-4a51-a630-dce26c15b8c5",
            "Name":"",
            "Uri":"http://screenshotscontent-t5002.xboxlive.com/000900000284f400-9e8a5803-a495-4a29-b21a-c64602434393/Screenshot-Original.png?sv=2014-02-14\u0026sr=c\u0026sig=K8Tn%2FgFZeSH8hi6porRPNC18RXkIIfveQoKa00D6zp4%3D\u0026st=2015-09-07T21%3A31%3A54Z\u0026se=2015-09-07T22%3A36%3A54Z\u0026sp=r\u0026__gda__=1441665414_1a6bf18ae80dc665c7f877f53f10d049",
            "Preview":"http://screenshotscontent-t5002.xboxlive.com/000900000284f400-9e8a5803-a495-4a29-b21a-c64602434393/Thumbnail_Large.PNG",
            "Thumbnail":"http://screenshotscontent-t5002.xboxlive.com/000900000284f400-9e8a5803-a495-4a29-b21a-c64602434393/Thumbnail_Small.PNG",
            "Expiration":"2015-09-07T22:36:54.5126079Z",
            "Duration":0,
            "CaptureTime":"Uploaded 8/5/2015",
            "ViewCount":4,
            "Views":"4 views",
            "TitleId":1813362885,
            "TitleName":"FIFA 14",
            "TitleLink":"https://store.xbox.com/en-US/Xbox-One/Games/FIFA-14/f04f7029-01ea-4d65-988b-56f583fb7f6c",
            "OwnerGamerTag":null,
            "OwnerProfile":null,
            "OwnerGamerPic":null
         },
         {  
            "Id":"196aad38-cc91-4760-9beb-fb0c07e0c8a5",
            "Scid":"1b180100-2e72-4297-a9e6-b79d5a9771a4",
            "Name":"",
            "Uri":"http://screenshotscontent-t4002.xboxlive.com/000900000284f400-196aad38-cc91-4760-9beb-fb0c07e0c8a5/Screenshot-Original.png?sv=2014-02-14\u0026sr=c\u0026sig=s9dqA1I%2Bdjv1oTxM%2FmX%2B0tYj8RD2eysCWgp1XAQ6xA4%3D\u0026st=2015-09-07T21%3A31%3A54Z\u0026se=2015-09-07T22%3A36%3A54Z\u0026sp=r\u0026__gda__=1441665414_379050eaf43b062e85d9af7811df2300",
            "Preview":"http://screenshotscontent-t4002.xboxlive.com/000900000284f400-196aad38-cc91-4760-9beb-fb0c07e0c8a5/Thumbnail_Large.PNG",
            "Thumbnail":"http://screenshotscontent-t4002.xboxlive.com/000900000284f400-196aad38-cc91-4760-9beb-fb0c07e0c8a5/Thumbnail_Small.PNG",
            "Expiration":"2015-09-07T22:36:54.5126079Z",
            "Duration":0,
            "CaptureTime":"Uploaded 5/30/2015",
            "ViewCount":0,
            "Views":"0 views",
            "TitleId":1519874468,
            "TitleName":"Forza Horizon 2 Presents Fast \u0026 Furious",
            "TitleLink":"https://store.xbox.com/en-US/Xbox-One/Games/Forza-Horizon-2-Presents-Fast-Furious/aaae1849-53dc-453f-8b38-27955610925d",
            "OwnerGamerTag":null,
            "OwnerProfile":null,
            "OwnerGamerPic":null
         }
      ]
   }
}

Одним из основных моментов является ContinuationToken, в котором игровые клипы и снимки экрана загружаются только по 12 за раз. поэтому, если бы у вас было больше 12, вам нужно было бы передать ContinuationToken в параметре следующим образом

https://account.xbox.com/en-us/gameclips/loadByUser?gamerTag=rob%20gabriel&ContinuationToken=token

Напоминаем, что вы можете получить доступ к коду здесь. Я построил несколько приспособлений, чтобы можно было оценить и сделать такие варианты.

<body onload="xboxOneMedia.Init(0,'screenshots','Rob Gabriel',899,899,1);">

Итак, паратмары (флаги), которые вам нужно отправить, следующие:

  • Флаг: 1 соответствует всем скриншотам/видео, 0 соответствует случайному скриншоту/видео.
  • Тип: screenshots означает снимок экрана. gameclips означает видео
  • gamerTag : Тег игрока, из которого вы хотите получать видео.
  • width : ширина видеоплеера.
  • height : высота видеоплеера.
  • Количество видео/изображений: если вы хотите ограничить его.

Что случилось ?

Итак, после двух часов разработки. В 3 часа ночи я разместил его на Reddit здесь. Поклонникам петушиных зубов, которые дали отличные отзывы, комментарии и поделились ими в Интернете. Но был один комментарий, который сделал его хитом. Следует отметить, что я разрешил вам загружать и сохранять видео и снимки экрана.

Так примерно через 4 месяца после этого на него поставили авторизацию для файлов json. Так что я больше не мог получить доступ к игровым клипам :(. Это было сделано из-за меня? Может быть. Но мне нравится так думать :)

Это отличный и забавный материал, весь код здесь, а демо-сайт здесь, также проверьте мой твиттер и веб-сайт.