Steam

Steam

35 ratings
User script for auto remove free games from your account (RU/ENG)
By niron
User script for auto remove free games (f2p, demo) from your account and information how to use it.

Скрипт для удаления бесплатных игр (f2p, demo) с аккаунта в автоматическом режиме, а также информация об его использовании.
 
Rate  
Favorite
Favorited
Unfavorite
Русский язык
Предисловие
В свое время я наткнулся на очень интересный СКРИПТ[steamdb.info], который добавлял на аккаунт все бесплатные игры и DLC. Скрипт конечно полезный... Он добавил мне пару игр (не f2p, а игры, которые дают +1 в библиотеку) и DLC, которые я бы сам врядли нашел. К тому же, как я слышал, некоторые игры переходили из разряда бесплатных в платные, и если игра была на аккаунте, то она там уже и оставалась.
Но после я зашел к себе на аккаунт и ужаснулся (и это мягко говоря): мне было добавлено очень много шлака более 2000 бесплатных игр и демок, которые мне не интересны (не нужны, не буду играть и т.д. и т.п.)


И тогда я задумался: как же мне тут навести порядок?!? По одной игре в ручную удалять?!? Более 2000 игр?!? Ну раз есть скрипт для добавления бесплатных игр, то должен быть и скрипт для их удаления, подумал я. И начал искать... Но не нашел. Поэтому я написал свой.
Мой код анализирует страницу лицензий и подписок и исходя из этого удаляет бесплатные игры (т.е. он работает адресно). Позже я находил скрипты, которые отправляют множество запросов на сервер в большом диапазоне значений, хотя удаляемых игр там менее 50% (это как пальцем в небо - вдруг где попаду). И вот такой скрипт я бы не хотел использовать, потому что из-за ошибки на сервере Вы можете потерять и платные игры.
Внимание!
Используйте этот скрипт на свой страх и риск. Если Вы решите, что Вам не нужно все это, не запускайте его. Я не несу ответственность за все, что произойдет с Вами и Вашей учетной записью после использования этого скрипта.
Скрипт
Версия скрипта Ver. 2.0.0
(function()
{
var warningString = 'Код не может быть выполнен здесь. Сейчас Вы будете автоматически перенаправлены на страницу, где Вам нужно будет еще раз запустить этот код. Если этого не случилось, пожалуйста, перейдите на страницу: store.steampowered.com/account/licenses/';
var analysisHeader = 'Выполняется анализ...';
var analysisText = 'Пожалуйста, подождите пока анализ не завершится.';
var headerString = 'Удаление игр';
var okString = 'Удалить';
var cancelString = 'Отмена';
var mainInfo = 'У Вас имеется <b id="numberGames"></b> игр(ы), которые можно удалить.<br/>Введите число игр для удаления в текстовое поле.';
var errorMessage = 'Введите целое число от 0 до ';
var removingHeader = 'Выполняется...';
var removingText = 'Не забудьте сказать спасибо, если Вам понравился скрипт;) Удалено:';
var noGamesToRemoveMessage = 'У Вас нет игр, которые можно удалить.'

if(location.href != 'https://store.steampowered.com/account/licenses/') {
alert(warningString);
window.location = 'https://store.steampowered.com/account/licenses/';
return;
}

var freeLicensePackages = [];
var modal = ShowBlockingWaitDialog(analysisHeader, analysisText);

jQuery('.free_license_remove_link a').each(function(i, el) {
var matched = decodeURI(el.href).match(/\d{4,}/);
if(matched !== null) {
freeLicensePackages.push (+matched);
}
});
modal.Dismiss();

var total = freeLicensePackages.length;
if (total == 0) {
alert(noGamesToRemoveMessage);
return;
}
var enteredNumber = total;

var desc = jQuery('<div class="newmodal_prompt_description">' + mainInfo + '</div><div><div class="newmodal_prompt_input gray_bevel for_text_input fullwidth"><input type="text" id="games_number" value="0"/><span style="display: none; color: rgb(255, 0, 0);"><small>' + errorMessage + total + '</small></span></div></div>');
var main = jQuery('<div class="newmodal" style="position: fixed; z-index: 1000; max-width: 900px; left: 300px; top: 95px;"><div class="newmodal_header_border"><div class="newmodal_header"><div class="ellipsis">' + headerString + '</div></div></div><div class="newmodal_content_border"><div class="newmodal_content" style="max-height: 205px;"><div id="mainDiv"></div><div class="newmodal_buttons"><div class="btn_green_white_innerfade btn_medium"><span id="okButton">' + okString + '</span></div><div class="btn_grey_white_innerfade btn_medium"><span id="cancelButton">' + cancelString + '</span></div></div></div></div></div><div class="newmodal_background" style="opacity: 0.8;"></div>');

jQuery('body').append(main);
jQuery('#cancelButton').on('click', function (event) {
jQuery('.newmodal').remove();
jQuery('.newmodal_background').remove();
});
jQuery('#mainDiv').html(desc);
jQuery('#numberGames').text(total);
jQuery('#games_number').val(total);
jQuery('#games_number').on('change', function (event) {
var input = jQuery(this);
var value = +input.val();
if (!Number.isInteger(value) || value > total || value <= 0) {
input.css('border-color', 'red');
input.next('span').show();
jQuery('#okButton').hide();
}
else {
enteredNumber = value;
input.css('border-color', '');
input.next('span').hide();
jQuery('#okButton').show();
}
});
jQuery('#okButton').on('click', function (event) {
var removed = 0;
for (var i = 0; i < enteredNumber; i++) {
jQuery.post('https://store.steampowered.com/account/removelicense', {
packageid: freeLicensePackages[i], sessionid: g_sessionID }
).always(function () {
removed++;
if (removed < enteredNumber) {
modal = ShowBlockingWaitDialog(removingHeader, removingText + ' <b>' + removed + '</b>/' + enteredNumber + '.');
}
else {
location.reload();
}
modal.Dismiss();
});
}
});
}());

