Я собирался написать о проекте, который я сделал около 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. Так что я больше не мог получить доступ к игровым клипам :(. Это было сделано из-за меня? Может быть. Но мне нравится так думать :)
Это отличный и забавный материал, весь код здесь, а демо-сайт здесь, также проверьте мой твиттер и веб-сайт.