CINXE.COM
Frequently Asked Questions (FAQ) - Anna’s Archive
<html lang="en"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://annas-archive.gs/faq?","20240701020026","https://web.archive.org/","web","/_static/", "1719799226"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"> <title>Frequently Asked Questions (FAQ) - Anna’s Archive</title> <link rel="stylesheet" href="/web/20240701020026cs_/https://annas-archive.gs/css/app.css?hash=388628e8baddc6037032"> <script defer src="/web/20240701020026js_/https://annas-archive.gs/js/app.js?hash=3839d9e11d55f359f5ad"></script> <meta name="description" content="The world’s largest open-source open-data library. Mirrors Sci-Hub, Library Genesis, Z-Library, and more."/> <meta name="twitter:card" value="summary"> <meta name="viewport" content="width=device-width, initial-scale=1"/> <link rel="apple-touch-icon" sizes="180x180" href="/web/20240701020026im_/https://annas-archive.gs/apple-touch-icon.png?hash=d2fa3410fb1ae23ef0ab"> <link rel="icon" type="image/png" sizes="32x32" href="/web/20240701020026im_/https://annas-archive.gs/favicon-32x32.png?hash=989ac03e6b8daade6d2d"> <link rel="icon" type="image/png" sizes="16x16" href="/web/20240701020026im_/https://annas-archive.gs/favicon-16x16.png?hash=33f085d3acf9176b18df"> <link rel="manifest" href="/web/20240701020026/https://annas-archive.gs/site.webmanifest?hash=076af9a96b0bfbd668cd"> <link rel="search" href="/web/20240701020026/https://annas-archive.gs/content-search.xml" type="application/opensearchdescription+xml" title="Search Anna’s Archive"/> <meta name="apple-mobile-web-app-capable" content="yes"> <script> window.globalUpdateAaLoggedIn = function(aa_logged_in) { localStorage['aa_logged_in'] = aa_logged_in; if (localStorage['aa_logged_in'] === '1') { document.documentElement.classList.add("aa-logged-in"); } else { document.documentElement.classList.remove("aa-logged-in"); } } window.globalUpdateAaLoggedIn(localStorage['aa_logged_in'] || 0); // Focus search field when pressing "/". document.addEventListener("keydown", e => { if (e.key !== "/" || e.ctrlKey || e.metaKey || e.altKey) return; if (/^(?:input|textarea|select|button)$/i.test(e.target.tagName)) return; e.preventDefault(); const fields = document.querySelectorAll('.js-slash-focus'); const field = fields[fields.length - 1]; if (field) { field.select(); field.scrollIntoView({ block: "center", inline: "center" }); } }); </script> </head> <body> <script> (function() { if (location.hostname.includes('localhost')) { location.hostname = location.hostname.replace('localhost', 'localtest.me'); return; } var langCodes = ["ar", "be", "bg", "bn", "br", "ca", "cs", "de", "el", "en", "eo", "es", "fa", "fr", "gl", "he", "hi", "hu", "id", "it", "ja", "ko", "lt", "ml", "ms", "ne", "nl", "no", "or", "pl", "pt", "ro", "ru", "sk", "sl", "sq", "sr", "sv", "tr", "tw", "uk", "ur", "vec", "vi", "zh", ]; var domainPosition = 0; var potentialSubDomainLangCode = location.hostname.split(".")[0]; var subDomainLangCode = 'en'; if (langCodes.includes(potentialSubDomainLangCode) || potentialSubDomainLangCode === 'www') { domainPosition = potentialSubDomainLangCode.length + 1; if (potentialSubDomainLangCode !== 'www') { subDomainLangCode = potentialSubDomainLangCode; } } window.baseDomain = location.hostname.substring(domainPosition); function setLangCookie(langCode) { if (!langCodes.includes(langCode)) { return; } document.cookie = 'selected_lang=' + langCode + ';path=/;expires=Fri, 31 Dec 9999 23:59:59 GMT;domain=' + window.baseDomain; } function redirectLang(langCode) { if (!langCodes.includes(langCode)) { return; } var prefix = ''; if (langCode != 'en') { prefix = langCode + '.'; } location.hostname = prefix + window.baseDomain; } window.handleChangeLang = function(event) { const langCode = event.target.value; setLangCookie(langCode); redirectLang(langCode); }; // Let's also (for now) not set a cookie when getting referred. // { // // If our referrer was (likely) a different domain of our website (with the same lang code), // // then behave as if that lang code was set as a cookie all along. // if (document.referrer.includes("://" + subDomainLangCode + ".")) { // setLangCookie(subDomainLangCode); // } // } // Browser-based language detection is too unreliable. // Disable for now. // { // const cookieLangMatch = document.cookie.match(/selected_lang=([^$ ;}]+)/); // // If there's no cookie yet, let's try to set one. // if (!cookieLangMatch) { // // See if the user's browser language is one that we support directly. // for (const langCode of navigator.languages) { // let domainLangCode = langCode; // if (langCode.toLowerCase().includes("-hant") || langCode.toLowerCase().includes("-tw")) { // domainLangCode = "tw"; // } // // Take the first language that we support. // if (langCodes.includes(domainLangCode)) { // setLangCookie(domainLangCode); // // Bail out so we don't redirect to a suboptimal language. // break; // } // } // } // } { const cookieLangMatch = document.cookie.match(/selected_lang=([^$ ;}]+)/); if (cookieLangMatch) { // Refresh cookie with a new expiry, in case the browser has // restricted it. var explicitlyRequestedLangCode = cookieLangMatch[1]; setLangCookie(explicitlyRequestedLangCode); // If a cookie is set, that we want to go to the language, so let's redirect. if (explicitlyRequestedLangCode != subDomainLangCode) { redirectLang(explicitlyRequestedLangCode); } } } window.submitForm = function(event, url, handler) { event.preventDefault(); const currentTarget = event.currentTarget; const fieldset = currentTarget.querySelector("fieldset"); currentTarget.querySelector(".js-failure").classList.add("hidden"); // Before disabling the fieldset. fetch(url, { method: "PUT", body: new FormData(currentTarget) }) .then(function(response) { if (!response.ok) { throw "error"; } return response.json().then(function(jsonResponse) { fieldset.classList.add("hidden"); currentTarget.querySelector(".js-success").classList.remove("hidden"); if (handler) { handler(jsonResponse); } }); }) .catch(function() { fieldset.removeAttribute("disabled", "disabled"); fieldset.style.opacity = 1; currentTarget.querySelector(".js-failure").classList.remove("hidden"); }) .finally(function() { currentTarget.querySelector(".js-spinner").classList.add("invisible"); }); fieldset.setAttribute("disabled", "disabled"); fieldset.style.opacity = 0.5; currentTarget.querySelector(".js-spinner").classList.remove("invisible"); }; })(); </script> <script> (function() { var pageUrl = new URL(document.location); var hashMatch = pageUrl.hash.match(/r=([a-zA-Z0-9]+)/); if (hashMatch && hashMatch[1].length < 20) { if (!document.cookie.includes('ref_id=' + hashMatch[1])) { if (window.baseDomain) { document.cookie = 'ref_id=' + hashMatch[1] + ';path=/;expires=Fri, 31 Dec 9999 23:59:59 GMT;domain=' + window.baseDomain; } else { document.cookie = 'ref_id=' + hashMatch[1] + ';path=/;expires=Fri, 31 Dec 9999 23:59:59 GMT'; } if (pageUrl.pathname == "/donate") { document.location = "/donate"; } } } })(); </script> <div class="header" role="navigation"> <div> <!-- <div class="[html:not(.aa-logged-in)_&]:hidden"> --> <!-- blue --> <div class="bg-[#0195ff] hidden js-top-banner"> <div class="max-w-[1050px] mx-auto px-4 py-2 text-[#fff] flex justify-between"> <!-- <div> 🎄 <strong>Saving human knowledge: a great holiday gift!</strong> ❄️ Surprise a loved one, give them an account with membership. <a class="custom-a text-[#fff] hover:text-[#ddd] underline" href="/donate">Donate</a> </div> --> <!-- <div> To increase the resiliency of Anna’s Archive, we’re looking for volunteers to run mirrors. <a class="custom-a text-[#fff] hover:text-[#ddd] underline text-xs" href="/mirrors">Learn more…</a> </div> --> <div> ❌ Update your bookmarks: annas-archive.org is no more, long live annas-archive.gs! 🎉 </div> <!-- <div> The perfect Valentine’s gift! Refer a friend, and both you and your friend get 50% bonus fast downloads! <a class="custom-a text-[#fff] hover:text-[#ddd] underline text-xs" href="/refer">Learn more…</a> </div> --> <div> <a href="#" class="custom-a ml-2 text-[#fff] hover:text-[#ddd] js-top-banner-close">✕</a> </div> </div> </div> <!-- blue --> <!-- <div class="bg-[#0195ff] hidden js-top-banner"> --> <!-- purple --> <!-- <div class="bg-[#7f01ff] hidden js-top-banner"> --> <!-- <div class="hidden js-top-banner text-xs sm:text-base [html:not(.aa-logged-in)_&]:hidden"> --> <!-- <div> We have a new donation method available: <strong>Paypal</strong>. Please consider <a href="/donate" class="custom-a text-[#fff] hover:text-[#ddd] underline">donating</a> — it’s not cheap running this website, and your donation truly makes a difference. Thank you so much. </div> --> <!-- <div> We now have a <a class="custom-a text-[#fff] hover:text-[#ddd] underline" href="https://t.me/annasarchiveorg">Telegram</a> channel. Join us and discuss the future of Anna’s Archive.<br/>You can still also follow us on <a class="custom-a text-[#fff] hover:text-[#ddd] underline" href="https://www.reddit.com/r/Annas_Archive">Reddit</a>. </div> --> <!-- <div class="max-w-[1050px] mx-auto px-4 py-2"> <div class="flex justify-between mb-2"> <div>We’re running a fundraiser for <a href="/blog/backed-up-the-worlds-largest-comics-shadow-lib.html">backing up</a> the largest comics shadow library in the world. Thanks for your support! <a href="/donate">Donate.</a> If you can’t donate, consider supporting us by telling your friends, and following us on <a href="https://www.reddit.com/r/Annas_Archive">Reddit</a>, or <a href="https://t.me/annasarchiveorg">Telegram</a>.</div> <div><a href="#" class="custom-a text-[#777] hover:text-black js-top-banner-close">✕</a></div> </div> <div style="background: #fff; padding: 8px; border-radius: 8px; box-shadow: 0px 2px 4px 0px #00000020"> <div style="position: relative; height: 16px; margin-top: 8px;"> <div style="position: absolute; left: 0; right: 0; top: 0; bottom: 0; background: white; overflow: hidden; border-radius: 16px; box-shadow: 0px 2px 4px 0px #00000038"> <div style="position: absolute; left: 0; top: 0; bottom: 0; width: 34%; background: #2cde1c"></div> </div> <div style="position: absolute; left: 34%; top: 50%; width: 16px; height: 16px; transform: translate(-50%, -50%)"> <div style="position: absolute; left: 0; top: 0; width: 16px; height: 16px; background: #2cde1c66; border-radius: 100%; animation: header-ping 1.5s cubic-bezier(0,0,.2,1) infinite"></div> <div style="position: absolute; left: 0; top: 0; width: 16px; height: 16px; background: white; border-radius: 100%; box-shadow: 0 0 3px #00000069;"></div> </div> </div> <div style="position: relative; padding-bottom: 8px"> <div style="width: 14px; height: 14px; border-left: 1px solid gray; border-bottom: 1px solid gray; position: absolute; top: 5px; left: calc(34% - 1px)"></div> <div style="position: relative; left: calc(34% + 20px); width: calc(90% - 20px); top: 8px; font-size: 90%; color: #555">$6,840 / $20,000</div> </div> </div> </div> --> <!-- <div class="max-w-[1050px] mx-auto px-4 py-2 text-[#fff] flex justify-between bg-[#0160a7]"> <div> Do you know experts in <strong>anonymous merchant payments</strong>? Can you help us add more convenient ways to donate? PayPal, Alipay, credit cards, gift cards. Please <a class="custom-a text-[#fff] hover:text-[#ddd] underline break-all" href="/contact">contact us</a>. </div> <div> <a href="#" class="custom-a text-[#fff] hover:text-[#ddd] js-top-banner-close">✕</a> </div> </div> --> <!-- <div class="max-w-[1050px] mx-auto text-[#fff] bg-[#0160a7]"> <div class="flex justify-between"> <div class="px-4 py-2"> New technical blog post: <a class="custom-a text-[#fff] hover:text-[#ddd] underline" href="/blog/annas-archive-containers.html">Anna’s Archive Containers (AAC): standardizing releases from the world’s largest shadow library</a> </div> <div class="px-4 py-2"> <a href="#" class="custom-a text-[#fff] hover:text-[#ddd] js-top-banner-close">✕</a> </div> </div> <div class="px-4 py-2 bg-green-500"> Do you know experts in <strong>anonymous merchant payments</strong>? Can you help us add more convenient ways to donate? PayPal, Alipay, credit cards, gift cards. Please <a class="custom-a text-[#fff] hover:text-[#ddd] underline break-all" href="/contact">contact us</a>. </div> </div> --> <!-- </div> --> <script> (function() { if (document.querySelector('.js-top-banner')) { var latestTopBannerType = '13'; var topBannerMatch = document.cookie.match(/top_banner_hidden=([^$ ;}]+)/); var topBannerType = ''; if (topBannerMatch) { topBannerType = topBannerMatch[1]; // Refresh cookie. document.cookie = 'top_banner_hidden=' + topBannerType + ';path=/;expires=Fri, 31 Dec 9999 23:59:59 GMT'; } if (topBannerType !== latestTopBannerType) { document.querySelector('.js-top-banner').style.display = 'block'; document.querySelector('.js-top-banner-close').addEventListener('click', function(event) { document.querySelector('.js-top-banner').style.display = 'none'; document.cookie = 'top_banner_hidden=' + latestTopBannerType + ';path=/;expires=Fri, 31 Dec 9999 23:59:59 GMT'; event.preventDefault(); return false; }); } } })(); </script> </div> <div class="header-inner"> <div class="header-inner-top"> <a href="/web/20240701020026/https://annas-archive.gs/" class="custom-a text-black hover:text-[#444]"><h1 class="text-2xl sm:text-4xl">Anna’s Archive</h1></a> <select class="text-lg bg-center icon-[twemoji--globe-with-meridians] py-1 rounded text-gray-500 max-w-[50px] mt-1 ml-2 appearance-none" style="width: 1.8em; height: 1.6em; background-color: white; background-size: 1em;" onchange="handleChangeLang(event)"> <option></option> <option value="ar">العربية [ar]</option> <option value="be">беларуская [be]</option> <option value="bg">български [bg]</option> <option value="bn">বাংলা [bn]</option> <option value="br">Brasil: português [br]</option> <option value="ca">català [ca]</option> <option value="cs">čeština [cs]</option> <option value="de">Deutsch [de]</option> <option value="el">Ελληνικά [el]</option> <option value="en">English [en] ☑️</option> <option value="eo">esperanto [eo]</option> <option value="es">español [es]</option> <option value="fa">فارسی [fa]</option> <option value="fr">français [fr]</option> <option value="gl">galego [gl]</option> <option value="he">עברית [he]</option> <option value="hi">हिन्दी [hi]</option> <option value="hu">magyar [hu]</option> <option value="id">Indonesia [id]</option> <option value="it">italiano [it]</option> <option value="ja">日本語 [ja]</option> <option value="ko">한국어 [ko]</option> <option value="lt">lietuvių [lt]</option> <option value="ml">മലയാളം [ml]</option> <option value="ms">Melayu [ms]</option> <option value="ne">नेपाली [ne]</option> <option value="nl">Nederlands [nl]</option> <option value="no">norsk bokmål [no]</option> <option value="or">ଓଡ଼ିଆ [or]</option> <option value="pl">polski [pl]</option> <option value="pt">Portugal: português [pt]</option> <option value="ro">română [ro]</option> <option value="ru">русский [ru]</option> <option value="sk">slovenčina [sk]</option> <option value="sl">slovenščina [sl]</option> <option value="sq">shqip [sq]</option> <option value="sr">српски [sr]</option> <option value="sv">svenska [sv]</option> <option value="tr">Türkçe [tr]</option> <option value="tw">中文 (繁體) [tw]</option> <option value="uk">українська [uk]</option> <option value="ur">اردو [ur]</option> <option value="vec">Veneto [vec]</option> <option value="vi">Tiếng Việt [vi]</option> <option value="zh">中文 [zh]</option> </select> </div> <div class="mb-1.5"> <div class="max-md:hidden">📚 The largest truly open library in human history. ⭐️ We mirror Sci-Hub and LibGen. We scrape and open-source Z-Lib, DuXiu, and more. 📈 30,445,640 books, 100,357,126 papers — preserved forever. All our code and data are completely open source. <a class="text-xs" href="/web/20240701020026/https://annas-archive.gs/faq">Learn more…</a></div> <div class="max-sm:hidden md:hidden">📚 The largest truly open library in human history. ⭐️ We mirror Sci-Hub and LibGen. We scrape and open-source Z-Lib, DuXiu, and more. 📈 30,445,640 books, 100,357,126 papers — preserved forever. <a class="text-xs" href="/web/20240701020026/https://annas-archive.gs/faq">Learn more…</a></div> <div class="sm:hidden text-sm">📚 The largest truly open library in human history. ⭐️ We mirror Sci-Hub and LibGen. We scrape and open-source Z-Lib, DuXiu, and more. <a class="text-xs" href="/web/20240701020026/https://annas-archive.gs/faq">Learn more…</a></div> </div> <div class="hidden sm:flex text-xs mb-1" aria-hidden="true"> <div class="font-bold shrink-0">Recent downloads: </div> <div class="w-full overflow-hidden flex js-recent-downloads-scroll"> <!-- Make sure tailwind picks up these classes --> <div class="shrink-0 min-w-full"></div> <div class="inline-block max-w-[50%] truncate"></div> </div> <script> (function() { function showRecentDownloads(items) { // Biased towards initial positions, but whatever. const shuffledItems = [...items].sort(() => Math.random() - 0.5).slice(0, 8); const titlesLength = shuffledItems.map((item) => item.title).join(" ").length; const scrollHtml = `<div class="shrink-0 min-w-full" style="animation: scroll ${Math.round(titlesLength/4)}s linear infinite">` + shuffledItems.map((item) => `<span class="inline-block truncate"> • </span><a tabindex="-1" href="${(item.path[0] == '/' ? '' : '/') + item.path}" class="inline-block max-w-[50%] truncate">${item.title}</a>`).join('') + '</div>'; document.querySelector('.js-recent-downloads-scroll').innerHTML = scrollHtml + scrollHtml; } function fetchNewRecentDownloads(cb) { setTimeout(() => { fetch("/dyn/recent_downloads/").then((response) => response.json()).then((items) => { if (localStorage) { localStorage.recentDownloadsData = JSON.stringify({ items, time: Date.now() }); } if (cb) { cb(items); } }); }, 100); } if (localStorage && localStorage.recentDownloadsData) { const recentDownloadsData = JSON.parse(localStorage.recentDownloadsData); // console.log('recentDownloadsData', recentDownloadsData); showRecentDownloads(recentDownloadsData.items); const timeToRefresh = 65000 /* 65 sec */ - (Date.now() - recentDownloadsData.time); // Fetch new data for the next page load. if (timeToRefresh <= 0) { fetchNewRecentDownloads(undefined); } else { setTimeout(() => { fetchNewRecentDownloads(undefined); }, timeToRefresh); } } else { fetchNewRecentDownloads((items) => { showRecentDownloads(items); }); } })(); </script> </div> <script> function topMenuToggle(event, className) { const el = document.querySelector("." + className); if (el.style.display === "block") { el.style.display = "none"; el.setAttribute('aria-expanded', "false"); } else { el.style.display = "block"; el.setAttribute('aria-expanded', "true"); function clickOutside(innerEvent) { if (!el.contains(innerEvent.target)) { el.style.display = "none"; el.setAttribute('aria-expanded', "false") document.removeEventListener('click', clickOutside); innerEvent.preventDefault(); return false; } } setTimeout(function() { document.addEventListener('click', clickOutside); }, 0); } event.preventDefault(); return false; } </script> <div class="header-bar"> <div class="header-links relative z-20"> <a href="#" aria-expanded="false" onclick="topMenuToggle(event, 'js-top-menu-home')" class="header-link-first header-link-active" style="margin-right: 24px;"> <span class="header-link-normal"> FAQ <span class="icon-[material-symbols--arrow-drop-down] absolute text-lg mt-[3px] -ml-px"></span> </span> <span class="header-link-bold"> FAQ <span class="icon-[material-symbols--arrow-drop-down] absolute text-lg mt-[3px] -ml-px"></span> </span> </a> <div class="absolute left-0 top-full bg-[#f2f2f2] px-4 shadow js-top-menu-home hidden"> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/">Home</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/search">Search</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/scidb">🧬 SciDB</a> <a class="custom-a block py-1 font-bold text-black hover:text-black" href="/web/20240701020026/https://annas-archive.gs/faq">FAQ</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/datasets">Datasets</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/torrents">Torrents</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/mirrors">Mirrors: call for volunteers</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/llm">LLM data</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/blog" target="_blank">Anna’s Blog ↗</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="https://web.archive.org/web/20240701020026/https://software.annas-archive.gs/" target="_blank">Anna’s Software ↗</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="https://web.archive.org/web/20240701020026/https://translate.annas-archive.gs/" target="_blank">Translate ↗</a> </div> <a href="/web/20240701020026/https://annas-archive.gs/donate" class=""><span class="header-link-normal">Donate</span><span class="header-link-bold">Donate</span></a> </div> <form class="header-search hidden sm:flex" action="/web/20240701020026/https://annas-archive.gs/search" method="get" role="search"> <input class="js-slash-focus rounded" name="q" type="search" placeholder="Title, author, DOI, ISBN, MD5, …" value="" title="Focus: '/' Scroll search results: 'j', 'k'"> </form> <div class="header-links header-links-right relative z-10 ml-auto items-center"> <!-- <div class="mr-1 bg-[#0195ff] text-white text-xs font-medium px-1 py-0.5 rounded">beta</div> --> <a href="#" aria-expanded="false" onclick="topMenuToggle(event, 'js-top-menu-login')" class="header-link-first [html.aa-logged-in_&]:hidden"> <span class="header-link-normal"> Log in / Register <span class="icon-[material-symbols--arrow-drop-down] absolute text-lg mt-[3px] -ml-px"></span> </span> <span class="header-link-bold"> Log in / Register <span class="icon-[material-symbols--arrow-drop-down] absolute text-lg mt-[3px] -ml-px"></span> </span> </a> <div class="absolute right-0 top-full bg-[#f2f2f2] px-4 shadow js-top-menu-login hidden"> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/login">Log in / Register</a> </div> <a href="#" aria-expanded="false" onclick="topMenuToggle(event, 'js-top-menu-account')" class="header-link-first [html:not(.aa-logged-in)_&]:hidden" style="margin-right: 8px;"> <span class="header-link-normal"> Account <span class="icon-[material-symbols--arrow-drop-down] absolute text-lg mt-[3px] -ml-px"></span> </span> <span class="header-link-bold"> Account <span class="icon-[material-symbols--arrow-drop-down] absolute text-lg mt-[3px] -ml-px"></span> </span> </a> <div class="absolute right-0 top-full bg-[#f2f2f2] px-4 shadow js-top-menu-account hidden"> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/account">Account</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/account/profile">Public profile</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/account/downloaded">Downloaded files</a> <a class="custom-a block py-1 text-black/64 hover:text-black" href="/web/20240701020026/https://annas-archive.gs/account/donations">My donations</a> </div> </div> </div> </div> </div> <main class="main"> <h2 class="mt-4 mb-1 text-3xl font-bold">Frequently Asked Questions (FAQ)</h2> <h3 class="group mt-4 mb-1 text-xl font-bold" id="what">What is Anna’s Archive? <a href="#what" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class=""> <span class="">Anna’s Archive</span> is a non-profit project with two goals: </p> <ol class="list-decimal list-inside mb-4"> <li><strong>Preservation:</strong> Backing up all knowledge and culture of humanity.</li><li><strong>Access:</strong> Making this knowledge and culture available to anyone in the world.</li> </ol> <p class="mb-4"> All our <a href="https://web.archive.org/web/20240701020026/https://software.annas-archive.gs/">code</a> and <a href="/web/20240701020026/https://annas-archive.gs/datasets">data</a> are completely open source. </p> <div class="bg-[#f2f2f2] p-4 pb-3 rounded-lg mb-4"> <div class="mb-1 font-bold text-lg">Preservation</div> <p class="mb-4">We preserve books, papers, comics, magazines, and more, by bringing these materials from various <a href="https://web.archive.org/web/20240701020026/https://en.wikipedia.org/wiki/Shadow_library">shadow libraries</a>, official libraries, and other collections together in one place. All this data is preserved forever by making it easy to duplicate it in bulk — using torrents — resulting in many copies around the world. Some shadow libraries already do this themselves (e.g. Sci-Hub, Library Genesis), while Anna’s Archive “liberates” other libraries that don’t offer bulk distribution (e.g. Z-Library) or aren’t shadow libraries at all (e.g. Internet Archive, DuXiu).</p> <p class="mb-4">This wide distribution, combined with open-source code, makes our website resilient to takedowns, and ensures the long-term preservation of humanity’s knowledge and culture. Learn more about <a href="/web/20240701020026/https://annas-archive.gs/datasets">our datasets</a>.</p> <div style="position: relative; height: 16px; margin-top: 16px;"> <div style="position: absolute; left: 0; right: 0; top: 0; bottom: 0; background: white; overflow: hidden; border-radius: 16px; box-shadow: 0px 2px 4px 0px #00000038"> <div style="position: absolute; left: 0; top: 0; bottom: 0; width: 5%; background: #0095ff"></div> </div> <div style="position: absolute; left: 5%; top: 50%; width: 16px; height: 16px; transform: translate(-50%, -50%)"> <div style="position: absolute; left: 0; top: 0; width: 16px; height: 16px; background: #0095ff66; border-radius: 100%; animation: header-ping 1.5s cubic-bezier(0,0,.2,1) infinite"></div> <div style="position: absolute; left: 0; top: 0; width: 16px; height: 16px; background: white; border-radius: 100%; box-shadow: 0 0 3px #00000069;"></div> </div> </div> <div style="position: relative; padding-bottom: 12px"> <div style="width: 14px; height: 14px; border-left: 1px solid gray; border-bottom: 1px solid gray; position: absolute; top: 5px; left: calc(5% - 1px)"></div> <div style="position: relative; left: calc(5% + 20px); width: calc(90% - 20px); top: 8px; font-size: 90%; color: #555">We estimate that we have preserved about <a href="/web/20240701020026/https://annas-archive.gs/blog/blog-isbndb-dump-how-many-books-are-preserved-forever.html">5% of the world’s books</a>.</div> </div> </div> <div class="bg-[#f2f2f2] p-4 pb-3 rounded-lg mb-4"> <div class="mb-1 font-bold text-lg">Access</div> <p class="mb-4">We work with partners to make our collections easily and freely accessible to anyone. We believe that everyone has a right to the collective wisdom of humanity. And <a href="/web/20240701020026/https://annas-archive.gs/search?q=Against%20intellectual%20monopoly">not at the expense of authors</a>.</a></p> <div class="js-home-stats-downloads-chart h-[200px] mb-2 rounded overflow-hidden"></div> <div class="text-center" style="font-size: 90%; color: #555">Hourly downloads in the last 30 days. Hourly average: <span class="js-home-stats-downloads-hourly">…</span>. Daily average: <span class="js-home-stats-downloads-daily">…</span>.</div> <script> const fetchPromise = fetch("/dyn/downloads/stats/").then((response) => response.json()); const loadedPromise = new Promise((resolve, reject) => document.addEventListener("DOMContentLoaded", () => { resolve () })); Promise.all([fetchPromise, loadedPromise]).then(([json]) => { const hourlyAverage = json.timeseries_y.reduce((a,c) => a + c, 0) / json.timeseries_y.length; document.querySelector(".js-home-stats-downloads-hourly").innerText = Math.round(hourlyAverage/1000).toLocaleString() + "k"; document.querySelector(".js-home-stats-downloads-daily").innerText = Math.round(hourlyAverage*24/1000).toLocaleString() + "k"; Plotly.newPlot(document.querySelector(".js-home-stats-downloads-chart"), [{ type: "bar", x: json.timeseries_x.map((t) => new Date(t * 3600000)), y: json.timeseries_y, line: {color: '#0095ff'} }], { margin: { l: 40, r: 16, b: 50, t: 12, pad: 0 } }, {staticPlot: true}); }); </script> </div> <p class="mb-4"> We strongly believe in the free flow of information, and preservation of knowledge and culture. With this search engine, we build on the shoulders of giants. We deeply respect the hard work of the people who have created the various shadow libraries, and we hope that this search engine will broaden their reach. </p> <p class="mb-4"> To stay updated on our progress, follow Anna on <a href="https://web.archive.org/web/20240701020026/https://www.reddit.com/r/Annas_Archive/">Reddit</a> or <a href="https://web.archive.org/web/20240701020026/https://t.me/annasarchiveorg">Telegram</a>. For questions and feedback please contact Anna at <a href="/web/20240701020026/https://annas-archive.gs/contact">Contact email</a>. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="help">How can I help? <a href="#help" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <ol class="list-inside mb-4"> <li>1. Follow us on <a href="https://web.archive.org/web/20240701020026/https://www.reddit.com/r/Annas_Archive/">Reddit</a>, or <a href="https://web.archive.org/web/20240701020026/https://t.me/annasarchiveorg">Telegram</a>.</li><li>2. Spread the word about Anna’s Archive on Twitter, Reddit, Tiktok, Instagram, at your local cafe or library, or wherever you go! We don’t believe in gatekeeping — if we get taken down we’ll just pop right up elsewhere, since all our code and data is fully open source.</li><li>3. If you are able, consider <a href="/web/20240701020026/https://annas-archive.gs/donate">donating</a>.</li><li>4. Help <a href="https://web.archive.org/web/20240701020026/https://translate.annas-software.org/">translate</a> our website into different languages.</li><li>5. If you are a software engineer, consider contributing to our <a href="https://web.archive.org/web/20240701020026/https://annas-software.org/">open source</a>, or seeding our <a href="/web/20240701020026/https://annas-archive.gs/datasets">torrents</a>.</li> <li>6. If you are a security researcher, we can use your skills both for offense and defense. Check out our <a href="/web/20240701020026/https://annas-archive.gs/faq#security">Security</a> page.</li> <li>7. We are looking for experts in payments for anonymous merchants. Can you help us add more convenient ways to donate? PayPal, WeChat, gift cards. If you know anyone, please contact us.</li> <li>8. We are always looking for more server capacity.</li> <li>9. You can help by reporting file issues, leaving comments, and creating lists right on this website. You can also help by <a href="/web/20240701020026/https://annas-archive.gs/faq#upload">uploading more books</a>, or fixing up file issues or formatting of existing books.</li> <li>10. Create or help maintain the Wikipedia page for Anna’s Archive in your language.</li> <li>11. We are looking to place small, tasteful advertisements. If you’d like to advertise on Anna’s Archive, please let us know.</li> <li>12. We would love for people to set up <a href="/web/20240701020026/https://annas-archive.gs/mirrors">mirrors</a>, and we will financially support this.</li> </ol> <h3 class="group mt-4 mb-1 text-xl font-bold" id="slow">Why are the slow downloads so slow? <a href="#slow" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> <!-- TODO:TRANSLATE --> We literally do not have enough resources to give everyone in the world high-speed downloads, as much as we’d like to. If a rich benefactor would like to step up and provide this for us, that would be incredible, but until then, we’re trying our best. We’re a non-profit project that can barely sustain itself through donations. </p> <p class="mb-4"> This is why we implemented two systems for free downloads, with our partners: shared servers with slow downloads, and slightly faster servers with a waitlist (to reduce the number of people downloading at the same time). </p> <p class="mb-4"> We also have <a href="/web/20240701020026/https://annas-archive.gs/browser_verification">browser verification</a> for our slow downloads, because otherwise bots and scrapers will abuse them, making things even slower for legitimate users. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="donate">Donation FAQ <a href="#donate" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <div class="mb-4"> <div class="font-bold">Do memberships automatically renew?</div> Memberships <strong>do not</strong> automatically renew. You can join for as long or short as you want. </div> <div class="mb-4"> <div class="font-bold">Do you have other payment methods?</div> Currently not. A lot of people don’t want archives like this to exist, so we have to be careful. If you can help us set up other (more convenient) payment methods safely, please get in touch at <a href="/web/20240701020026/https://annas-archive.gs/contact">Contact email</a>. </div> <div class="mb-4"> <div class="font-bold">What do you spend donations on?</div> 100% is going to preserving and making accessible the world's knowledge and culture. Currently we spend it mostly on servers, storage, and bandwidth. No money is going to any team members personally. </div> <div class="mb-4"> <div class="font-bold">Can I make a large donation?</div> That would be amazing! For donations over a few thousand dollars, please contact us directly at <a href="/web/20240701020026/https://annas-archive.gs/contact">Contact email</a>. </div> <div class="mb-4"> <!-- TODO:TRANSLATE --> <div class="font-bold">Can I make a donation without becoming a member?</div> Sure thing. We accept donations of any amount on this Monero (XMR) address: <span class="text-xs">8C1Tdvfhj6wHHPtvMHyAmn3jgt9vF9qSdKCYFy8U9ioB2Z16tEhjLSaB8qMSfzsnQeSrbohpYAiMgcW1acmmvCHQ4YGmZip</span> </div> <h3 class="group mt-4 mb-1 text-xl font-bold" id="upload">How do I upload new books? <a href="#upload" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> For now, we suggest uploading new books to the Library Genesis forks. Here is a <a href="https://web.archive.org/web/20240701020026/https://wiki.mhut.org/content:how_to_upload" rel="noopener noreferrer" target="_blank">handy guide</a>. Note that both forks that we index on this website pull from this same upload system. If your email address doesn’t work on the Libgen forums, we recommend using <a href="https://web.archive.org/web/20240701020026/https://proton.me/" rel="noopener noreferrer" target="_blank">Proton Mail</a> (free). You can also <a href="https://web.archive.org/web/20240701020026/https://forum.mhut.org/viewtopic.php?f=6&t=29" rel="noopener noreferrer" target="_blank">manually request</a> for your account to be activated. Note that mhut.org blocks certain IP ranges, so a VPN might be required. </p> <p class="mb-4"> Alternatively, you can upload them to Z-Library <a href="https://web.archive.org/web/20240701020026/https://z-lib.gs/book-add.php" rel="noopener noreferrer" target="_blank">here</a>. </p> <p class="mb-4"> To upload academic papers, please also (in addition to Library Genesis) upload to <a href="https://web.archive.org/web/20240701020026/https://www.reddit.com/r/science_nexus/">STC Nexus</a>. They are the best shadow library for new papers. We haven’t integrated them yet, but we will at some point. You can use their <a href="https://web.archive.org/web/20240701020026/https://t.me/nexus_aaron">upload bot on Telegram</a>, or contact the address listed in their pinned message if you have too many files to upload this way. </p> <p class="mb-4"> For large uploads (over 10,000 files) that don’t get accepted by Libgen or Z-Library, please contact us at <a href="/web/20240701020026/https://annas-archive.gs/contact">Contact email</a>. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="request">How do I request books? <a href="#request" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> At this time, we cannot accomodate book requests. Please make your requests on Z-Library or Libgen forums. Do not email us your book requests. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="metadata">Do you collect metadata? <a href="#metadata" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> <a href="/web/20240701020026/https://annas-archive.gs/datasets">We do indeed.</a> Our inspiration for collecting metadata is Aaron Swartz’ goal of “one web page for every book ever published”, for which he created <a href="https://web.archive.org/web/20240701020026/https://en.wikipedia.org/wiki/Open_Library">Open Library</a>. That project has done well, but our unique position allows us to get metadata that they can’t. Another inspiration was our desire to know <a href="https://web.archive.org/web/20240701020026/https://annas-archive.gs/blog/blog-isbndb-dump-how-many-books-are-preserved-forever.html">how many books there are in the world</a>, so we can calculate how many books we still have left to save. </p> <!-- TODO:TRANSLATE everything below --> <h3 class="group mt-4 mb-1 text-xl font-bold" id="1984">I downloaded 1984 by George Orwell, will the police come at my door? <a href="#1984" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> Don’t worry too much, there are many people downloading from websites linked to by us, and it’s extremely rare to get into trouble. However, to stay safe we recommend using a VPN (paid), or <a href="https://web.archive.org/web/20240701020026/https://www.torproject.org/download/">Tor</a> (free). </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="save_search">How do I save my search settings? <a href="#save_search" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> Select the settings you like, keep the search box empty, click “Search”, and then bookmark the page using your browser’s bookmark feature. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="mobile">Do you have a mobile app? <a href="#mobile" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> We don’t have an official mobile app, but you can install this website as an app.<br> <strong>Android:</strong> Click the three-dot menu in the top right, and select “Add to Home Screen”.<br> <strong>iOS:</strong> Click the “Share” button at the bottom, and select “Add to Home Screen”. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="api">Do you have an API? <a href="#api" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> We have one stable JSON API for members, for getting a fast download URL: <a href="/web/20240701020026/https://annas-archive.gs/dyn/api/fast_download.json">/dyn/api/fast_download.json</a> (documentation within JSON itself). </p> <p class="mb-4"> For other use cases, such as iterating through all our files, building custom search, and so on, we recommend <a href="https://web.archive.org/web/20240701020026/https://software.annas-archive.gs/AnnaArchivist/annas-archive/-/blob/main/data-imports/README.md">generating</a> or <a href="/web/20240701020026/https://annas-archive.gs/torrents#aa_derived_mirror_metadata">downloading</a> our ElasticSearch and MariaDB databases. The raw data can be manually explored through JSON files such as <a href="/web/20240701020026/https://annas-archive.gs/db/aarecord/md5:8336332bf5877e3adbfb60ac70720cd5.json">this</a>. </p> <p class="mb-4"> Our raw torrents list can be downloaded as <a href="/web/20240701020026/https://annas-archive.gs/dyn/torrents.json">JSON</a> as well. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="torrents">Torrents FAQ <a href="#torrents" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> <strong>I would like to help seed, but I don’t have much disk space.</strong><br> Use the <a href="/web/20240701020026/https://annas-archive.gs/torrents#generate_torrent_list">torrent list generator</a> to generate a list of torrents that are most in need of torrenting, within your storage space limits. </p> <p class="mb-4"> <strong>The torrents are too slow, can I download the data directly from you?</strong><br> Yes, see the <a href="/web/20240701020026/https://annas-archive.gs/llm">LLM data</a> page. </p> <p class="mb-4"> <strong>Can I download only a subset of the files, like only a particular language or topic?</strong><br> Most torrents contain the files directly, which means that you can instruct torrent clients to only download the required files. To determine which files to download, you can <a href="https://web.archive.org/web/20240701020026/https://software.annas-archive.gs/AnnaArchivist/annas-archive/-/blob/main/data-imports/README.md">generate</a> our metadata, or <a href="/web/20240701020026/https://annas-archive.gs/torrents#aa_derived_mirror_metadata">download</a> our ElasticSearch and MariaDB databases. Unfortunately, a number of torrent collections contain .zip or .tar files at the root, in which case you need to download the entire torrent before being able to select individual files. </p> <p class="mb-4"> <strong>How do you handle duplicates in the torrents?</strong><br> We try to keep minimal duplication or overlap between the torrents in this list, but this can’t always be achieved, and depends heavily on the policies of the source libraries. For libraries that put out their own torrents, it’s out of our hands. For torrents released by Anna’s Archive, we deduplicate only based on MD5 hash, which means that different versions of the same book don’t get deduplicated. </p> <p class="mb-4"> <strong>Can I get the torrent list as JSON?</strong><br> <a href="/web/20240701020026/https://annas-archive.gs/dyn/torrents.json">Yes</a>. </p> <p class="mb-4"> <strong>I don’t see PDFs or EPUBs in the torrents, only binary files? What do I do?</strong><br> These are actually PDFs and EPUBs, they just don’t have an extension in many of our torrents. There are two places in which you can find the metadata for torrent files, including the file types/extensions:<br> 1. Each collection or release has its own metadata. For example, <a href="/web/20240701020026/https://annas-archive.gs/torrents#libgen_rs_non_fic">Libgen.rs torrents</a> have a corresponding metadata database hosted on the Libgen.rs website. We typically link to relevant metadata resources from each collection’s <a href="/web/20240701020026/https://annas-archive.gs/datasets">dataset page</a>.<br> 2. We recommend <a href="https://web.archive.org/web/20240701020026/https://software.annas-archive.gs/AnnaArchivist/annas-archive/-/blob/main/data-imports/README.md">generating</a> or <a href="/web/20240701020026/https://annas-archive.gs/torrents#aa_derived_mirror_metadata">downloading</a> our ElasticSearch and MariaDB databases. These contains a mapping for each record in Anna’s Archive to its corresponding torrent files (if available), under "torrent_paths" in the ElasticSearch JSON. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="security">Do you have a responsible disclosure program? <a href="#security" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> We welcome security researchers to search for vulnerabilities in our systems. We are big proponents of responsible disclosure. Contact us <a href="/web/20240701020026/https://annas-archive.gs/contact">here</a>. </p> <p class="mb-4"> We are currently unable to award bug bounties, except for vulnerabilities that have the potential to compromise our anonymity, for which we offer bounties in the $10k-50k range. We’d like to offer wider scope for bug bounties in the future! Please note that social engineering attacks are out of scope. </p> <p class="mb-4"> If you are interested in offensive security, and want to help archive the world’s knowledge and culture, be sure to contact us. There are many ways in which you can help. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="resources">Are there more resources about Anna’s Archive? <a href="#resources" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <ul class="list-inside mb-4"> <li class="list-disc"><a href="https://web.archive.org/web/20240701020026/https://annas-archive.gs/blog">Anna’s Blog</a>, <a href="https://web.archive.org/web/20240701020026/https://www.reddit.com/user/AnnaArchivist">Reddit</a>, <a href="https://web.archive.org/web/20240701020026/https://www.reddit.com/r/Annas_Archive">Subreddit</a> — regular updates</li> <li class="list-disc"><a href="https://web.archive.org/web/20240701020026/https://software.annas-archive.gs/">Anna’s Software</a> — our open source code</li> <li class="list-disc"><a href="https://web.archive.org/web/20240701020026/https://translate.annas-archive.gs/">Translate on Anna’s Software</a> — our translation system</li> <li class="list-disc"><a href="/web/20240701020026/https://annas-archive.gs/datasets">Datasets</a> — about the data</li> <li class="list-disc"><a href="https://web.archive.org/web/20240701020026/https://annas-archive.gs/">.gs</a>, <a href="https://web.archive.org/web/20240701020026/https://annas-archive.se/">.se</a> — alternative domains</li> <li class="list-disc"><a href="https://web.archive.org/web/20240701020026/https://en.wikipedia.org/wiki/Anna%27s_Archive">Wikipedia</a> — more about us (please help keep this page updated, or create one for your own language!)</li> </ul> <h3 class="group mt-4 mb-1 text-xl font-bold" id="copyright">How do I report copyright infringement? <a href="#copyright" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> We do not host any copyrighted materials here. We are a search engine, and as such only index metadata that is already publicly available. When downloading from these external sources, we would suggest to check the laws in your jurisdiction with respect to what is allowed. We are not responsible for content hosted by others. </p> <p class="mb-4"> If you have complaints about what you see on here, your best bet is to contact the original website. We regularly pull their changes into our database. If you really do think you have a valid DMCA complaint we should respond to, please fill out the <a href="/web/20240701020026/https://annas-archive.gs/copyright">DMCA / Copyright claim form</a>. We take your complaints seriously, and will get back to you as soon as possible. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="hate">I hate how you’re running this project! <a href="#hate" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> We would also like to remind everyone that all our code and data is completely open source. This is unique for projects like ours — we're not aware of any other project with a similarly massive catalog that is fully open source as well. We very much welcome anyone who thinks we run our project poorly to take our code and data and set up their own shadow library! We're not saying this out of spite or something — we genuinely think this would be awesome since it would raise the bar for everyone, and better preserve humanity's legacy. </p> <h3 class="group mt-4 mb-1 text-xl font-bold" id="favorite">What are your favorite books? <a href="#favorite" class="custom-a invisible group-hover:visible text-gray-400 hover:text-gray-500 font-normal text-sm align-[2px]">§</a></h3> <p class="mb-4"> Here are some books that carry special significance to the world of shadow libraries and digital preservation. </p> <a href="/web/20240701020026/https://annas-archive.gs/search?q=Against%20intellectual%20monopoly" class="custom-a flex items-center relative left-[-10] px-[10] py-2 hover:bg-black/6.7" rel="nofollow"> <div class="flex-none"> <div class="relative overflow-hidden w-[72] h-[108] flex flex-col justify-center"> <div class="absolute w-full h-[90]" style="background-color: hsl(40deg 43% 73%)"></div> <img class="relative inline-block" src="https://web.archive.org/web/20240701020026im_/https://libgen.rs/covers/110000/8336332bf5877e3adbfb60ac70720cd5-d.jpg" alt="" referrerpolicy="no-referrer" onerror="this.parentNode.removeChild(this)" loading="lazy" decoding="async"/> </div> </div> <div class="relative top-[-1] pl-4 grow overflow-hidden"> <h3 class="group text-xl font-bold">Against intellectual monopoly</h3> <div class="text-lg italic">Levine, David K, Boldrin, Michele</div> </div> </a> <a href="/web/20240701020026/https://annas-archive.gs/search?q=Cryptonomicon" class="custom-a flex items-center relative left-[-10] px-[10] py-2 hover:bg-black/6.7" rel="nofollow"> <div class="flex-none"> <div class="relative overflow-hidden w-[72] h-[108] flex flex-col justify-center"> <div class="absolute w-full h-[90]" style="background-color: hsl(118deg 43% 73%)"></div> <img class="relative inline-block" src="https://web.archive.org/web/20240701020026im_/https://libgen.rs/fictioncovers/617000/61a1797d76fc9a511fb4326f265c957b.jpg" alt="" referrerpolicy="no-referrer" onerror="this.parentNode.removeChild(this)" loading="lazy" decoding="async"/> </div> </div> <div class="relative top-[-1] pl-4 grow overflow-hidden"> <h3 class="group text-xl font-bold">Cryptonomicon</h3> <div class="text-lg italic">Stephenson, Neal</div> </div> </a> <a href="/web/20240701020026/https://annas-archive.gs/search?q=The%20Boy%20Who%20Could%20Change%20the%20World%3A%20The%20Writings%20of%20Aaron%20Swartz" class="custom-a flex items-center relative left-[-10] px-[10] py-2 hover:bg-black/6.7" rel="nofollow"> <div class="flex-none"> <div class="relative overflow-hidden w-[72] h-[108] flex flex-col justify-center"> <div class="absolute w-full h-[90]" style="background-color: hsl(207deg 43% 73%)"></div> <img class="relative inline-block" src="https://web.archive.org/web/20240701020026im_/https://libgen.rs/covers/4309000/0d9b713d0dcda4c9832fcb056f3e4102-g.jpg" alt="" referrerpolicy="no-referrer" onerror="this.parentNode.removeChild(this)" loading="lazy" decoding="async"/> </div> </div> <div class="relative top-[-1] pl-4 grow overflow-hidden"> <h3 class="group text-xl font-bold">The Boy Who Could Change the World: The Writings of Aaron Swartz</h3> <div class="text-lg italic">Aaron Swartz [Swartz, Aaron]</div> </div> </a> <a href="/web/20240701020026/https://annas-archive.gs/search?q=How%20Music%20Got%20Free" class="custom-a flex items-center relative left-[-10] px-[10] py-2 hover:bg-black/6.7" rel="nofollow"> <div class="flex-none"> <div class="relative overflow-hidden w-[72] h-[108] flex flex-col justify-center"> <div class="absolute w-full h-[90]" style="background-color: hsl(299deg 43% 73%)"></div> <img class="relative inline-block" src="https://web.archive.org/web/20240701020026im_/https://libgen.rs/covers/2705000/6963187473f4f037a28e2fe1153ca793-g.jpg" alt="" referrerpolicy="no-referrer" onerror="this.parentNode.removeChild(this)" loading="lazy" decoding="async"/> </div> </div> <div class="relative top-[-1] pl-4 grow overflow-hidden"> <h3 class="group text-xl font-bold">How Music Got Free</h3> <div class="text-lg italic">Witt, Stephen R</div> </div> </a> <a href="/web/20240701020026/https://annas-archive.gs/search?q=%D0%A4%D0%B8%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D1%8D%D0%BD%D1%86%D0%B8%D0%BA%D0%BB%D0%BE%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F.%20%D0%90%D0%B0%D1%80%D0%BE%D0%BD%D0%BE%D0%B2%D0%B0%20%E2%80%93%20%D0%94%D0%BB%D0%B8%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%A2%D0%BE%D0%BC%201" class="custom-a flex items-center relative left-[-10] px-[10] py-2 hover:bg-black/6.7" rel="nofollow"> <div class="flex-none"> <div class="relative overflow-hidden w-[72] h-[108] flex flex-col justify-center"> <div class="absolute w-full h-[90]" style="background-color: hsl(82deg 43% 73%)"></div> <img class="relative inline-block" src="https://web.archive.org/web/20240701020026im_/https://libgen.rs/covers/336000/6ed2d768ec1668c73e4fa742e3df78d6-d.jpg" alt="" referrerpolicy="no-referrer" onerror="this.parentNode.removeChild(this)" loading="lazy" decoding="async"/> </div> </div> <div class="relative top-[-1] pl-4 grow overflow-hidden"> <h3 class="group text-xl font-bold">Физическая энциклопедия. Ааронова – Длинные Том 1</h3> <div class="text-lg italic">А. М. Прохоров</div> </div> </a> </main> <footer class="bg-black/5 text-[#777]" style="box-shadow: 0px 0px 7px rgb(0 0 0 / 30%)"> <div class="max-w-[1050px] mx-auto p-[12px] leading-relaxed flex flex-wrap"> <div class="mr-4 mb-4 grow"> <strong class="font-bold text-black">Anna’s Archive</strong><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/">Home</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/search">Search</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/scidb">🧬 SciDB</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/faq">FAQ</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/donate">Donate</a><br> <select class="p-1 rounded text-gray-500 mt-1 max-w-[110px]" onchange="handleChangeLang(event)"> <option value="en">🌐 English [en]</option> <option value="ar">العربية [ar]</option> <option value="be">беларуская [be]</option> <option value="bg">български [bg]</option> <option value="bn">বাংলা [bn]</option> <option value="br">Brasil: português [br]</option> <option value="ca">català [ca]</option> <option value="cs">čeština [cs]</option> <option value="de">Deutsch [de]</option> <option value="el">Ελληνικά [el]</option> <option value="en">English [en] ☑️</option> <option value="eo">esperanto [eo]</option> <option value="es">español [es]</option> <option value="fa">فارسی [fa]</option> <option value="fr">français [fr]</option> <option value="gl">galego [gl]</option> <option value="he">עברית [he]</option> <option value="hi">हिन्दी [hi]</option> <option value="hu">magyar [hu]</option> <option value="id">Indonesia [id]</option> <option value="it">italiano [it]</option> <option value="ja">日本語 [ja]</option> <option value="ko">한국어 [ko]</option> <option value="lt">lietuvių [lt]</option> <option value="ml">മലയാളം [ml]</option> <option value="ms">Melayu [ms]</option> <option value="ne">नेपाली [ne]</option> <option value="nl">Nederlands [nl]</option> <option value="no">norsk bokmål [no]</option> <option value="or">ଓଡ଼ିଆ [or]</option> <option value="pl">polski [pl]</option> <option value="pt">Portugal: português [pt]</option> <option value="ro">română [ro]</option> <option value="ru">русский [ru]</option> <option value="sk">slovenčina [sk]</option> <option value="sl">slovenščina [sl]</option> <option value="sq">shqip [sq]</option> <option value="sr">српски [sr]</option> <option value="sv">svenska [sv]</option> <option value="tr">Türkçe [tr]</option> <option value="tw">中文 (繁體) [tw]</option> <option value="uk">українська [uk]</option> <option value="ur">اردو [ur]</option> <option value="vec">Veneto [vec]</option> <option value="vi">Tiếng Việt [vi]</option> <option value="zh">中文 [zh]</option> </select> </div> <div class="mr-4 mb-4 grow grow"> <strong class="font-bold text-black">Stay in touch</strong><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/contact">Contact email</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/copyright">DMCA / copyright claims</a><br> <a class="custom-a hover:text-[#333]" href="https://web.archive.org/web/20240701020026/https://www.reddit.com/r/Annas_Archive">Reddit</a> / <a class="custom-a hover:text-[#333]" href="https://web.archive.org/web/20240701020026/https://t.me/annasarchiveorg">Telegram</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/blog">Anna’s Blog ↗</a><br> <a class="custom-a hover:text-[#333]" href="https://web.archive.org/web/20240701020026/https://software.annas-archive.gs/">Anna’s Software ↗</a><br> <a class="custom-a hover:text-[#333]" href="https://web.archive.org/web/20240701020026/https://translate.annas-archive.gs/">Translate ↗</a><br> </div> <div class="mr-4 mb-4 grow"> <strong class="font-bold text-black">Advanced</strong><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/faq">FAQ</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/datasets">Datasets</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/torrents">Torrents</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/mirrors">Mirrors: call for volunteers</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/llm">LLM data</a><br> <a class="custom-a hover:text-[#333]" href="/web/20240701020026/https://annas-archive.gs/faq#security">Security</a><br> </div> <div class="grow"> <strong class="font-bold text-black">Alternatives</strong><br> <a class="custom-a hover:text-[#333] js-annas-archive-gs" href="https://web.archive.org/web/20240701020026/https://annas-archive.gs/">annas-archive.gs</a><br> <a class="custom-a hover:text-[#333] js-annas-archive-se" href="https://web.archive.org/web/20240701020026/https://annas-archive.se/">annas-archive.se</a><br> </div> </div> </footer> <script> (function() { // Possible domains we can encounter: const domainsToReplace = ["annas-" + "archive.org", "annas-" + "archive.gs", "annas-" + "archive.se", "localtest.me:8000", "localtest.me", window.baseDomain]; const validDomains = ["annas-" + "archive.org", "annas-" + "archive.gs", "annas-" + "archive.se", "localtest.me:8000", "localtest.me"]; // For checking and redirecting if our current host is down (but if Cloudflare still responds). const initialCheckMs = 0; const intervalCheckOtherDomains = 10000; const domainsToNavigateTo = ["annas-" + "archive.org", "annas-" + "archive.gs", "annas-" + "archive.se"]; // For testing: // const domainsToNavigateTo = ["localtest.me:8000", "testing_redirects.localtest.me:8000"]; // const isInvalidDomain = false; // const isInvalidDomain = true; const isInvalidDomain = !validDomains.includes(window.baseDomain); if (isInvalidDomain) { console.log("Invalid domain"); // If the domain is invalid, replace window.baseDomain first, in case the domain // is something weird like 'weird.annas-archive.gs'. domainsToReplace.unshift(window.baseDomain); } // First, set the mirror links at the bottom of the page. const loc = "" + window.location; let currentDomainToReplace = "localtest.me"; for (const domain of domainsToReplace) { if (loc.includes(domain)) { currentDomainToReplace = domain; break; } } for (const el of document.querySelectorAll(".js-annas-archive-org")) { el.href = loc.replace(currentDomainToReplace, "annas-" + "archive.org"); } for (const el of document.querySelectorAll(".js-annas-archive-gs")) { el.href = loc.replace(currentDomainToReplace, "annas-" + "archive.gs"); } for (const el of document.querySelectorAll(".js-annas-archive-se")) { el.href = loc.replace(currentDomainToReplace, "annas-" + "archive.se"); } // Use the new domain in all links and forms. let areUsingOtherDomain = false; function useOtherDomain(domain) { if (areUsingOtherDomain) { return; } areUsingOtherDomain = true; if (isInvalidDomain) { const newLoc = loc.replace(currentDomainToReplace, domain); if (newLoc !== loc) { window.location = newLoc; return; } } const newOrigin = window.location.origin.replace(currentDomainToReplace, domain); for (const el of document.querySelectorAll("a")) { el.href = el.href.replace(currentDomainToReplace, domain); } for (const el of document.querySelectorAll("form")) { el.action = el.action.replace(currentDomainToReplace, domain); } } // useOtherDomain('annas-archive.gs'); // For testing. function getRandomString() { return Math.random() + "." + Math.random() + "." + Math.random(); } // Check if there are other domains that are still up. Use the first one that responds. let foundOtherDomain = false; function checkOtherDomains() { console.log('checkOtherDomains'); if (foundOtherDomain) { return; } const otherFetchOptions = { mode: "cors", method: "GET", credentials: "omit", cache: "no-cache", redirect: "error" }; for (const domain of domainsToNavigateTo) { if (currentDomainToReplace !== domain) { fetch('//' + domain + '/dyn/up/?' + getRandomString(), otherFetchOptions).then(function(response) { if (foundOtherDomain) { return; } if (!(response.status >= 500 && response.status <= 599)) { foundOtherDomain = true; useOtherDomain(domain); } }).catch(function() { // Ignore. }); } } } // If we're not on a valid domain, try to go to a valid domain. if (isInvalidDomain) { checkOtherDomains(); // Keep checking in case one comes online. setInterval(checkOtherDomains, intervalCheckOtherDomains); } else { // Keep checking the current domain once, to see if it's still up. function checkCurrentDomain() { const currentFetchOptions = { method: "GET", credentials: "same-origin", cache: "no-cache", redirect: "error" }; fetch('/dyn/up/?' + getRandomString(), currentFetchOptions).then(function(response) { // Only do something in the case of an actual error code from Cloudflare, not if the users network is bad. if (response.status >= 500 && response.status <= 599) { checkOtherDomains(); // Keep checking in case one comes online. setInterval(checkOtherDomains, intervalCheckOtherDomains); } if (response.status === 200) { return response.json().then(function(jsonResponse) { window.globalUpdateAaLoggedIn(jsonResponse.aa_logged_in); }); } }).catch(function() { // Ignore; see above. }); } setTimeout(checkCurrentDomain, initialCheckMs); } })(); </script> <!-- Cloudflare Web Analytics --><script defer src="https://web.archive.org/web/20240701020026js_/https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon="{"token": "a60431b24db04cf2beeef0864f1df5e4"}"></script><!-- End Cloudflare Web Analytics --> <script>(function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'89c2cd6e0eeb9e6e',t:'MTcxOTc5OTIyNy4wMDAwMDA='};var a=document.createElement('script');a.nonce='';a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body> </html><!-- FILE ARCHIVED ON 02:00:26 Jul 01, 2024 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 06:34:18 Nov 24, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.617 exclusion.robots: 0.032 exclusion.robots.policy: 0.019 esindex: 0.013 cdx.remote: 21.467 LoadShardBlock: 257.71 (3) PetaboxLoader3.datanode: 239.673 (4) PetaboxLoader3.resolve: 117.363 (2) load_resource: 163.469 -->