Облегченная версия скрипта Ver1.0.1_Lite
В этой версии отсутствует проверка нахождение на нужной странице. И этот код удаляет все бесплатные игры, которые можно удалить. Т.е. скрипт не запрашивает, сколько Вы хотите удалить. Скрипт без "защиты от дурака". И на английском языке. Если будут заявки на русскую версию, то могу здесь опубликовать и с русским языком.
(function()
{ var freeLicensePackages = [];
var modal = ShowBlockingWaitDialog('Analyze...',
'Please wait until analysis is complete.');
jQuery('.free_license_remove_link a').each(function(i, el) {
var matched = decodeURI(el.href).match(/\d{4,}/);
if(matched !== null) {
freeLicensePackages.push (+matched);
}
} );
modal.Dismiss();
var total = freeLicensePackages.length;
alert('Don\'t forget to say thanks to the author of the script - niron (that\'s me;)');
var removed = 0;
for(var i = 0 ; i < total; i++ ) {
jQuery.post('https://store.steampowered.com/account/removelicense',
{ packageid: freeLicensePackages[i], sessionid: g_sessionID }
).always( function( ) {
removed++;
modal.Dismiss();
if( removed >= total ) {
location.reload();
}
else {
modal = ShowBlockingWaitDialog( 'Executing…',
'Don\'t forget to say thanks if You liked the script;) Removed <b>' + removed + '</b>/' + total + '.' );
}
}
);
}
}());
Как это работает?
При написании скрипта я использовал JavaScript, библиотеку jQuery (она подключена по умолчанию) и пару функций, реализованных разработчиками сайта store.steampowered.com

Скрипт работает только на странице https://store.steampowered.com/account/licenses/ (можно зайти так: Об аккаунте >> Лицензии и активации ключей). Но его можно запустить и на любой другой странице, хоть стартовой странице броузера, скрипт отправит на нужную страницу, где его нужно будет запустить еще раз.

Скрипт позволяет ввести необходимое число игр, которые хотите удалить (например только 50 из 100 возможных). В версии 2.0 появился полноценный UI.
Что нужно знать для запуска скрипта?
Скрипт нужно запускать через консоль. Если Вы вруг забыли как открыть консоль, то Вам сюда. Если нет, то ппреходите к следующему разделу

