audible-dl
An archiving tool for Audible audiobook libraries
Commit history
commit e0614be37f23626ace96b71e22e59f21e40d7dd5 Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 21:02:41 2022 -0700 Moved scraping and logging together into a separate function commit f6437c8b1d0b1cd91d3525a5b8967d71db59c54c Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 20:59:26 2022 -0700 Moved printing utilities to the top commit c201c62199650238f3d9e02297ba749e1a0ab00a Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 17:56:47 2022 -0700 Removed escape codes from strings, improved readability commit 214615c230b031f9c1972844f40debc9e387913a Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 17:41:18 2022 -0700 Moved scrape printing to another function commit bd8a187616539ccd763faf8f5643e33fe773738c Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 17:29:29 2022 -0700 Added warning and extra TODOs to README commit dea35eb0f688f76ace2f09db678055116115dc99 Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 16:40:21 2022 -0700 We should make the directories commit b03d242b45e7ae2581fe3f5b68a16922efa6aad4 Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 16:28:48 2022 -0700 Fixed typo commit a76aee496b4c95e191d20811c11d0382cead0c7a Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 16:17:33 2022 -0700 Yaml import was in wrong file commit ef0dcfb7349aa3092331d12e5eac084ed193b788 Author: ꙮ <ymir@ulthar.xyz> Date: Thu Jul 7 15:12:53 2022 -0700 Added man page commit 728597e33ffe250a1c97cbf7eda73436ec9cf258 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Jul 4 12:06:05 2022 -0700 Added docstrings to account.go commit 1e7d81e0090a66e7193b5d668e47e99cb7227ff8 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Jul 4 12:00:21 2022 -0700 Added docstrings to client.go commit 1bae98af2077c63660a18543bb0da97b729150d2 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Jul 4 11:20:45 2022 -0700 getData() is a constructor for Clients and should be treated as such commit 2c2a48d11097d1f55ae1b122e2a2318c624c0194 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Jul 4 11:20:16 2022 -0700 Added doc strings commit a8ad146ae88a7ca72773a054e1b80519730fb67a Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jul 3 13:17:39 2022 -0700 Rewrote simple README commit a308de9e92b2a05e52085cd11e57dc757b85cad7 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jul 3 13:06:08 2022 -0700 Moved client and account structs and their methods into seperate files commit 8de69ca07f054d809fedf63476fff80ab962be8f Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jul 3 12:51:05 2022 -0700 ConvertSingleBook should return the path rather than print it In download mode this prevents the output from being messed up and makes the renaming process slightly less annoying. I also fixed a dumb bug where I was renaming the unconverted .aax file to .m4b commit 64680a977910e7903f07add4c3693fbe84ba425b Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jul 3 12:46:40 2022 -0700 Most of these functions should be methods of the client struct commit 1e9fef284a94173985dfb4a9982c49e4fc27b90c Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jul 3 12:10:32 2022 -0700 Removed prints commit 7db8c03458170ea3e91a7bf1bd878edaeb5c674c Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jul 3 12:06:15 2022 -0700 Implemented book downloading Everything basically works, including checking and saving the downloaded books cache and converting the downloaded books. commit 8a99e2e530ccd93c7581f4d7c5ca86e7371b63bc Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jul 3 12:05:08 2022 -0700 Don't extract the download URL, it follows a simple schme commit d6f8e09a55e10357059300b06e12d64b8a13b3f6 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jul 3 08:31:23 2022 -0700 Moved datadir into the client struct commit 957084767991558dab468cc02ff3300e71e009fc Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 22:29:21 2022 -0700 All directories need trailing slashes commit 23763af54b914ff2b421fae8e7dda843afa3e8f9 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 22:04:22 2022 -0700 This pollutes the logs commit f99dca1d51dbe638ee6074aa69eaa24ae4c45ca1 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 22:01:53 2022 -0700 Don't open the log file in append mode commit 10957afd080e98de304235cacc0372056ad6dc0d Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 21:55:46 2022 -0700 Added more debug logs commit ca1c7d84a75415f8b1860c3689ec6f97f77ce4e8 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 21:55:13 2022 -0700 Added persistent logging commit 69f71817f7e8d06409ba22a8a4e8229e851febe3 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 20:29:45 2022 -0700 Added a table of books we've already downloaded The idea here is that the user may want to rename and organize the downloaded files commit 8b5778a3b3bf4b8bd2eebff4c499c4733a480fd8 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 20:26:17 2022 -0700 I'm not going to do this rename yet commit bc9108e73744f50925961d583b00414fe93dc1f1 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 20:01:15 2022 -0700 Did some refactoring to remove authdir and add datadir Datadir will hold miscellaneous files, including now the auth cookies and in coming commits a list of downloaded books commit 6ea8e7315836705e5e42aa9c4d1c8d222cfddd16 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 19:27:55 2022 -0700 Major bug fix! We're now correctly loading cookies into the struct This little SOB had me chasing all over the place, turns out the iterator in range-based for loops isn't a pointer to the original object 😅. At least it acted as encouragement to add much-needed logging functionality to the scraper. commit 3f753aa410785e50a26924e18c52683ef7132130 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 19:27:24 2022 -0700 Added a debug function to pretty-print an account commit 8221453f5e02958ff100b9935d906786b30cb871 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 11:00:31 2022 -0700 re-initialized the go module commit 3ace2d4c7aa5a65249d54f078366d1f7ad48d9dd Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 11:00:21 2022 -0700 removed old junk commit 7c00dda0e2db9a82cb0aa40c04302c2712a02c3b Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 10:45:01 2022 -0700 show the bad token commit 6fb0e7850618bcd53c8ce4fe69afdd4661f9110c Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 2 10:44:39 2022 -0700 Added a more helpful message commit 4ba1765d3f1bb243aa0bfdf5c3c64af49e173457 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Jul 1 22:18:09 2022 -0700 The extractor should be an account method commit 518ddb12e2a89c871ba083117332fbaa45f7b506 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Jul 1 22:08:53 2022 -0700 Added a logging method to aid in debugging the scraper commit 1197742e5946bf9b066c0af651a0213adc39e0b4 Author: ꙮ <ymir@ulthar.xyz> Date: Thu May 12 11:34:47 2022 -0700 moved scraper into the new file The scraper isn't quite working, I'm not sure if this is an error on my end or a change to the damn html. I should probably add a debugging flag to print the status of the webscraper... commit 0135f8fc75cda5e6f3bfcc9ce304a5382fd01de1 Author: ꙮ <ymir@ulthar.xyz> Date: Wed Apr 27 21:44:25 2022 -0700 nice big section comments commit 7e9a431cd9271c9f83ae243dc25dcdfef3c020ad Author: ꙮ <ymir@ulthar.xyz> Date: Wed Apr 27 21:37:59 2022 -0700 added a config key to tell program not to scrape an account This may be useful when your Audible library is shared by a family so you only need a single set of cookies to scrape it, but you need all members' bytes to convert all the books. commit b7e8a38b170ba354eedf9ce46efb466d744df2f1 Author: ꙮ <ymir@ulthar.xyz> Date: Wed Apr 27 20:34:21 2022 -0700 80 column line breaks commit 10b599c66b703a0ca8f0b49ffdb2b41ab7c7623e Author: ꙮ <ymir@ulthar.xyz> Date: Tue Apr 26 20:15:08 2022 -0700 Added single-file conversion commit ff5a58523206708d3fdb0827400c77c86e7066cb Author: ꙮ <ymir@ulthar.xyz> Date: Sat Apr 23 11:11:20 2022 -0700 Added HAR-import method commit 04e16ce0e542e1faf22f2b5aacbd4d2023c6d11c Author: ꙮ <ymir@ulthar.xyz> Date: Sat Apr 23 10:50:37 2022 -0700 We need a yml parser for the config file commit e1ecca6705c2ddaf682b5e5b895a87bdb419f2e7 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Apr 23 10:47:53 2022 -0700 Reworked user interface This is an ex-nihilo rewrite of the command-line, configuration, and environment logic for audible-dl that *appears* to replicate the desired functionality. I now need to re-work the scraper code for the new multi-acount functionality and hook them together, then implement a nice concurrent command-line status. In the end I'll probably do away with the library/main architecture and just stick everything in a few package main files. commit b9bad49a0f666eaff51d07cb6793927e70831ec1 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Dec 24 18:04:03 2021 -0800 Moved har import function to library commit bbec3a62fa2596bccf720bbc4b7033631ed45dd5 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Dec 24 16:55:08 2021 -0800 Fixed -a handling to not mangle files and not depend on data file commit 5e2db0de78aa750a841f22a35176b7fc4cea3915 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Dec 24 16:54:29 2021 -0800 Move converter into the library; only remove aax file when scraping commit ea28c441ca15d314846851da889c5095bbc8be04 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Dec 24 16:49:42 2021 -0800 Move initialization function to library & simplify logic in main Now that the configuration data is being stored in the audibledl.Client it makes sense to move the initialization code there as well. Previously we could only convert a single book with -a from the audiobooks directory, now it can be anywhere as long as -b s specified commit b4b0ec5c578e4e8d05e58a761bfddfa461e1b923 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Dec 24 12:11:08 2021 -0800 Use a channel to send the page number to the caller rather than printing in the library commit 401dd9cf4e316830948817e6159a354b6efe9830 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Dec 24 12:02:43 2021 -0800 Reworked RetrieveBooksListing into ScrapeLibraryUntil This produces two API functions allowing the user to either scrape the full library or do a more efficient scrape up to a known book commit 323eb6538e28f0d65ab518d8f4e061b7b0c126f0 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Dec 24 11:55:50 2021 -0800 Cleaned up RetrieveBookListings, moving book-detection logic to tokBeginsBook() commit 47b30e918afca62cdfd06c4eec8426b7d8687dab Author: ꙮ <ymir@ulthar.xyz> Date: Thu Dec 23 05:00:54 2021 -0800 Filter out more characters commit 1713b831ce4f65880eaf0f184d1a54f546e83f9f Author: ꙮ <ymir@ulthar.xyz> Date: Thu Dec 23 04:41:45 2021 -0800 Remove dots commit cbc81a741c8bc936565b2189e334d7c5c4ff8be8 Author: ꙮ <ymir@ulthar.xyz> Date: Wed Dec 22 08:43:09 2021 -0800 Moved the file existence detection into another function; reducing nesting commit 78216cc9813e19f8972e4cbd64d96cbfe5e0b0be Author: ꙮ <ymir@ulthar.xyz> Date: Tue Dec 21 05:29:15 2021 -0800 Skip books that don't offer a download URL Because apparently it's possible to return books to audible commit 11f3bdc770b668c23e31f339d0d3ff02282fe533 Author: ꙮ <ymir@ulthar.xyz> Date: Tue Dec 21 05:22:33 2021 -0800 Comply with gofmt commit 8690c2eb98697c5ba10f05448676ee5d88657833 Author: ꙮ <ymir@ulthar.xyz> Date: Tue Dec 21 05:17:33 2021 -0800 Started reorganizing the scraper into the audibledl package commit 8629a43bc3be4c240bef25b52b962b7b4134a622 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Dec 19 15:42:18 2021 -0800 Download the full file when multiple parts are downloaded This damn bug let slip a major spoiler in The Dark Tower >:( commit 5c845d0facdda24625b9059c69b2706e5a1705e1 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Dec 19 15:40:42 2021 -0800 Actually build it when I write make I'm so bad at writing Makefiles -_- commit 59112ec2d69d05912065872674612d6fbaee7393 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Oct 16 09:26:52 2021 -0700 Added notice of scraper bug and removed TODO entry commit ef3f4484531e545c1631139140efe6fdb8f54381 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Oct 16 09:24:41 2021 -0700 Added an option to convert a single file and refactored convertAAXtoM4B accordingly commit 475c7c8f599b6e8455564c6523071929a6cdfbd8 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Oct 11 14:17:54 2021 -0700 Build a proper (still synchronous :() downloader and converter commit af790a7c756e76c9accbe69a2342fe9846db509c Author: ꙮ <ymir@ulthar.xyz> Date: Mon Oct 11 13:44:29 2021 -0700 Go fmt commit 992651b5f85fdb634d57076f53879420e18d52fb Author: ꙮ <ymir@ulthar.xyz> Date: Mon Oct 11 10:53:16 2021 -0700 Updated README commit 6b7dd0106d834ade493ddddd590d1cc370528562 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Oct 11 10:53:06 2021 -0700 Added a makefile commit 6dca257883c18722e3606e6c8ec85ccdd32b07f8 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Oct 11 10:30:44 2021 -0700 Store the error messages as string literals commit 35a63ab51cdd37af28bb17b8deceadd8621ec7f1 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Oct 11 10:23:17 2021 -0700 Save the page source if the scraper fails commit f0d2104b7035307474e763b5e20a0602983d3956 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Oct 9 16:35:52 2021 -0700 Using bytes as a variable name causes conflict with the bytes package commit c5e173ba581cd865f4a2a8a9e6c1b86e342b0ebe Author: ꙮ <ymir@ulthar.xyz> Date: Fri Oct 8 09:55:56 2021 -0700 Fixed comment typo; alert user when setting cookies and bytes commit 2b173cf01d67d1ab7e4832a7e4d08cb2cf0bc5c2 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Oct 8 09:49:53 2021 -0700 m4b, not opus commit 9a6a6546e52d83620fe9b3766162dfd0fad9d900 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Oct 8 09:48:04 2021 -0700 Give the user some guidance in case the scraper failed commit 8c16048fb5ee83851ad4800241c6bd798c42ff96 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Sep 25 18:40:35 2021 -0700 Updated README commit 1cfc01e560a47e4a8d088713c62c0ccf7e8e23b3 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Sep 25 18:24:52 2021 -0700 Removed old code commit 9d2579de1a4c52de37b41bd762ac122f001e548b Author: ꙮ <ymir@ulthar.xyz> Date: Sat Sep 25 18:14:16 2021 -0700 Store partial files in the system's cache directory This seems like a clearly good solution for partially downloaded files, however I'm not sure about storing converted files there before moving them to pwd. If they're on the same filesystem this isn't a problem, but my laptop's audiobooks directory is on a different parition than ~/.cache/, and the os.Rename() operation takes a good few seconds. The theory behind converting files into the cache directory is to avoid littering the audiobooks directory with corrupted files in the event of premature failure (eg, SIGKILL). I wonder if there would be a better way around this; perhaps detaching the ffmpeg processes? commit 48b392bcd70a75ee0196b654f18e461b2981ba5b Author: ꙮ <ymir@ulthar.xyz> Date: Wed Sep 22 11:02:43 2021 -0700 Made page scraping prints more concise commit deeef86d2f266487b606c0cb30dd5d25e7e86d03 Author: ꙮ <ymir@ulthar.xyz> Date: Wed Sep 22 10:18:56 2021 -0700 Ignore m4b files commit c86b6200995720a8214773ff70c0676600ba4cd8 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Sep 20 15:41:48 2021 -0700 Tweaked loop to assist in debugging Next we're going to implement concurrent downloads and conversions; this should allow us to get multiple books going without downloading everything. That comes *much* later lol commit 3c9ce8ed975007b009e63d701c7cfdc211806ee0 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Sep 20 15:38:14 2021 -0700 Added converter. It works! We're doing m4b files instead of opus now because a) ffmpeg will properly convert the cover art, and b) they're literally made for audiobooks commit 15d5da6849ab7cdb543ab674bd4959e8cb97b330 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Sep 20 15:19:29 2021 -0700 Duh, the directories need to be writable commit b5bd92b6a17480eb94252c385b19db46b90b3cb1 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Sep 20 15:19:09 2021 -0700 Ported over the downloader function commit 9e07e21d6a62a6a2222d076fcb69fec129c1937a Author: ꙮ <ymir@ulthar.xyz> Date: Mon Sep 20 10:42:57 2021 -0700 Add comment to explain why we're skipping some cookies commit 795077f41d10b853e138da21aa1501492d9ee4ed Author: ꙮ <ymir@ulthar.xyz> Date: Mon Sep 20 10:39:40 2021 -0700 Create and remove temporary directories commit 9da7b5ef06808435d740f6342dad2eef75648225 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Sep 20 10:38:14 2021 -0700 Added explanatory comments, removed old testing stuff, and added book presence checking commit a271981219ffa774de33308795a3d67c6003ee7d Author: ꙮ <ymir@ulthar.xyz> Date: Sun Sep 19 21:57:52 2021 -0700 Silenced the net/http's complaint about double quotes in cookie values Fortunately it looks like those cookies aren't required for authentication commit c6af0f7529017a9d725ba9cafbec7f2bf18641e9 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Sep 19 21:46:54 2021 -0700 Re-integrated the scraper, the HAR file solution works! We're now able to successfully download a listing of books from audible using the cookies imported from a HAR file of a request to audible.com/library/titles while signed in. Interestingly, while fetching the pages, net/http complains that five of the cookies contain invalid double quote characters. Hopefully we'll be able to remove those cookies and still be able to sign in... commit 60c3330533cd80b923ae490fbce7220e56a5d153 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Sep 19 20:15:50 2021 -0700 Ignore the executable and .audible-dl.json commit 26ed1dcdebf4c9571990efd373301c330991066c Author: ꙮ <ymir@ulthar.xyz> Date: Sun Sep 19 20:12:34 2021 -0700 Initial commit of the rewrite. We're able to take activation bytes and the path to a HAR file on the command line, import the cookies from the HAR file, and save that information in ./.audible-dl.json. If this file exists, we're able to read it and dump it to the command line. Next up I'll be re-integrating the scraper so that we can start downloading book metadata commit 25658df1876aa19ffb6f69514d2800b80b4e7188 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Sep 19 20:01:19 2021 -0700 We need these commit 4ed6429ad26da3b7377c119081d730d27dc90929 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Sep 19 17:00:25 2021 -0700 Declaring bankruptcy and rewriting this shit from scratch commit 08909a04b8123677b85ea501e6ade7f5276b6a60 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Sep 19 16:58:54 2021 -0700 track makefile commit 707a4010e9c4d6493c0f7db227ab3376412ce591 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Aug 20 16:57:14 2021 -0700 Moved status prints into getLibraryPage() in order to clean up output commit 9223521b5caa29ed7bb786a52d87f4ce546d2b10 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Aug 20 12:55:49 2021 -0700 Added a function to sign in to audible.com I don't know for sure if this fetches the right cookies. Currently we fail with the message "Audible changed their website", however the error handling and exectution model of GetAllBooks and the functions it calls is so brittle and cursed that I'm not sure what's going on. A major overhaul is needed commit afe9d05b25a17fc7d383f5b022a1f129aec7df9e Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 10 15:15:42 2021 -0700 Moved book pretty-printing to the test commit 0b78a05bc98dd45e641f04288b6cbb7da8f1ba5e Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jul 10 15:14:53 2021 -0700 Set things up for a cookie renewal function commit c90359345f703f464de0364446c1e0a2b2613225 Author: ꙮ <ymir@ulthar.xyz> Date: Tue Jun 29 15:09:39 2021 -0700 Dammit emacs, stop aliging with tabs! commit 37c306c9f1134f96e9dcfd87f1ba756cf3bcbdb1 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Jun 28 13:41:00 2021 -0700 Updated info commit baab33d9dd7e1b0bc6ef3e45e11d1d644f6b5b48 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 27 16:50:36 2021 -0700 Added GPL commit f5fc0bccdb3be6fad07dd4501c5099cb36848f02 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 27 16:49:27 2021 -0700 Added README commit 6ab120fac840232768bde7eaee01f7319bd737c1 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 27 16:24:29 2021 -0700 Made error prints a little nicer commit 8a2a1c2b606679bf13cfaae21084437622c247b2 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 27 16:19:37 2021 -0700 Use cli args with the struct in config.go to pass activation bytes to converter Later we'll fill out the Config struct, add more command line arguments, and load options from a json file. commit a5993d14e7cd3d0f3582201de01717bead485747 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 27 10:49:47 2021 -0700 Do I need this here? commit db1e741c6e5c0923dd93267150ebf338ddf1373b Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 27 10:47:42 2021 -0700 Recover previously downloaded files commit d860f6d2e5efe4013c1b6b7b765e2300a4c48cae Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 27 10:47:07 2021 -0700 We need to make the directory after deleting it 🙄 commit 469088cc5889ee199993217cd3d71c1a3ce9f4fc Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 27 08:40:06 2021 -0700 Make these directories in the opposite order so that ffmpeg doesn't fail when recovering commit df0365abe5f442fd88d0300459d1772d81ac4386 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 26 23:18:37 2021 -0700 Formatting, wrote propper recovery prints commit 7d723e6d8c8411e58f8405cbdc03e5d709a3a6af Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 26 23:16:03 2021 -0700 We can now (inefficiently) find which books we need to download This kind of thing is tricky to test, so I'm not 100% sure that it's okay. commit 3576646e66835810a7e9878837341de830d4cfa1 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 26 21:41:03 2021 -0700 Failure print should be red, not green commit 8ff3e37d623172002d43ff9471d76edcef83f294 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 26 20:08:50 2021 -0700 Added better error notifications commit 20c8ce99d255e2e4c31b7dfb714e74801b4cc572 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 26 20:05:32 2021 -0700 Made error printouts more obvious commit 5748eeff5f6ba0a601d8462ed57b099f17e9c7d8 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 26 20:04:14 2021 -0700 It works! - Added initial logic for the tmp directories - Added nice printouts - Added cracker function commit d9b8c3ba34921eb5e902aba3387c9a2f41f02d17 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 26 20:03:45 2021 -0700 Added the converter function and test for it commit e67413da08b24092868e3c090fcc7b8c09b48b89 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 26 12:47:47 2021 -0700 Cleaned up status printouts commit 439e0880dd55e6edc2c7e76d846d6c5faa79df75 Author: ꙮ <ymir@ulthar.xyz> Date: Fri Jun 25 18:02:41 2021 -0700 Added gitignore commit 53d76ee9f120bd78425e2f710ae4bf852072a6ee Author: ꙮ <ymir@ulthar.xyz> Date: Mon Jun 21 20:58:27 2021 -0700 Use another temp dir for partially converted files commit c0fe6752ae8b1de49d23d29ff6c91f73dd90d1d7 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Jun 21 20:41:39 2021 -0700 Renamed temporary directory We'll use another temporary dir to store in-progress opus conversions commit 83f231484991447339ef0dc07238fa31fca180e3 Author: ꙮ <ymir@ulthar.xyz> Date: Mon Jun 21 20:39:17 2021 -0700 We'll eventually get a differential of books we haven't downloaded commit eca07aaf1e6f9a0784b4771a3155e0254d938c20 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 20 17:14:30 2021 -0700 All book data should be consolidated in the Book struct commit 2dd9f84ca85b640e6508d2eb39f9a15f7d11b9f1 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 20 14:42:10 2021 -0700 This isn't C smh commit 84c1a33e79395b96e2707a0b26bc3e186271d405 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 20 11:38:33 2021 -0700 Added temporary driver code for the downloader commit c8939fe0c25eb6d1dfe976cd066221efde62d4e1 Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 20 11:38:16 2021 -0700 Added downloader commit 4c0d6acf0592a42fa3c2df447d5d8db49fe7ec9c Author: ꙮ <ymir@ulthar.xyz> Date: Sun Jun 20 11:10:02 2021 -0700 Create the download directory or fail if it already exists commit c764fd4600371bb27428cd94b724325e7eb338ce Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 19 20:29:23 2021 -0700 Fixed where we're only getting download URLs for longer books It turns out the DownloadFull aria-label is only applied to <a> tags in a popup window which asks if you want to download the book fully or by pieces. We're passing the (basic) test! commit 9c45850fb27c89574584ff3e5a5df3a8e5a08142 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 19 18:23:35 2021 -0700 Added scraper_test.go commit 0aad992700e000ee5ad844a6c6382b1a3a156abc Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 19 18:18:35 2021 -0700 Removed old GetLatestBooks() function commit 103ad103fac4874df888e99fca5305710404ebc6 Author: ꙮ <ymir@ulthar.xyz> Date: Sat Jun 19 18:18:22 2021 -0700 Cleaned up output commit 6cbbe90dda73665c37836612b4f0c7b0e072417e Author: ꙮ <ymir@ulthar.xyz> Date: Wed Jun 16 20:55:22 2021 -0700 Rewrote GetAllBooks() to fetch info across all pages of the library :^) commit b6c0956b70d19b9d5a2e27125bc9afc4e70017f1 Author: ꙮ <ymir@ulthar.xyz> Date: Wed Jun 16 16:56:35 2021 -0700 Moved book printing to a seperate function commit 19ac8eab7fd30e27bb10ad4295d90881e0f8bc51 Author: ꙮ <ymir@ulthar.xyz> Date: Wed Jun 16 13:58:38 2021 -0700 Indent with tabs, not spaces commit 3b1ec170f8d716ab3a7cfb242a501bc543ba47e4 Author: ꙮ <ymir@ulthar.xyz> Date: Wed Jun 16 13:12:01 2021 -0700 Load the cookies from a json file commit 823cbc594d8813b1db5229d24c704435619355e8 Author: ꙮ <ymir@ulthar.xyz> Date: Wed Jun 16 11:33:52 2021 -0700 Downloader works! The values in the cookies struct have been redacted for privacy commit 7795e76607421ab98be18c6d91ed705b88b4e26c Author: ꙮ <ymir@ulthar.xyz> Date: Tue Jun 15 15:17:27 2021 -0700 getLibararyPage() basically works With currently redacted values for `urlparams`, `bodyparams`, and the cookies, I can download Audible's signin page. I haven't been able to actually sign in, but I figured out the cookie issue at least and it *should* be smooth sailing from here. Modest progress, but progress nontheless :^) commit dd888f21a9ced3f2254b5a5f9464f3f480606932 Author: ꙮ <ymir@ulthar.xyz> Date: Tue Jun 15 15:15:34 2021 -0700 We shouldn't have a getCredentials() function yet commit 3adcf18efb88b185d167e88a69efc5b02b7e0017 Author: ꙮ <ymir@ulthar.xyz> Date: Tue May 25 10:16:47 2021 -0700 [untested] Added a function to only download the latest books. I can't test this until I get the authentication worked out commit 0f29172720b0be3e74de22e553bd5a67a05c0484 Author: ꙮ <ymir@ulthar.xyz> Date: Tue May 25 10:11:45 2021 -0700 Get the credentials from a function and die loudly if we don't understand the html commit 64424b781d40478b3e4017b193de41655f700939 Author: ꙮ <ymir@ulthar.xyz> Date: Sun May 23 09:02:24 2021 -0700 We need go.mod commit 9a743af17de9233a6e6b5cbb4956915163a7f96a Author: ꙮ <ymir@ulthar.xyz> Date: Sun May 23 09:00:19 2021 -0700 Initial commit: - audible-dl.go This is the program's main file, but right now it just serves to test scraper.go - scraper.go Right now it's able to extract book information from a locally stored "titles.html" page