Bevor der Xbox 360 Store abgeschaltet wird, wollte ich noch mal alle kostenlosen Inhalte aktivieren. Dazu habe ich dann einmal mit dem Avatar Store angefangen.
Nach einer längeren Suche habe ich entdeckt, das es für Brands eigene Stores gibt. Durch ein wenig Recherche bin ich dann auf die ID 13001 gestoßen. Das ist der allgemein Default Brand in dem alle Items vorhanden sind. Kurzerhand habe ich dann folgendes Python Script gebastelt, damit ich alle Links als Markdown aufgelistet habe:
pip install requests beautifulsoup4 colorama
Im Grunde ganz einfach, durch das herausfinden der Seiten konnte ich den Crawler so schreiben das er immer jedes DIV mit der Product ID parsed, welches ein Free beeinhaltet.
import requests
from bs4 import BeautifulSoup
from colorama import Fore, Style, init
# Initialize colorama
init(autoreset=True)
def check_urls():
base_url = "https://marketplace.xbox.com/en-US/AvatarMarketplace?brand=13001&pagesize=28&sortby=BestSelling&Page="
free_text = '<span class="SilverPrice ProductPrice">Free</span>'
timeout_duration = 10 # Timeout in seconds
results = []
for page_id in range(1, 534): # Assuming a high upper limit for page iteration
url = f"{base_url}{page_id}"
try:
response = requests.get(url, timeout=timeout_duration)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
items = soup.find_all('div', id=lambda x: x and x.startswith('p'))
for item in items:
if free_text in str(item):
link = item.find('a', class_='avatarItem')
if link:
product_id = link['data-product-id']
product_name = link.get_text(strip=True)
product_url = f"https://marketplace.xbox.com{link['href']}"
result_line = f"[{product_name}]({product_url})"
results.append(result_line)
print(f"{Fore.GREEN}Page {page_id} contains free content: {result_line}")
else:
print(f"{Fore.YELLOW}Page {page_id}: No free content found in item")
else:
print(f"Error accessing Page {page_id}: HTTP {response.status_code}")
except requests.exceptions.Timeout:
print(f"{Fore.RED}Page {page_id}: Timeout")
# Save results to results.txt
with open("results.txt", "w", encoding="utf-8") as file:
for result in results:
file.write(result + "\n")
if __name__ == "__main__":
check_urls()
Dadurch kam ich auf 112 Gratis Produkte von den 14.929 Elementen. Knapp 20 Davon sind Crackdown die leider auf der Xbox 360 nicht angezeigt werden. Zudem gibt es dort keine Suchfunktion mehr für Avatar Items.
Die vollständige Liste:
- U.S. Army Combat Uniform
- Xbox One Avatar t-shirt
- Skittles Summer Vacation Larry Avatar Prop
- USMC T-Shirt – Male
- EAS 2015 Avatar Prop
- Schick Hydro 2015 Hoodie
- BOOMco Rapid Madness Blaster
- Mobil 1 Racing Uniform – Male
- TWIZZLERS 2015 Avatar Outfit – Male
- Navy SEAL Avatar Suit
- U.S. Army Combat Uniform
- BOOMco Blast Better Hoodie
- Windows 10 Ninjacat Skis
- BOOMco Blast Better Tee
- Windows 10 Ninjacat
- Taco Bell Hat and T-Shirt
- Nike Air Jordan XXXI Avatar Shoes
- Xbox One Avatar t-shirt
- TWIZZLERS 2015 Avatar Outfit – Female
- Crackdown 2 Hat
- USMC T-Shirt – Female
- Mobil 1 Racing Uniform – Female
- Schick Hydro 2015 Hoodie
- Navy SEAL Avatar Suit
- BOOMco Blast Better Hoodie
- Certified MCP – Black
- Level 5 Agent Suit
- Certified MCP – White
- Freak Head
- BOOMco Blast Better Tee
- Verizon Game Chat Track Suit
- Mafia III Lincoln’s Ride Avatar Prop
- Yarny Avatar
- Certified MCP – Black
- Certified MCP – White
- Agency Supercar Slippers
- Black Spades Snapback
- Black Spades Shuffle Hoodie
- Black Spades Bucket Hat
- Black Spades Wildcard Shirt
- Renegade Orbs
- Black Spades Tee
- Black Spades Championship Ring
- Chicago Game Jersey
- Crackdown 2 Tee
- Agency SUV
- Cell Soldier Suit
- Cell Thermal
- Ruffian Shirt
- Peacekeeper Outfit
- Black Spades Shuffle Hoodie
- Black Spades Wildcard Shirt
- Agency Fist Shirt
- Running Agent Shirt
- Agency Tower Shirt
- Black Spades Tee
- Black Spades Championship Ring
- Buffalo Jersey
- Ruffian Shirt
- Agency Supercar Slippers
- Level 5 Agent Suit
- Running Agent Shirt
- Gold Medal Ceremony
- Cell Thermal
- Crackdown 2 Tee
- Agency Fist Shirt
- Agency Tower Shirt
- Cell Soldier Suit
- Peacekeeper Outfit
- Toucan Sam Mascot Head
- Tony the Tiger Mascot Head
- Tony the Tiger Shirt
- Tony the Tiger Shirt
- Pop-Tarts Helmet
- Pop-Tarts T-Shirt
- Pop-Tarts T-Shirt
- Combat Boots
- Combat Boots
- Communications Helmet
- Crackle Hat
- Pop Hat
- Snap Hat
- Evolution Race Suit
- Evolution Race Suit
- Ghillie Suit
- Ghillie Suit
- Growing Excellence Race Suit
- Growing Excellence Race Suit
- Hydration Pack
- Hydration Pack
- Joe Bang Avatar T-shirt Male
- Marine Boonie Hat
- Marine Parachute
- Marine Smokey
- Marinela Avatar Prop
- Marines T-Shirt
- Marines T-Shirt
- Origin Race Suit
- Origin Race Suit
- Osprey
- Porsche® 918 Spyder®
- Porsche® 918 Spyder® Hat
- Season Eight hat
- Simple Mobile Avatar Hat
- Sling TV Snowboard
- Venom
- Vintage Helmet
- Welcome to Porsche® Helmet
- Xbox One Onesie – Black
- Xbox One Onesie – Black
- Xbox One Onesie – White
- Xbox One Onesie – White
Eine Lösung für das automatische Einlösen habe ich nicht gefunden. Da deutschsprachige Accounts ja aufgrund der Trennzeichen schon länger Probleme machen, konnte ich bislang nicht in Erfahrung bringen ob mein Account oder das System Probleme macht. Ggfs. liegt das auch an den Rate Limits in die ich gerade permanent laufe. Neben dem Crawling läuft meine Xbox 360 noch munter vor sich hin und downloadet.
Sowohl auf der Website, wie auch in der App war für mich nichts einlösbar. Auf der Xbox 360 funktionierte es Problemlos. Falls jemand eine Lösung hat, würde mich über einen Hinweis freuen.