Браузер
Сочетание клавиш
Opera
Ctrl + Shift + I
Chrome
Ctrl + Shift + J или F12
Firefox
Ctrl + Shift + K или F12
Internet Explorer
F12, а затем перейти на вкладку “Консоль”
Microsoft Edge
F12, а затем перейти на вкладку “Консоль”
Safari
Cmd + Opt + C
Как это использовать?
А использовать этот скрипт очень легко!)
Дополнительно приводиться пример в браузере Mozilla Firefox 48.0.2.

  1. Открыть страницу Лицензии и ключи активации продуктов в браузере.
    Можно зайти и так: "Об аккаунте >> Лицензии и активации ключей". А можно запустить скрипт на любой странице, и он сам откроет нужную страницу.
    Конечно же Вы должны быть авторизованы (введен логин и пароль).
  2. Открыть консоль браузера.
    Если не знаете как, то для Вас написан предыдущий раздел.
  3. Скопировать скрипт и вставить его в консоль. Нажать Enter.
  4. После анализа будет выведено предложение об удалении всех доступных игр (у которых имеется кнопка "Удалить"). Или введите желаемое число игр для удаления. Если нажать Удалить, то запуститься процесс удаления. Если Отмена, то модальное окно закроется.
  5. Затем страница перезагружается, и мы видим что все получилось)
  6. Если же возникла ошибка, и не все игры удалились, то можно или еще раз запустить скрипт, или доудалять оставшиеся игры вручную.
  7. Затем можно сказать спасибо автору, оценить, добавить в избранное и поделиться с друзьями :)
Заключение
Руководство будет изменяться и дополняться. Если Вы нашли ошибку в тексте, есть хорошее предложение по изменению руководства или скрипта, то буду благодарен если сообщите. Также буду очень рад Вашим оценкам и адекватной критике :)

Уважайте труд других людей. Не нужно копировать, видоизменять и распространять эту информацию от своего имени. Можно просто помочь с изменением руководства и скрипта, а затем поделиться ими с друзьями и знакомыми.

Спасибо за просмотр!
English
The Preface
I used this script[steamdb.info] to add free games and DLC. This script was useful... It added some interesting free games and DLC. But this script added a lot of uninteresting games and demos too (more than 2500!)


And how do I remove this?!? Manually?!? More than 2500 games?!?
If there is a script to add, so must be a script to remove... But I have not found this.
So I wrote my script. And after a few month, I had the time to write this guide with the script
Attention!
Use this script at your own risk. If you will decide that you don't want all that, don't run the script in the first place. I am not responsible for anything that happens to you and your account after using this script.

Script
RemoveScript Ver1.0_Full_Eng
(function()
{
if(location.href != 'https://store.steampowered.com/account/licenses/')
{
alert('Code cannot be executed here. You will be automatically redirected to the correct page.\nPlease run this code on Steam\'s account page details: store.steampowered.com/account/licenses/');
window.location = 'https://store.steampowered.com/account/licenses/';
return;
}


var freeLicensePackages = [];
var modal = ShowBlockingWaitDialog('Analyze...',
'Please wait until analysis is complete.');
jQuery('.free_license_remove_link a').each(function(i, el)
{
var matched = decodeURI(el.href).match(/\d{4,}/);
if(matched !== null)
{
freeLicensePackages.push (+matched);
}
} );
modal.Dismiss();


var total = freeLicensePackages.length;
var correct = confirm('You have ' + (freeLicensePackages.length) + ' games, that you can remove. Do you want to remove all ' + total + ' games? \n' + 'Сlick OK to continue, or сancel to change the amount of removed games.');
while(!correct)
{
total = +prompt('Enter the number of games that you want to remove (max ' + freeLicensePackages.length + ').\nIf you change your mind to remove - enter the number 0.');
if (total !== null)
{
correct = confirm('Do you want to remove ' + total + ' games? \n' + 'Click OK to continue or Cancel to re-enter.' );
if (total < 0 || total > freeLicensePackages.length)
{
alert('You entered an invalid number! Enter a number from 0 to ' + freeLicensePackages.length + '.');
correct = false;
}
}
else
{
alert('You must enter a number from 0 to ' + freeLicensePackages.length );
correct = false;
}
}

alert('Don\'t forget to say thanks to the author of the script - niron (that\'s me;)');

var removed = 0;
for(var i = 0 ; i < total; i++ )
{
jQuery.post('https://store.steampowered.com/account/removelicense',
{
packageid: freeLicensePackages[i],
sessionid: g_sessionID
}
).always( function( )
{
removed++;
modal.Dismiss();

if( removed >= total )
{
location.reload();
}
else
{
modal = ShowBlockingWaitDialog( 'Executing…',
'Don\'t forget to say thanks if You liked the script;) Removed <b>' + removed + '</b>/' + total + '.' );
}
}
);
}

}());

RemoveScript Ver1.0_Lite
This code removes all free games that you can remove, without dialog windows and checks.
(function()
{
var freeLicensePackages = [];
var modal = ShowBlockingWaitDialog('Analyze...',
'Please wait until analysis is complete.');
jQuery('.free_license_remove_link a').each(function(i, el)
{
var matched = decodeURI(el.href).match(/\d{4,}/);
if(matched !== null)
{
freeLicensePackages.push (+matched);
}
} );
modal.Dismiss();

var total = freeLicensePackages.length;
alert('Don\'t forget to say thanks to the author of the script - niron (that\'s me;)');

var removed = 0;
for(var i = 0 ; i < total; i++ )
{
jQuery.post('https://store.steampowered.com/account/removelicense',
{
packageid: freeLicensePackages[i],
sessionid: g_sessionID
}
).always( function( )
{
removed++;
modal.Dismiss();

if( removed >= total )
{
location.reload();
}
else
{
modal = ShowBlockingWaitDialog( 'Executing…',
'Don\'t forget to say thanks if You liked the script;) Removed <b>' + removed + '</b>/' + total + '.' );
}
}
);
}

}());
How to open the console in your browsers?
The script needs to be run from the console. How to open the JavaScript console in different browsers? If you suddenly forget it...)

Browsers
Keys
Opera
Ctrl + Shift + I
Chrome
Ctrl + Shift + J or F12
Firefox
Ctrl + Shift + K or F12
Internet Explorer
F12, then click on the “Console” tab
Microsoft Edge
F12, then click on the “Console” tab
Safari
Cmd + Opt + C
How to use this?
It's easy!)
For example, I use Mozilla Firefox 48.0.2.

  1. Open your licenses and subscriptions page in your browser.
    You can go this way: "Account details >> View licenses and product key activations". Or you can launch the script on other page, and script will open the necessary page, where you need to launch the script again.
    And you must be logged in of course.
  2. Open console in your browser
  3. Copy and run this code from the console
  4. When the analysis completes, you are prompted to remove all the available games (which have a delete button - as in the screenshot)
    If you click OK to start the removal process. Or you can change number of games you want to remove. If you click Cancel, the modal window will be closed.
  5. Then the page wiil be reload and... Enjoy :)
  6. Then you can thank the author, rate, add to your favorites, and share with friends :)
Note
If you find a mistake in the text, or you have a good proposal to improve the guide or the script, I would be grateful if you inform me. Also I'll be very glad to your rank :)

Respect the work of others. No need to copy, modify, and distribute this information on your behalf. You can help change the guide and script and then share them with your friends.

Thanks for reading!
< >
17 Comments
Areopag Oct 24, 2018 @ 1:18pm 
Спс. Всё заработало в лучшем виде))
^^ DeviLMaN :3 Oct 24, 2018 @ 1:02pm 
спасибо)
niron  [author] Oct 24, 2018 @ 9:59am 
Добавлена версия 2.0.0 с полноценным UI.
niron  [author] Oct 24, 2018 @ 3:27am 
Скрипт обновлен, теперь работает. Проверил в Opera и Mozilla FireFox
Areopag Oct 24, 2018 @ 1:57am 
у меня почему-то скрипт бесплатные игры не удалил, и в конце после скрипта (после перечисления цифр) Access Denied
You don't have permission to access "http://store.steampowered.com/account/licenses/" on this server.
пробовал в хроме и фаерфоксе. Минут через 5 этот Access Denied проходит. Раза три пробовал два разных скрипта из данного руководства - всё тоже самое, может знает кто в чем проблема?
niron  [author] Sep 25, 2018 @ 1:56pm 
Теоретически можно все) тут сложность в определении тех игр которые демо или vr. Но попробую как-нибудь дописать.
^^ DeviLMaN :3 Sep 25, 2018 @ 3:44am 
а возможно ли чтобы скрипт мог удалять только "демо" или "VR" игры?
niron  [author] Mar 29, 2018 @ 9:57am 
Пожалуйста
Viktor BUSTER Mar 29, 2018 @ 1:56am 
спасибо большое
MelkXrE Sep 1, 2017 @ 12:25pm 
Спасибо)