91³Ô¹ÏÍø

Watch CBS News

Prince Harry's "Spare" jumps to No. 1 on bestseller lists

Prince Harry's memoir's title, "Spare," is a nod to his position as the backup son in the line of royal succession. The book, however, is hardly an afterthought in bookstores, with the title jumping to the top of several bestseller lists as it hit store shelves on Tuesday.  

As "Spare" made its debut it ranked No. 1 on Amazon's nonfiction bestseller list, while it was also atop Barnes & Noble's top 100 sellers the same day. However, it may take a week or more to show up on the gold standard of bestseller lists, the New York Times, as its current nonfiction bestseller list is based on data from sales before December 31, which is prior to the publication date of the book.

In the memoir, the 38-year-old Harry details his life as part of the royal family, warts and all — and it may be the warts that are boosting book sales. The memoir covers his decades-long struggle with grief after his mother Princess Diana died in a car crash and discusses conflicts he has had with his father, King Charles; his stepmother, the Queen Consort Camilla; and his brother, Prince William, who is heir to the throne. 

In the book, Harry writes about his father waking up him and his brother, then 12 and 15, respectively, to tell them of their mother's death. 

"Pa didn't hug me. He wasn't great at showing emotions under normal circumstances. But his hand did fall once more on my knee and he said, 'It's going to be okay,'" Harry wrote in his recounting of hearing the painful news. 

In an interview with Anderson Cooper of "60 Minutes," Harry said, "Nothing was okay."

Book bombshells

The book details Harry's experiments with psychedelics in search of relief from his trauma, as well as his military career and his revelation that he killed 25 people in Afghanistan while serving in the British armed forces.

Other bombshells include his claim that William physically assaulted him over tension related to Meghan Markle, whom Harry married in 2018. William reportedly called Meghan "abrasive," "difficult" and "rude," the book says. 

"It all happened so fast. So very fast. [William] grabbed me by the collar, ripping my necklace, and he knocked me to the floor. I landed on the dog's bowl, which cracked under my back, the pieces cutting into me. I lay there for a moment, dazed, then got to my feet and told him to get out," Harry wrote in "Spare."

Reviews: The good, the bad and the ugly

So far, reviews of the book have been mixed, with some critics praising the memoir while others not. The Economist it an "ill-advised romp." 

"'Spare' is by turns compassion-inducing, frustrating, oddly compelling and absurd," The Guardian in its Monday review of the book. 

Other reviewers praised the book, but with caveats. The Financial Times "You may question whether you should be reading anything more about Harry, let alone a 416-page book." 

But, its reviewer added, "Of all Harry and Meghan's output since they stepped down from royal duties in 2020 — the interview with Oprah Winfrey, the Spotify podcasts, the six-hour Netflix documentary — 'Spare' is the most bearable and revelatory."

Not exactly high praise, but it may be enough to convince readers to open their pocketbooks and order a copy. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });