YOMICHAN FORVO SERVER FOR ANKI
Simple server to take advantage of Yomichanβs custom audio sources feature. Requires Anki Connect. It web scrapes Forvoβs search and word page to get a list of words.
NOTICE Forvo sometimes enables Cloudflare verification, meaning it tries to verify that a human is browsing their site instead of a program like this one. The add-on can't function when this happens, but please check https://github.com/jamesnicolas/yomichan-forvo-server/issues/13 if you want to track this issue.
Prerequisites:
Install:
- Copy the code and install like you would for any other Anki addon
- Restart Anki
- Allow network connections (required since this is a local server)
- In yomichan settings, go to Audio > Configure Audio Playback Sources > Custom Audio Source
- Select Type as JSON and set URL to http://localhost:8770/?term={term}&reading={reading}
- In your Audio Sources list below, make sure one of them is set to Custom
Now when you scan a word in Yomichan, you should be able to right click the audio icon and the Forvo custom audio sources should appear.
Configuration
Yomichan Forvo Server supports a few configuration options, which you can edit by going to Tools > Add-Ons > Yomichan Forvo Server > Config. Note configuration changes requires you to restart Anki to see effects.
port Port that YomiChan will call. Default is 8770language Language code to use in Forvo. Some examples are ja for Japanese or zh for Mandarin Chinese. Default ja. On the Forvo website, you can see what language code is in square brackets beside the language name on a pronunciation. If you want to have a separate source for another language, you can add another parameter to the URL to override this config: eg http://localhost:8770/?term={term}&reading={reading}&language=zhpreferred_usernames A list of Forvo usernames. This will order the results on top based on this priority. If empty, results will show based on the Forvo website order or according to preferred_countries. Default empty.
preferred_countriesA list of countries, usually title case. (Eg. "United States"). This will order the results on top based on this priority. preferred_usernames takes priority over preferred_countries. If empty, results will show based on the Forvo website order or according to preferred_usernames. Default empty.
show_gender Show the gender symbols (β, β,) beside the username based on their gender. Default true.show_countryShow the country of the user beside their name. Default false
Links
Changelog
2024-07-15
- add support for preferred countries
2024-06-10
- handle anonymous users
- support showing country
2023-08-30
- support overriding the language in the URL
2023-07-28
- fixed deprecated method_whitelist in urllib3 Retry and use allowed_methods
2022-10-26
- handle case when gender isnβt available
2022-09-05
- add support for preferred usernames
- fixed bug where it was using the raw audio from forvo, now uses the normalized audio from forvo
- added gender symbols to results
- support configuration where port, username order, language, and showing gender symbols are configurable
2022-07-25
- update selectors for new forvo layout
2022-01-30
- add Content-length header
2021-11-14
- change timeout to 10 seconds
2021-03-22
- fixed bug with empty reading/expression inputs returning unrelated words
- added basic retries/timeouts to deal with connection issues