# MTG Visual Search Scripts This repository contains scripts to search for Magic: The Gathering cards by image contents. #### generate-card-captions.js This script takes a JSON file from scryfall.com containing card data. It generates a JSON file containing card names, IDs, and captions for each card. The captions are generated using Azure Cognitive Services Computer Vision API. #### search-cards.js This script takes the output of generate-card-captions.js and searches the card captions for keywords provided and outputs another JSON file containing the results. ## Requirements - Node.js - Azure Cognitive Services Computer Vision API key and endpoint ## Usage 1. Clone the repository. 2. Run `npm install` to install dependencies. 3. Obtain card data as JSON from [scryfall](https://scryfall.com/docs/api/bulk-data). Data should be an array of card objects as defined by the [scryfall API docs](https://scryfall.com/docs/api/cards) 4. Create a `.env` file in the root directory with the following contents: ``` AZURE_VISION_RESOURCE_URL=https://.cognitiveservices.azure.com/ AZURE_VISION_SUBSCRIPTION_KEY= ``` 5. Run `node generate-card-captions.js -i ` to generate card captions. 1. Add `-o ` to specify an output file. 2. Add `-a ` to specify the Azure Cognitive Services API version. 3. Add `-m ` to specify the Azure Cognitive Services model version. 6. If you want to search generated captions, currently you must modify `search-cards.js` to include the keywords you want to search for. Then run `node search-cards.js` to search the captions. Maybe I'll add command line arguments for this in the future, idk. Alternatively, check out the [MTG Visual Search Web App](https://git.hobbs.zone/henry/mtg-visual-search) for a clean interface to search for cards.