ranaroussi / yfinance

Download market data from Yahoo! Finance's API
https://aroussi.com/post/python-yahoo-finance
Apache License 2.0
13k stars 2.3k forks source link

Yahoo has again changed data format, yfinance now unsure which key(s) is for decryption: #1435

Closed nfschpay closed 1 year ago

nfschpay commented 1 year ago

Hi Team,

It looks like the decryption failed again for info.info. Please see below:

ticker = 'AAPL' info = yf.Ticker(ticker)

info.info returns following errors:


Exception Traceback (most recent call last)

in ----> 1 info.info ~/opt/anaconda3/lib/python3.8/site-packages/yfinance/ticker.py in info(self) 136 @property 137 def info(self) -> dict: --> 138 return self.get_info() 139 140 @property ~/opt/anaconda3/lib/python3.8/site-packages/yfinance/base.py in get_info(self, proxy) 893 def get_info(self, proxy=None) -> dict: 894 self._quote.proxy = proxy --> 895 data = self._quote.info 896 return data 897 ~/opt/anaconda3/lib/python3.8/site-packages/yfinance/scrapers/quote.py in info(self) 25 def info(self) -> dict: 26 if self._info is None: ---> 27 self._scrape(self.proxy) 28 self._scrape_complementary(self.proxy) 29 ~/opt/anaconda3/lib/python3.8/site-packages/yfinance/scrapers/quote.py in _scrape(self, proxy) 54 55 # get info and sustainability ---> 56 json_data = self._data.get_json_data_stores(proxy=proxy) 57 try: 58 quote_summary_store = json_data['QuoteSummaryStore'] ~/opt/anaconda3/lib/python3.8/site-packages/yfinance/data.py in wrapped(*args, **kwargs) 38 args = tuple([tuple(arg) if isinstance(arg, list) else arg for arg in args]) 39 kwargs = {k: tuple(v) if isinstance(v, list) else v for k, v in kwargs.items()} ---> 40 return func(*args, **kwargs) 41 42 # copy over the lru_cache extra methods to this wrapper to be able to access them ~/opt/anaconda3/lib/python3.8/site-packages/yfinance/data.py in get_json_data_stores(self, sub_page, proxy) 200 data = json.loads(json_str) 201 --> 202 stores = decrypt_cryptojs_aes_stores(data) 203 if stores is None: 204 # Maybe Yahoo returned old format, not encrypted ~/opt/anaconda3/lib/python3.8/site-packages/yfinance/data.py in decrypt_cryptojs_aes_stores(data) 71 for i in range(1, len(new_keys)): 72 msg += f" , '{k_str}'->{type(data[k])}" ---> 73 raise Exception(msg) 74 password_key = new_keys[0] 75 password = data[password_key] Exception: Yahoo has again changed data format, yfinance now unsure which key(s) is for decryption: '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , '0ffd9ad89562'-> , ....
ValueRaider commented 1 year ago

Old version, you didn't read the default message.