This project aims to download (most) sounds from the BBC sound effects website
Due to limitations on how the website works, this project cant download every sound, but it gets pretty close at it. As of writing this, it is able to download 32,281 out of the 33,066 sounds on the website. For information on why that is, feel free to read my rant in the README_but_for_nerds.md file.
You can run this script yourself. On a good internet connection, it takes about 10 minutes to download all the mp3 versions, with the wav versions taking MUCH longer (its about 617GiB, vs the 56.4GiB of mp3 files). If you don't have 600GiB of disk space, there is also an option to convert the files to flac as they download, which just about halfs the wav file sizes.
I will also be adding torrents of the files at a later date, which will be easier (and probably quicker) than running this script. It also helps the BBC by not using all their bandwidth!
Download the repo and install the python dependencies. I recommend making a virtualenv in order to keep your system python install clean.
git clone <repo>
cd bbc_sound_ripper
python -m venv _venv
source ./_venv/bin/activate
pip install -r requirements.txt Once the requirements are installed, you can run the script with python download.py. The script is interactive and will ask a series of questions about which catagories of sounds you want to download, and in what format. No it doesn't take command line arguments... A lot of the options are fetched at runtime from querying the BBC sound effects API, and I didn't want you to have to wait for those API calls to be made to show help docs or populate the valid choices. You shouldn't be running this on a cron anyway, so yeah - thats the way it is.
When downloading files, its normal for the script to "slow down" towards the end. This is because the downloading process is multithreadded, so it appears to go fast when all the threads are running, but towards the end, theres less files to download then there are threads in the thread pool. Just be patient!
Since you are downloading a bunch of foley sounds, you probably want to use these sounds in a video editing software. I use davinci resolve, so thats where my attention was focused. If you use another editor, cool, but your going to have to figure out the steps for yourself. The script embeds metadata into the files, so if your editor can pull from that, your in luck! if your editor doesnt, you will probably need to modify the script. The buildFileInfo(..) function shows you how I pull the metadata from the API results, so that would be a good starting point after you reverse how your editor stores the metadata.
-
Open Davinci Resolve. While you are on the "pick your project" screen, click the little menu button at the top left next to "Projects". (its just below the top bar with "Local", "Network", "Cloud")
-
Click "Add Project Library" at the bottom of the new side bar. Remember the file location that you chose! I personally used
~/Documents/Blackmagic Project Librariesand named the project library "sounds" -
Go ahead and open the default "Untitled Project" that appears. We will later save the project, which is why mine is already called "sounds" in the above screenshot.
-
Go to the "Edit" page, and then click on "Sound Library" in the top bar
-
Next, change the local database dropdown to be the project library you created earlier
-
After, click the 3 dots at the top of the sound library expando menu
-
Now click "add library", and choose the folder that you selected in the download.py script. In my case, this is
~/Music/BBC Sound Library- This will take a good bit of time, so go make yourself a cup of coffee (or tea, if you are a member of the BBC reading this) -
You can verify that the sounds were added by typing
***into the search bar -
Locate the file path for "SoundLib.db" - This should be inside the path you chose when creating the new project library from step 2. I did tell you to remember that path! In my case, its
~/Documents/Blackmagic Project Libraries/Resolve Projects/SoundLib.db -
CLOSE DAVINCI RESOLVE! (idk if this is necisary, but its written in caps, so you should do it anyway) (also, its ok if you moved the files after they downloaded, the script doesn't care about the files on disk at this point)
-
Take that path, and enter it in the script.
-
The script will now search through the Davinci Resolve sould library database that was populated in step 7, and manually add the description field.
The Davinci Resolve manual does not mention how to add this data manually, and a very old post on the forums mentions it pulls the info from the audio file its self. Audio metadata is a whole can of worms, so my guess is that the feature broke at some point, and no one raised a stink about it... so here we are, manually modifying the sqlite db. oh well, at least it works
you should now be able to type in tags in the audio library search bar, and it should look through the descriptions of the files (which actually contain the tags)!



