Getting Games from CDN/NUS/eShop for preservation

  • Thread starter Thread starter Korschan
  • Start date Start date
  • Views Views 9,723
  • Replies Replies 56

Korschan

Member
Newcomer
Joined
Feb 28, 2022
Messages
15
Reaction score
0
Trophies
0
Age
38
Location
Deutschöla
XP
97
Country
Denmark
Hi,

is there any way to get all that Wii U stuff from the NUS on my Computer?
I remember there was a Tool which downloaded all contents (ex. JPN, EUR, USA) from Nintendos CDN - but I dont remember and its probably outdated.

Which tools are still working to get - for example - all japanese content from the wii u's eshop?

Thanks.
 
USB helper does not have all content. I started to work on a script downloading anything available but never finished it. Also this sript doesn't include DLC, updates and stuff like that:
Code:
<?php
// NUS Downloader based on NUSspli NUS bruteforcer v1.0
error_reporting(E_ALL);
ini_set("display_errors", 1);

$tids = array();

$curl = curl_init();
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_HEADERFUNCTION, 'headerChecker');

$dn = 0x101000;
while($dn <= 0x102FFF)
{
    $tid = dechex($dn++);
    while(strlen($tid) < 6)
        $tid = '0' . $tid;

    $tid = '00050000' . $tid . '00';
    curl_setopt($curl, CURLOPT_URL, 'http://ccs.cdn.wup.shop.nintendo.net/ccs/download/' . $tid . '/tmd');
    curl_exec($curl);
}

curl_setopt($curl, CURLOPT_HEADERFUNCTION, 'headerDummy');

foreach($tids as $tid)
{
    echo 'FOUND: ' . $tid . "\n";
    mkdir($tid);
    $tmd = $tid . '/title.tmd';
    $fp = fopen($tmd, 'wb');
    curl_setopt($curl, CURLOPT_URL, 'http://ccs.cdn.wup.shop.nintendo.net/ccs/download/' . $tid . '/tmd');
    curl_setopt($curl, CURLOPT_FILE, $fp);
    curl_exec($curl);

    $tmd = file_get_contents($tmd);
    // TODO: Parse the tmd file
}

curl_close($curl);

function headerChecker($dummy, $header)
{
    if(strcmp($header, "HTTP/1.1 200 OK\r\n") == 0)
    {
        global $tid;
        global $tids;
        $tids[] = $tid;
    }

    return 0;
}

function headerDummy($dummy, $header) {}

?>
NUSspli does have all content availalable on the NUS but doesn't have an option to download anything in a simple way.
 
  • Like
Reactions: Pin1988
USB helper does not have all content. I started to work on a script downloading anything available but never finished it. Also this sript doesn't include DLC, updates and stuff like that:
[...]
NUSspli does have all content availalable on the NUS but doesn't have an option to download anything in a simple way.
This looks awesome.
Wasn't it "FunkiiU" which could download all content from NUS?
 
How large is the entire nus library??
I have almost every title for the europe region. Then you know, what the other regions have ca.

And that's just the europe region (as stated above).
 

Attachments

  • Unbenannt1.png
    Unbenannt1.png
    12.4 KB · Views: 245
USB helper does not have all content. I started to work on a script downloading anything available but never finished it. Also this sript doesn't include DLC, updates and stuff like that:
Code:
<?php
// NUS Downloader based on NUSspli NUS bruteforcer v1.0
error_reporting(E_ALL);
ini_set("display_errors", 1);

$tids = array();

$curl = curl_init();
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_HEADERFUNCTION, 'headerChecker');

$dn = 0x101000;
while($dn <= 0x102FFF)
{
    $tid = dechex($dn++);
    while(strlen($tid) < 6)
        $tid = '0' . $tid;

    $tid = '00050000' . $tid . '00';
    curl_setopt($curl, CURLOPT_URL, 'http://ccs.cdn.wup.shop.nintendo.net/ccs/download/' . $tid . '/tmd');
    curl_exec($curl);
}

curl_setopt($curl, CURLOPT_HEADERFUNCTION, 'headerDummy');

foreach($tids as $tid)
{
    echo 'FOUND: ' . $tid . "\n";
    mkdir($tid);
    $tmd = $tid . '/title.tmd';
    $fp = fopen($tmd, 'wb');
    curl_setopt($curl, CURLOPT_URL, 'http://ccs.cdn.wup.shop.nintendo.net/ccs/download/' . $tid . '/tmd');
    curl_setopt($curl, CURLOPT_FILE, $fp);
    curl_exec($curl);

    $tmd = file_get_contents($tmd);
    // TODO: Parse the tmd file
}

curl_close($curl);

function headerChecker($dummy, $header)
{
    if(strcmp($header, "HTTP/1.1 200 OK\r\n") == 0)
    {
        global $tid;
        global $tids;
        $tids[] = $tid;
    }

    return 0;
}

function headerDummy($dummy, $header) {}

?>
NUSspli does have all content availalable on the NUS but doesn't have an option to download anything in a simple way.
does that script work in any capacity? I tried running it through xampp with apache as well as through linux. it would not run with either.
 
Is there still a working FunkiiU? Cause I think I remember there was a version which allowed you to download all contents.
FunkiiU works. But the games doesn't work on the Wii u somehow. When I download them with FunkiiU, the wupinstaller/nusspli gives me an error. Downloading with the usb helper works flawlessly. I would say it is because the usb helper has some sort of check for the downloaded files (which FunkiiU does not have iirc).
 
FunkiiU works. But the games doesn't work on the Wii u somehow. When I download them with FunkiiU, the wupinstaller/nusspli gives me an error. Downloading with the usb helper works flawlessly. I would say it is because the usb helper has some sort of check for the downloaded files (which FunkiiU does not have iirc).
Hmm I did not check this yet.
But I use the dat-o-matic DAT files to check my files - hope they are still installable!
 
Hmm I did not check this yet.
But I use the dat-o-matic DAT files to check my files - hope they are still installable!
The thing is, the files aren't broken. They are just incomplete enough that as good as every installer gives an error. Download them with the usb helper and everything is fine.
 
  • Like
Reactions: jeannotte
Hmm I did not check this yet.
But I use the dat-o-matic DAT files to check my files - hope they are still installable!
IIRC online tickets are broken with FunkiiU, online keys work fine through. Also don't worry in case the titie.tik files are broken: Just delete the title.tik file and recreate it with NUSspli before installing (note that you're able to use NUSspli instead of WUP Installer to install, too, so no need to change apps between creating a new ticket and installing).

[EDIT] Thinking more about this: If FunkiiU needs online tickets or keys it does not have more content than USB Downloader as not all title keys are known (try to find the key for Shakedown: Hawaii, for example). No known key, not downloadable by tools needing that title key site.
So looks like the only option to get everything from the NUS is NUSspli. [/EDIT]

does that script work in any capacity? I tried running it through xampp with apache as well as through linux. it would not run with either.
never finished it.
It should still print a list of title IDs (and create folders + download the title.tmd for every title) after it bruteforced the NUS (which might take hours, so not worth to wait for it just to see it printing all available title IDs).
In case anyone want to continue this script: Next step would be to parse the title.tmd file ( https://github.com/V10lator/NUSspli/blob/master/include/tmd.h ), downloading all the files listed in there. Then create fake tickets and certs if needed... So basically port a lot of NUSspli from C to PHP.

//EDIT: And don't run the PHP script in a web server but http://php-cli.com
 
Last edited by V10lator,
IIRC online tickets are broken with FunkiiU, online keys work fine through. Also don't worry in case the titie.tik files are broken: Just delete the title.tik file and recreate it with NUSspli before installing (note that you're able to use NUSspli instead of WUP Installer to install, too, so no need to change apps between creating a new ticket and installing).



It should still print a list of title IDs (and create folders + download the title.tmd for every title) after it bruteforced the NUS (which might take hours, so not worth to wait for it just to see it printing all available title IDs).
In case anyone want to continue this script: Next step would be to parse the title.tmd file ( https://github.com/V10lator/NUSspli/blob/master/include/tmd.h ), downloading all the files listed in there. Then create fake tickets and certs if needed... So basically port a lot of NUSspli from C to PHP.

//EDIT: And don't run the PHP script in a web server but http://php-cli.com
not sure what's happening:

1646750012628.png
 
@godreborn Did you click the link? It's explained there:
If you are running Windows, then you probably need to add php executable to your system path.
Windows user would need to amend the first line with appropriate windows style path to php.exe:
Code:
#!C:\php\php.exe -q
<?php echo "Hello world of PHP CLI!"; ?>
In other words: Add php to PATH and then either add the correct shebang to the PHP file (C:\php\php.exe is just an example) or run
Code:
php test.php

In case you did all this and it still is this weird show the content of test.php as you might just exectute the wrong script or have a wrong shebang or something like this.

Also no need for xampp. All you need is https://windows.php.net/download/ and this PHP script is no htdoc but CLI (like explained at the link).
 
I have no php folder except for in xampp, but it says that the command is unrecognized. I did add that to the script.

1646751181163.png
 

Site & Scene News

Popular threads in this forum