Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import json
- requests.packages.urllib3.disable_warnings()
- ####################################################################
- #CHANGE THIS STUFFS:
- username = "EMAIL"
- password = "PASSWORD"
- ####################################################################
- __author__ = "calvin"
- __license__ = "WTFPL (Do What The Fuck You Want To Public License)"
- __version__ = "1.1"
- #Python 2 compatability
- try:
- input = raw_input
- except NameError:
- pass
- class Mofibo(object):
- session = requests.session()
- session.headers.update({"User-agent": "Dalvik/1.5.1 (Linux; U; Android 5.0; Nexus 6)",
- "X-Mofibo-ApiLicenseKey": "rrhSFUajl6R1GWXfRUAVn5b9",
- "X-Mofibo-AppType": "Mobile",
- "X-Mofibo-DeviceInfo": '{ "Identifier": "1", "Name": "Nexus 4", "OperatingSystem": "Android","SystemVersion": "4.2", "Model": "Nexus+S","Appversion": "1.0.2"}',
- 'Content-type': 'application/json',
- "X-Mofibo-Capabilities": "audio"
- })
- def login(self, username, password):
- url = "https://api.mofibo.com/api/account/login"
- data = {"Username": username, "Password": password}
- req = self.session.post(url, data=json.dumps(data), verify=False)
- self.session.cookies["FedAuth"] = self.session.cookies["FedAuth"] #Stupid cookielib, why you so hard.
- def get_book_url(self, id):
- url = "https://api.mofibo.com/api/books/contentlink?id={}&fullBook=true".format(id)
- req = self.session.get(url, verify=False)
- return req.json()["ExternalUrl"]
- def get_book(self, id, secondary=False):
- title = None
- if secondary:
- req = self.session.get("https://api.mofibo.com/api/books/id/{0}".format(id)).json()
- id = req['buddyId']
- title = req['Title']
- url = self.get_book_url(id)
- req = self.session.get(url, verify=False, stream=True)
- if secondary:
- filename = "".join(x for x in title if x.isalnum()) + ".mp3"
- else:
- filename = req.headers["Content-Disposition"].split("filename=")[1]
- chunk_size = 1024
- with open(filename, 'wb') as fd:
- for chunk in req.iter_content(chunk_size):
- fd.write(chunk)
- m = Mofibo()
- print("Logging in...")
- m.login(username, password)
- print("Logged in.")
- book = input("Enter book id: ")
- secondary = input("Secondary (If the book has both ebook and audio, and you want audio. (True/False): ")
- secondary = secondary == "True"
- print("Downloading book")
- m.get_book(book, secondary)
- print("Done")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement