A dynamic daily playlist of Amazing Animal Facts! Learn something new about the animal kingdom every day!
▶️ Listen and add to your library
User information
Add the card to your library.
You can then either play it through the Yoto app or link it to a MYO card, so that you (or someone you know!) can listen to it on their Yoto Player.
Technical information
All the content and facts have been written by humans (myself and my daughters Alice and Izzy!).
The narration itself is generated via ElevenLabs, but has been checked post-generation to make sure it sounds natural and engaging. I opted to pre-generate the audio because the quality of the tone and inflection was a little hit and miss when serving it in real-time – plus pre-generating means that I won't hit any credit/usage limits.
- The application was coded using JavaScript/NodeJS.
- I use Netlify Edge functions for the audio requests. Depending on which track you're on, this dynamically works out which audio file to serve to you and which icon to display. So if it's morning, you'll hear slightly different audio to in the evening, and if you're based in the UK, you'll get slightly different audio to someone listening in the US.
- The majority of the audio and icons are stored and served from a Cloudflare R2 bucket. The edge functions work out which audio file to send to each user and then stream it directly from this bucket. This also means I can make use of Cloudflare's CDN for these files.
Data storage
The app accesses the location and timezone of the request when the card is played. This is not stored, but is used to work out which audio to send back to the user to make the audio more personalised.
Special Thanks to:
My daughters, Alice and Izzy, for their amazing animal facts! I primarily made this card as a fun project to create with them, and they helped a lot with finding really interesting facts!
Molly Nye, who illustrated the amazing Animal Facts card cover!
I used a mix of Yoto's official icons and some custom ones from the awesome Yoto Icons website.
I'd love to hear any feedback – please let me know your thoughts in the comments!