├── .gitignore ├── LICENSE ├── app.py ├── environment.yml ├── openai_api.py ├── prompt.txt ├── readme.md ├── regions.txt ├── setup.bat ├── setup.sh ├── start.bat ├── start.sh ├── static └── categories.json ├── templates └── index.html ├── tshirt_trends.py └── utils.py /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | OpenAI.API 3 | env 4 | config.py 5 | ggml-gpt4-x-vicuna-13b-q5_1.bin 6 | model -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, render_template, request, session, redirect, url_for, flash 2 | import tshirt_trends 3 | from tshirt_trends import get_top_niches 4 | import os 5 | from utils import get_regions 6 | from config import IP_ADDRESS, PORT 7 | import config 8 | 9 | app = Flask(__name__) 10 | app.secret_key = os.urandom(24) 11 | 12 | 13 | @app.route("/", methods=["GET", "POST"]) 14 | def index(): 15 | regions = get_regions() 16 | 17 | if request.method == "POST": 18 | niche_input = request.form["niche_input"] 19 | model_choice = request.form["model_choice"] 20 | region = request.form.get('region') 21 | timeframe = request.form['timeframe'] # Get the selected timeframe from the form 22 | niches = [niche.strip() for niche in niche_input.split(",")] 23 | if len(niches) > 5: 24 | flash("Please enter up to 5 niches separated by commas.") 25 | return redirect(url_for("index")) 26 | print(f"Detected more than 5 niches, please select up to 5 niches!") 27 | 28 | results = tshirt_trends.main(niches, 428, region=region, model_choice=model_choice, timeframe=timeframe) # Use 428 for "T-Shirts". You can lookup categories in the static/categories.json file 29 | 30 | # Filter out None values from ideas_list 31 | ideas_list = [x for x in results["ideas_list"] if x is not None] 32 | 33 | # Store form data in session 34 | session['niche_input'] = niche_input 35 | session['model_choice'] = model_choice 36 | session['region'] = region 37 | session['timeframe'] = timeframe 38 | 39 | return render_template("index.html", ideas_list=results["ideas_list"], trends_data=results["trends_data"], regions=regions) # Pass the ideas_list and trends_data to the template for rendering the results in the browser 40 | 41 | # Load form data from session if it exists 42 | niche_input = session.get('niche_input', '') 43 | model_choice = session.get('model_choice', '') 44 | region = session.get('region', '') 45 | timeframe = session.get('timeframe', '') 46 | 47 | return render_template("index.html", regions=regions, niche_input=niche_input, model_choice=model_choice, region=region, timeframe=timeframe, openai_api_key=config.OPENAI_API_KEY, 48 | local_model_file=config.MML_MODEL_FILE) 49 | 50 | if __name__ == "__main__": 51 | app.run(host=IP_ADDRESS, debug=True, port=PORT) # Change this to match the IP address of your computer, select custom port if needed 52 | -------------------------------------------------------------------------------- /environment.yml: -------------------------------------------------------------------------------- 1 | name: tshirt_trends 2 | channels: 3 | - conda-forge 4 | dependencies: 5 | - python=3.9 6 | - pytrends 7 | - pandas 8 | - matplotlib 9 | - openai 10 | - pip 11 | - pip: 12 | - pillow 13 | -------------------------------------------------------------------------------- /openai_api.py: -------------------------------------------------------------------------------- 1 | import openai 2 | import re 3 | from llama_cpp import Llama 4 | from pandas import DataFrame 5 | from config import OPENAI_API_KEY, MML_MODEL_FILE 6 | 7 | class IdeaGenerator: 8 | def __init__(self, api_key: str, model_file: str, prompt_file: str): 9 | try: 10 | self.model_file = model_file 11 | self.prompt_file = prompt_file 12 | self.prompt_file_path = prompt_file 13 | self.llama_model = None 14 | if model_file: 15 | self.llama_model = Llama(model_path=model_file) 16 | print("Model loaded successfully.") 17 | except Exception as e: 18 | print(f"Failed to initialize IdeaGenerator. Error: {e}") 19 | raise 20 | openai.api_key = OPENAI_API_KEY 21 | print("API key set successfully.") 22 | 23 | def _generate_with_llama_cpp(self, prompt: str) -> dict: 24 | try: 25 | if self.llama_model is None: 26 | raise ValueError("Llama model is not configured.") 27 | return self.llama_model(prompt, max_tokens=150, stop=["User:"], 28 | temperature=0.8, 29 | top_p=0.95, 30 | repeat_penalty=1.2, 31 | top_k=50) 32 | except Exception as e: 33 | print(f"Failed to generate with Llama CPP. Error: {e}") 34 | raise 35 | 36 | def _generate_with_openai(self, prompt: str, model: str, n: int) -> dict: 37 | try: 38 | return openai.ChatCompletion.create( 39 | model=model, 40 | messages=[{"role": "user", "content": prompt}], 41 | max_tokens=700, 42 | n=1, 43 | stop=None, 44 | temperature=0.5 45 | ) 46 | except Exception as e: 47 | print(f"Failed to generate with OpenAI. Error: {e}") 48 | raise 49 | 50 | def _generate_prompt(self, niche: str, category: str, trends_data: DataFrame) -> str: 51 | try: 52 | max_interest = trends_data.max()[0] 53 | min_interest = trends_data.min()[0] 54 | mean_interest = trends_data.mean()[0] 55 | recent_interest = trends_data.iloc[-1][0] 56 | 57 | with open(self.prompt_file_path, 'r') as file: 58 | prompt = file.read() 59 | 60 | return prompt.format( 61 | niche=niche, 62 | recent_interest=recent_interest, 63 | max_interest=max_interest, 64 | min_interest=min_interest, 65 | mean_interest=mean_interest, 66 | category=category 67 | ) 68 | except Exception as e: 69 | print(f"Failed to generate prompt. Error: {e}") 70 | raise 71 | 72 | @staticmethod 73 | def _process_response(choice: dict, model_type: str) -> str: 74 | try: 75 | if model_type == "GPT": 76 | return choice.message.content.strip() 77 | elif model_type == "Llama": 78 | content = choice['text'].strip() 79 | return content.split('Example Output:\n')[-1] 80 | else: 81 | raise ValueError(f"Unknown model type: {model_type}") 82 | except Exception as e: 83 | print(f"Failed to process response. Error: {e}") 84 | raise 85 | 86 | def generate_ideas(self, niche: str, category: str, trends_data: DataFrame, model="gpt-4", n=5) -> list: 87 | try: 88 | print("Starting idea generation...") 89 | prompt = self._generate_prompt(niche, category, trends_data) 90 | 91 | if model == "local": 92 | if self.llama_model is None: 93 | raise ValueError("Llama model is not configured.") 94 | results = [self._generate_with_llama_cpp(prompt) for _ in range(n)] 95 | model_type = "Llama" 96 | else: 97 | if OPENAI_API_KEY == "": 98 | raise ValueError("OpenAI API key is not configured.") 99 | results = [self._generate_with_openai(prompt, model, n=1)] 100 | model_type = "GPT" 101 | 102 | ideas = [] 103 | for result in results: 104 | if result.get('choices'): 105 | for choice in result['choices']: 106 | content = self._process_response(choice, model_type) 107 | matches = re.findall(r"SLOGAN: (.*?)\nSDPROMPT: (.*?)\nSCORE: (\d+)", content, re.DOTALL) 108 | for match in matches: 109 | slogan, sdprompt, score = match 110 | ideas.append({ 111 | "slogan": slogan.strip(), 112 | "sdprompt": sdprompt.strip(), 113 | "score": score.strip() 114 | }) 115 | 116 | print("Idea generation completed successfully.") 117 | return ideas 118 | except Exception as e: 119 | print(f"Failed to generate ideas. Error: {e}") 120 | raise 121 | -------------------------------------------------------------------------------- /prompt.txt: -------------------------------------------------------------------------------- 1 | Based on the data you have been provided, generate a creative t-shirt design idea for the {niche} niche within the T-Shirt category. The {niche} niche has shown a recent surge in interest with a score of {recent_interest}. 2 | 3 | Please analyze the given data points: maximum interest score of {max_interest}, minimum interest score of {min_interest}, and average interest score of {mean_interest}. Use these data points to create a unique scoring algorithm that estimates the potential success of each idea. 4 | 5 | Consider recent trends and popular themes in the {niche} niche to create unique and catchy slogans for t-shirt designs. Make sure the slogan is generated in the language from the region chosen by the user. After each slogan, generate a Stable Diffusion Prompt (SDPROMPT) to help visualize the accompanying graphic design that would complement the slogan. 6 | 7 | Estimate a score for each idea based on the provided data and your scoring algorithm. Please discard ideas with a score of 0 and do not include them in your response. 8 | 9 | Your final output for each idea should follow this format: 10 | SLOGAN: [slogan] 11 | SDPROMPT: [prompt for stable diffusion] 12 | SCORE: [score estimated based on the values provided in the data set and your scoring algorithm] 13 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | UPDATE: I am aware of some issues with the code, stemming from updated dependencies and some end user variables that I did not account for; please use the issues section to raise any issues and I will deal with those as a priority. 2 | If you want you can also try my GPTNicheFinder custom GPT (you will need GPT Premium subscription for this) which does similar thing and generates the design on the spot. You can test it here: https://chat.openai.com/g/g-nJkUTe5sS-gpt-niche-finder 3 | 4 | 5 | 6 | 7 | 8 | # GPTNicheFinder - GitHub README 9 | 10 | Welcome to GPTNicheFinder, a robust niche research tool underpinned by Google Trends data and OpenAI's GPT model. This application presents a streamlined methodology for identifying profitable niche markets, utilizing data-driven insights, and the cutting edge of artificial intelligence. It is an ideal tool for entrepreneurs, marketers, and enthusiasts seeking undiscovered opportunities. GPTNicheFinder is designed to facilitate your search. 11 | 12 | # Key Features: 13 | 14 | Google Trends Integration: GPTNicheFinder leverages Google Trends data, including interest over time, related queries, and suggestions, to analyze emerging trends and pinpoint niche opportunities. This comprehensive approach guarantees you a panoramic view of the market landscape. 15 | 16 | OpenAI's GPT Model: Utilizing the power of OpenAI's GPT model, GPTNicheFinder generates niche ideas that align seamlessly with your chosen keywords. The model generates innovative prompts and slogans, equipping you with valuable insights for your niche exploration. 17 | 18 | Flask Web Interface: The intuitive Flask-based web interface allows you to input up to 5 keywords or phrases conveniently and receive niche suggestions in real-time. The interface is designed for effortless navigation. 19 | 20 | Customization and Flexibility: GPTNicheFinder provides customization options, including the capacity to configure the IP address and port to accommodate your environment. This flexibility ensures seamless integration into your current workflow. 21 | 22 | ## Installation 23 | 24 | 1. Initiate the process by cloning the repository. Create a new folder on your local machine and navigate to it using your preferred command-line interface (e.g., terminal, PowerShell) or file explorer (e.g., Windows Explorer). 25 | 2. Click on Code at the top of the page, then click on Download ZIP and extract the file to your chosen location. Alternatively, input the following command: 26 | 27 | ``` 28 | git clone https://github.com/newDevPL/GPTNicheFinder.git 29 | ``` 30 | Please be aware: If you wish to utilize the local model option, you are required to procure your own Llama model. These models are readily available from numerous sources, one of the most prominent being HuggingFace. It is crucial to ensure that the model adheres to the latest Llama format. Unfortunately, models in the old format will not be compatible. While we have successfully tested the app with the `ggml-gpt4-x-vicuna-13b-q5_1.bin` model, it should be operational with other models as well. 31 | 32 | ## Configuration 33 | 34 | 1. Traverse to the GPTNicheFinder folder and implement the steps below: 35 | 36 | 2. Execute the `setup.bat` file on Windows or `setup.sh` file on Linux and Mac. Input your `Open AI API key`, `path to your local llama model`, `your local IP address` and the desired `port`. The app can be run with either the GPT or Llama model or both, thereby making the app potentially free to use. 37 | 38 | ## Running the Application 39 | 40 | 1. Run the `start.bat` file on Windows or `start.sh` file on Linux and Mac. 41 | 2. Open your browser and input the link that the command prompt provides. This link should include the IP and Port you specified when executing `setup.bat` or `setup.sh`.For example, it should look something like this: http://YourIPAddress:PortNumber. 42 | 43 | ## Usage 44 | 45 | 1. Select your GPT or Llama model. While the GPT-4 model yields slightly superior and consistent results, the GPT-3.5 Turbo model is more affordable and accessible. Llama models, though slower and less accurate, are free to use. However, the efficiency of the model largely depends on your computer's performance. 46 | 2. Input up to 5 keywords or phrases, each separated by a comma. Keywords will generate broader results. 47 | 3. Patiently wait for the results, which may take a few minutes. 48 | 49 | ## Known Issues 50 | 51 | - None 52 | 53 | ## Contributing: 54 | 55 | We warmly welcome contributions to GPTNicheFinder! If you have ideas for enhancements, bug fixes, or new features, please contribute by submitting a pull request. Your contributions will enrich the tool and augment its value for the community. 56 | 57 | ## License: 58 | 59 | GPTNicheFinder is released under the Unlicense license, granting you the freedom to use, modify, and distribute the application without any restrictions. You can find the license details in the repository. 60 | 61 | 62 | If you like this project, consider donating some ETH: 0x202580B9639D6434316DBabcbadDE5a246468125 63 | 64 | -------------------------------------------------------------------------------- /regions.txt: -------------------------------------------------------------------------------- 1 | AR, Argentina 2 | AU, Australia 3 | AT, Austria 4 | BE, Belgium 5 | BR, Brazil 6 | CA, Canada 7 | CL, Chile 8 | CN, China 9 | CO, Colombia 10 | DK, Denmark 11 | DZ, Algeria 12 | EG, Egypt 13 | ES, Spain 14 | ET, Ethiopia 15 | FI, Finland 16 | FR, France 17 | DE, Germany 18 | GH, Ghana 19 | IE, Ireland 20 | IN, India 21 | ID, Indonesia 22 | IT, Italy 23 | JP, Japan 24 | KE, Kenya 25 | KR, South Korea 26 | MY, Malaysia 27 | MX, Mexico 28 | MA, Morocco 29 | NL, Netherlands 30 | NG, Nigeria 31 | NO, Norway 32 | PE, Peru 33 | PH, Philippines 34 | PL, Poland 35 | PT, Portugal 36 | RU, Russia 37 | SE, Sweden 38 | SG, Singapore 39 | ZA, South Africa 40 | ES, Spain 41 | SE, Sweden 42 | CH, Switzerland 43 | TH, Thailand 44 | TN, Tunisia 45 | TR, Turkey 46 | GB, United Kingdom 47 | US, United States 48 | VN, Vietnam 49 | ZA, South Africa -------------------------------------------------------------------------------- /setup.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM Check if config.py exists 4 | IF NOT EXIST config.py ( 5 | REM config.py doesn't exist, create a new one with default values 6 | ( 7 | echo # Configuration file 8 | echo. 9 | echo # OpenAI API key 10 | echo OPENAI_API_KEY = "" 11 | echo. 12 | echo # MML model file path 13 | echo MML_MODEL_FILE = "" 14 | echo. 15 | echo # Prompt file path 16 | echo PROMPT_FILE = "prompt.txt" 17 | echo. 18 | echo # IP address and port 19 | echo IP_ADDRESS = "" 20 | echo PORT = 8081 21 | ) > config.py 22 | ) 23 | 24 | REM Read the existing values from config.py 25 | FOR /F "tokens=1,* delims==" %%G IN (config.py) DO ( 26 | IF "%%G"=="OPENAI_API_KEY" SET EXISTING_OPENAI_API_KEY=%%H 27 | IF "%%G"=="MML_MODEL_FILE" SET EXISTING_MML_MODEL_FILE=%%H 28 | IF "%%G"=="IP_ADDRESS" SET EXISTING_IP_ADDRESS=%%H 29 | IF "%%G"=="PORT" SET EXISTING_PORT=%%H 30 | ) 31 | 32 | REM Prompt the user for new values if they don't exist or ask to use existing values 33 | SET "OPENAI_API_KEY=%EXISTING_OPENAI_API_KEY%" 34 | IF "%OPENAI_API_KEY%"=="" ( 35 | SET /P "OPENAI_API_KEY=Enter the OpenAI API key: " 36 | ) 37 | 38 | SET "MML_MODEL_FILE=%EXISTING_MML_MODEL_FILE%" 39 | IF "%MML_MODEL_FILE%"=="" ( 40 | SET /P "MML_MODEL_FILE=Enter the MML model file path: " 41 | ) 42 | 43 | SET "PROMPT_FILE=prompt.txt" 44 | 45 | SET "IP_ADDRESS=%EXISTING_IP_ADDRESS%" 46 | IF "%IP_ADDRESS%"=="" ( 47 | SET /P "IP_ADDRESS=Enter the IP address: " 48 | ) 49 | 50 | SET "PORT=%EXISTING_PORT%" 51 | IF "%PORT%"=="" ( 52 | SET /P "PORT=Enter the port: " 53 | ) 54 | 55 | REM Write the updated values to config.py 56 | ( 57 | echo # Configuration file 58 | echo. 59 | echo # OpenAI API key 60 | echo OPENAI_API_KEY = "%OPENAI_API_KEY%" 61 | echo. 62 | echo # MML model file path 63 | echo MML_MODEL_FILE = "%MML_MODEL_FILE%" 64 | echo. 65 | echo # Prompt file path 66 | echo PROMPT_FILE = "%PROMPT_FILE%" 67 | echo. 68 | echo # IP address and port 69 | echo IP_ADDRESS = "%IP_ADDRESS%" 70 | echo PORT = %PORT% 71 | ) > config.py 72 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check if config.py exists 4 | if [ ! -f config.py ]; then 5 | # config.py doesn't exist, create a new one with default values 6 | cat < config.py 7 | # Configuration file 8 | 9 | # OpenAI API key 10 | OPENAI_API_KEY = "" 11 | 12 | # MML model file path 13 | MML_MODEL_FILE = "" 14 | 15 | # Prompt file path 16 | PROMPT_FILE = "prompt.txt" 17 | 18 | # IP address and port 19 | IP_ADDRESS = "" 20 | PORT = 8081 21 | EOF 22 | fi 23 | 24 | # Read the existing values from config.py 25 | EXISTING_OPENAI_API_KEY=$(grep -oP 'OPENAI_API_KEY = "\K[^"]*' config.py) 26 | EXISTING_MML_MODEL_FILE=$(grep -oP 'MML_MODEL_FILE = "\K[^"]*' config.py) 27 | EXISTING_IP_ADDRESS=$(grep -oP 'IP_ADDRESS = "\K[^"]*' config.py) 28 | EXISTING_PORT=$(grep -oP 'PORT = \K[^"]*' config.py) 29 | 30 | # Prompt the user for new values if they don't exist or ask to use existing values 31 | OPENAI_API_KEY=${EXISTING_OPENAI_API_KEY} 32 | if [ -z "$OPENAI_API_KEY" ]; then 33 | read -p "Enter the OpenAI API key: " OPENAI_API_KEY 34 | fi 35 | 36 | MML_MODEL_FILE=${EXISTING_MML_MODEL_FILE} 37 | if [ -z "$MML_MODEL_FILE" ]; then 38 | read -p "Enter the MML model file path: " MML_MODEL_FILE 39 | fi 40 | 41 | PROMPT_FILE="prompt.txt" 42 | 43 | IP_ADDRESS=${EXISTING_IP_ADDRESS} 44 | if [ -z "$IP_ADDRESS" ]; then 45 | read -p "Enter the IP address: " IP_ADDRESS 46 | fi 47 | 48 | PORT=${EXISTING_PORT} 49 | if [ -z "$PORT" ]; then 50 | read -p "Enter the port: " PORT 51 | fi 52 | 53 | # Write the updated values to config.py 54 | cat < config.py 55 | # Configuration file 56 | 57 | # OpenAI API key 58 | OPENAI_API_KEY = "$OPENAI_API_KEY" 59 | 60 | # MML model file path 61 | MML_MODEL_FILE = "$MML_MODEL_FILE" 62 | 63 | # Prompt file path 64 | PROMPT_FILE = "$PROMPT_FILE" 65 | 66 | # IP address and port 67 | IP_ADDRESS = "$IP_ADDRESS" 68 | PORT = $PORT 69 | EOF 70 | -------------------------------------------------------------------------------- /start.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM Create and activate a temporary virtual environment 4 | python -m venv env 5 | call env\Scripts\activate.bat 6 | 7 | REM Upgrade pip and install required packages 8 | python -m pip install --upgrade pip 9 | CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 10 | python -m pip install pandas pytrends matplotlib pillow openai Flask scikit-learn llama-cpp-python transformers torch 11 | 12 | 13 | REM Run the Python script 14 | python app.py 15 | 16 | REM Deactivate and delete the temporary virtual environment 17 | deactivate 18 | rmdir /s /q env 19 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Create and activate a temporary virtual environment 4 | python3 -m venv env 5 | source env/bin/activate 6 | 7 | # Upgrade pip and install required packages 8 | python3 -m pip install --upgrade pip 9 | export CMAKE_ARGS="-DLLAMA_CUBLAS=on" 10 | export FORCE_CMAKE=1 11 | python3 -m pip install pandas pytrends matplotlib pillow openai Flask scikit-learn llama-cpp-python transformers torch 12 | 13 | # Run the Python script 14 | python3 app.py 15 | 16 | # Deactivate and delete the temporary virtual environment 17 | deactivate 18 | rm -r env 19 | -------------------------------------------------------------------------------- /static/categories.json: -------------------------------------------------------------------------------- 1 | {"children": [{"children": [{"name": "Celebrities & Entertainment News", "id": 184}, {"children": [{"name": "Animated Films", "id": 1104}, {"name": "Anime & Manga", "id": 317}, {"name": "Cartoons", "id": 319}, {"name": "Comics", "id": 318}], "name": "Comics & Animation", "id": 316}, {"children": [{"children": [{"name": "Film & TV Awards", "id": 1108}, {"name": "Film & TV Production", "id": 1117}], "name": "Film & TV Industry", "id": 1116}, {"children": [{"name": "Music Awards", "id": 1113}, {"name": "Record Labels", "id": 1114}], "name": "Recording Industry", "id": 1115}], "name": "Entertainment Industry", "id": 612}, {"children": [{"name": "Clubs & Nightlife", "id": 188}, {"name": "Concerts & Music Festivals", "id": 891}, {"name": "Film Festivals", "id": 1086}, {"name": "Live Sporting Events", "id": 1273}, {"name": "Movie Listings & Theater Showtimes", "id": 1085}, {"name": "Ticket Sales", "id": 614}], "name": "Events & Listings", "id": 569}, {"children": [{"name": "Dress-Up & Fashion Games", "id": 1173}, {"name": "Flash-Based Entertainment", "id": 447}, {"name": "Fun Tests & Silly Surveys", "id": 1174}], "name": "Fun & Trivia", "id": 539}, {"children": [{"name": "Comedy Films", "id": 1095}, {"name": "Live Comedy", "id": 895}, {"name": "Political Humor", "id": 1180}, {"name": "Spoofs & Satire", "id": 1244}, {"name": "TV Comedies", "id": 1047}], "name": "Humor", "id": 182}, {"children": [{"children": [{"name": "Martial Arts Films", "id": 1101}, {"name": "Superhero Films", "id": 1100}, {"name": "Western Films", "id": 1099}], "name": "Action & Adventure Films", "id": 1097}, {"name": "Animated Films", "id": 1104}, {"name": "Bollywood & South Asian Film", "id": 360}, {"children": [{"name": "Silent Films", "id": 1098}], "name": "Classic Films", "id": 1102}, {"name": "Comedy Films", "id": 1095}, {"name": "Cult & Indie Films", "id": 1103}, {"name": "Documentary Films", "id": 1072}, {"name": "Drama Films", "id": 1094}, {"children": [{"name": "DVD & Video Rentals", "id": 1145}], "name": "DVD & Video Shopping", "id": 210}, {"name": "Family Films", "id": 1291}, {"name": "Film & TV Awards", "id": 1108}, {"name": "Film Festivals", "id": 1086}, {"name": "Horror Films", "id": 615}, {"name": "Movie Memorabilia", "id": 213}, {"children": [{"name": "Movie Reviews & Previews", "id": 1107}], "name": "Movie Reference", "id": 1106}, {"name": "Musical Films", "id": 1105}, {"name": "Romance Films", "id": 1310}, {"name": "Science Fiction & Fantasy Films", "id": 616}, {"name": "Thriller, Crime & Mystery Films", "id": 1096}], "name": "Movies", "id": 34}, {"children": [{"name": "CD & Audio Shopping", "id": 217}, {"children": [{"name": "Opera", "id": 1185}], "name": "Classical Music", "id": 586}, {"name": "Country Music", "id": 587}, {"name": "Dance & Electronic Music", "id": 588}, {"name": "Experimental & Industrial Music", "id": 1022}, {"name": "Folk & Traditional Music", "id": 1023}, {"children": [{"name": "Blues", "id": 1040}, {"name": "Jazz", "id": 42}], "name": "Jazz & Blues", "id": 589}, {"name": "Latin Pop", "id": 1285}, {"name": "Music Art & Memorabilia", "id": 218}, {"name": "Music Education & Instruction", "id": 1087}, {"children": [{"name": "DJ Resources & Equipment", "id": 1025}, {"name": "Music Recording Technology", "id": 1026}, {"children": [{"name": "Drums & Percussion", "id": 1327}, {"name": "Guitars", "id": 1325}, {"name": "Pianos & Keyboards", "id": 1326}], "name": "Musical Instruments", "id": 216}, {"name": "Samples & Sound Libraries", "id": 1091}], "name": "Music Equipment & Technology", "id": 1024}, {"children": [{"name": "Music Composition & Theory", "id": 1028}, {"name": "Sheet Music", "id": 892}, {"name": "Song Lyrics & Tabs", "id": 617}], "name": "Music Reference", "id": 1027}, {"name": "Music Streams & Downloads", "id": 220}, {"name": "Pop Music", "id": 1021}, {"children": [{"name": "Podcasting", "id": 809}, {"name": "Talk Radio", "id": 1186}], "name": "Radio", "id": 215}, {"children": [{"name": "Christian & Gospel Music", "id": 585}], "name": "Religious Music", "id": 1020}, {"children": [{"name": "Classic Rock & Oldies", "id": 1037}, {"name": "Hard Rock & Progressive", "id": 1035}, {"name": "Indie & Alternative Music", "id": 1038}, {"name": "Metal (Music)", "id": 1036}, {"name": "Punk (Music)", "id": 1041}], "name": "Rock Music", "id": 590}, {"name": "Soundtracks", "id": 893}, {"children": [{"name": "Rap & Hip-Hop", "id": 1030}, {"name": "Reggaeton", "id": 1242}, {"name": "Soul & R&B", "id": 1039}], "name": "Urban & Hip-Hop", "id": 592}, {"name": "Vocals & Show Tunes", "id": 618}, {"children": [{"name": "African Music", "id": 1208}, {"name": "Arab & Middle Eastern Music", "id": 1034}, {"name": "East Asian Music", "id": 1033}, {"children": [{"name": "Brazilian Music", "id": 1287}, {"name": "Latin Pop", "id": 1285}, {"name": "Reggaeton", "id": 1242}, {"name": "Salsa & Tropical Music", "id": 1286}], "name": "Latin American Music", "id": 591}, {"children": [{"name": "Reggaeton", "id": 1242}], "name": "Reggae & Caribbean Music", "id": 1031}, {"name": "South Asian Music", "id": 1032}], "name": "World Music", "id": 593}], "name": "Music & Audio", "id": 35}, {"children": [{"name": "Edgy & Bizarre", "id": 538}, {"name": "Occult & Paranormal", "id": 449}], "name": "Offbeat", "id": 33}, {"children": [{"name": "Flash-Based Entertainment", "id": 447}, {"name": "Music Streams & Downloads", "id": 220}, {"children": [{"name": "Massive Multiplayer", "id": 935}], "name": "Online Games", "id": 105}, {"children": [{"name": "Photo & Image Sharing", "id": 978}, {"name": "Photo Rating Sites", "id": 320}, {"name": "Stock Photography", "id": 574}], "name": "Online Image Galleries", "id": 1222}, {"children": [{"name": "Video Sharing", "id": 979}], "name": "Online Video", "id": 211}, {"name": "Web Portals", "id": 301}, {"name": "Webcams & Virtual Tours", "id": 575}], "name": "Online Media", "id": 613}, {"children": [{"name": "Acting & Theater", "id": 894}, {"name": "Broadway & Musical Theater", "id": 1243}, {"name": "Dance", "id": 581}, {"name": "Opera", "id": 1185}], "name": "Performing Arts", "id": 23}, {"children": [{"children": [{"name": "Video Sharing", "id": 979}], "name": "Online Video", "id": 211}, {"name": "TV Commercials", "id": 1055}, {"name": "TV Guides & Reference", "id": 1187}, {"name": "TV Networks & Stations", "id": 359}, {"children": [{"name": "TV Comedies", "id": 1047}, {"children": [{"name": "TV Crime & Legal Shows", "id": 1111}, {"name": "TV Medical Shows", "id": 1194}, {"name": "TV Soap Operas", "id": 357}], "name": "TV Dramas", "id": 1193}, {"name": "TV Family-Oriented Shows", "id": 1110}, {"name": "TV Game Shows", "id": 1050}, {"name": "TV Reality Shows", "id": 1049}, {"name": "TV Sci-Fi & Fantasy Shows", "id": 1112}, {"name": "TV Talk Shows", "id": 1048}], "name": "TV Shows & Programs", "id": 358}], "name": "TV & Video", "id": 36}, {"children": [{"name": "Architecture", "id": 477}, {"name": "Art & Craft Supplies", "id": 1361}, {"name": "Arts Education", "id": 1195}, {"children": [{"name": "CAD & CAM", "id": 1300}, {"name": "Graphic Design", "id": 654}, {"name": "Industrial & Product Design", "id": 655}, {"name": "Interior Design", "id": 656}], "name": "Design", "id": 653}, {"name": "Painting", "id": 1167}, {"children": [{"children": [{"name": "Binoculars, Telescopes & Optical Devices", "id": 1384}, {"children": [{"name": "Camcorders", "id": 308}, {"name": "Camera Lenses", "id": 1383}, {"name": "Cameras", "id": 307}], "name": "Cameras & Camcorders", "id": 306}], "name": "Camera & Photo Equipment", "id": 573}, {"children": [{"name": "Video File Formats & Codecs", "id": 1315}], "name": "Photo & Video Software", "id": 577}], "name": "Photographic & Digital Arts", "id": 439}], "name": "Visual Art & Design", "id": 24}], "name": "Arts & Entertainment", "id": 3}, {"children": [{"name": "Automotive Industry", "id": 1190}, {"name": "Bicycles & Accessories", "id": 1191}, {"name": "Boats & Watercraft", "id": 1140}, {"name": "Campers & RVs", "id": 1213}, {"name": "Classic Vehicles", "id": 1013}, {"children": [{"name": "Cargo Trucks & Trailers", "id": 1215}], "name": "Commercial Vehicles", "id": 1214}, {"name": "Custom & Performance Vehicles", "id": 806}, {"children": [{"name": "Electric & Plug-In Vehicles", "id": 1380}], "name": "Hybrid & Alternative Vehicles", "id": 810}, {"name": "Microcars & City Cars", "id": 1317}, {"name": "Motorcycles", "id": 273}, {"name": "Off-Road Vehicles", "id": 148}, {"name": "Personal Aircraft", "id": 1147}, {"name": "Scooters & Mopeds", "id": 1212}, {"children": [{"name": "SUVs", "id": 1057}, {"name": "Trucks", "id": 1056}, {"name": "Vans & Minivans", "id": 1058}], "name": "Trucks & SUVs", "id": 610}, {"children": [{"name": "Acura", "id": 820}, {"name": "Audi", "id": 821}, {"name": "Bentley", "id": 1059}, {"name": "BMW", "id": 822}, {"name": "Buick", "id": 1060}, {"name": "Cadillac", "id": 823}, {"name": "Chevrolet", "id": 826}, {"name": "Chrysler", "id": 833}, {"name": "Citro\u00ebn", "id": 834}, {"name": "Dodge", "id": 836}, {"name": "Ferrari", "id": 1061}, {"name": "Fiat", "id": 838}, {"name": "Ford", "id": 840}, {"name": "GM-Daewoo", "id": 896}, {"name": "GMC", "id": 842}, {"name": "Honda", "id": 843}, {"name": "Hummer", "id": 1062}, {"name": "Hyundai", "id": 845}, {"name": "Isuzu", "id": 1378}, {"name": "Jaguar", "id": 1063}, {"name": "Jeep", "id": 846}, {"name": "Kia", "id": 848}, {"name": "Lamborghini", "id": 1064}, {"name": "Land Rover", "id": 1065}, {"name": "Lexus", "id": 849}, {"name": "Lincoln", "id": 850}, {"name": "Maserati", "id": 1066}, {"name": "Mazda", "id": 851}, {"name": "Mercedes-Benz", "id": 852}, {"name": "Mercury", "id": 853}, {"name": "Mini", "id": 1067}, {"name": "Mitsubishi", "id": 854}, {"children": [{"name": "Infiniti", "id": 1377}], "name": "Nissan", "id": 855}, {"name": "Peugeot", "id": 856}, {"name": "Pontiac", "id": 857}, {"name": "Porsche", "id": 858}, {"name": "Renault-Samsung", "id": 859}, {"name": "Rolls-Royce", "id": 1068}, {"name": "Saab", "id": 897}, {"name": "Saturn", "id": 860}, {"name": "Subaru", "id": 861}, {"name": "Suzuki", "id": 1070}, {"children": [{"name": "Scion", "id": 1069}], "name": "Toyota", "id": 863}, {"name": "Vauxhall-Opel", "id": 898}, {"name": "Volkswagen", "id": 865}, {"name": "Volvo", "id": 867}], "name": "Vehicle Brands", "id": 815}, {"children": [{"name": "Drunk Driving Law", "id": 968}], "name": "Vehicle Codes & Driving Laws", "id": 1294}, {"name": "Vehicle Licensing & Registration", "id": 170}, {"name": "Vehicle Maintenance", "id": 138}, {"children": [{"name": "Auto Exterior", "id": 1217}, {"name": "Auto Interior", "id": 1218}, {"children": [{"name": "Car Audio", "id": 230}, {"name": "Car Video", "id": 1189}, {"name": "GPS & Navigation", "id": 794}], "name": "Car Electronics", "id": 1188}, {"name": "Engine & Transmission", "id": 1216}, {"name": "Vehicle Fuels & Lubricants", "id": 1269}, {"name": "Vehicle Wheels & Tires", "id": 438}], "name": "Vehicle Parts & Accessories", "id": 89}, {"children": [{"name": "Fuel Economy & Gas Prices", "id": 1268}, {"name": "Vehicle Specs, Reviews & Comparisons", "id": 1267}], "name": "Vehicle Shopping", "id": 473}, {"name": "Vehicle Shows", "id": 803}], "name": "Autos & Vehicles", "id": 47}, {"children": [{"name": "Beauty Pageants", "id": 1219}, {"name": "Body Art", "id": 239}, {"children": [{"name": "Cosmetic Surgery", "id": 238}], "name": "Cosmetic Procedures", "id": 1220}, {"name": "Cosmetology & Beauty Professionals", "id": 147}, {"children": [{"name": "Hygiene & Toiletries", "id": 244}, {"name": "Make-Up & Cosmetics", "id": 234}, {"name": "Perfumes & Fragrances", "id": 242}, {"name": "Skin & Nail Care", "id": 93}, {"name": "Unwanted Body & Facial Hair Removal", "id": 144}], "name": "Face & Body Care", "id": 143}, {"children": [{"name": "Fashion Designers & Collections", "id": 98}, {"name": "Fashion Modeling", "id": 1155}], "name": "Fashion & Style", "id": 185}, {"children": [{"name": "Bodybuilding", "id": 241}, {"name": "Yoga & Pilates", "id": 611}], "name": "Fitness", "id": 94}, {"children": [{"name": "Hair Loss", "id": 235}], "name": "Hair Care", "id": 146}, {"children": [{"name": "Massage Therapy", "id": 557}], "name": "Spas & Beauty Services", "id": 145}, {"name": "Weight Loss", "id": 236}], "name": "Beauty & Fitness", "id": 44}, {"children": [{"name": "Biographies & Quotations", "id": 690}, {"name": "Book Retailers", "id": 355}, {"name": "Children's Literature", "id": 1183}, {"name": "E-Books", "id": 608}, {"name": "Fan Fiction", "id": 540}, {"name": "Literary Classics", "id": 1184}, {"name": "Magazines", "id": 412}, {"name": "Poetry", "id": 565}, {"name": "Writers Resources", "id": 1177}], "name": "Books & Literature", "id": 22}, {"children": [{"children": [{"children": [{"name": "Loyalty Cards & Programs", "id": 1309}], "name": "Marketing Services", "id": 83}, {"name": "Public Relations", "id": 327}, {"name": "Search Engine Optimization & Marketing", "id": 84}, {"name": "Telemarketing", "id": 328}], "name": "Advertising & Marketing", "id": 25}, {"children": [{"name": "Defense Industry", "id": 669}, {"name": "Space Technology", "id": 668}], "name": "Aerospace & Defense", "id": 356}, {"children": [{"name": "Agricultural Equipment", "id": 748}, {"name": "Aquaculture", "id": 747}, {"name": "Crops & Seed", "id": 749}, {"name": "Food Production", "id": 621}, {"name": "Forestry", "id": 750}, {"name": "Horticulture", "id": 751}, {"name": "Livestock", "id": 752}], "name": "Agriculture & Forestry", "id": 46}, {"name": "Automotive Industry", "id": 1190}, {"name": "Business Education", "id": 799}, {"children": [{"name": "Commercial Lending", "id": 1160}, {"name": "Investment Banking", "id": 1139}, {"name": "Risk Management", "id": 620}, {"name": "Venture Capital", "id": 905}], "name": "Business Finance", "id": 1138}, {"children": [{"children": [{"name": "Company Earnings", "id": 1240}, {"name": "Mergers & Acquisitions", "id": 1241}], "name": "Company News", "id": 1179}, {"name": "Economy News", "id": 1164}, {"name": "Financial Markets", "id": 1163}, {"name": "Fiscal Policy News", "id": 1165}], "name": "Business News", "id": 784}, {"children": [{"name": "Business Plans & Presentations", "id": 336}, {"children": [{"name": "Compensation & Benefits", "id": 723}, {"name": "Corporate Training", "id": 331}, {"name": "Payroll Services", "id": 724}, {"name": "Recruitment & Staffing", "id": 330}], "name": "Human Resources", "id": 157}, {"children": [{"name": "Business Process", "id": 721}, {"children": [{"name": "Project Management Software", "id": 1359}], "name": "Project Management", "id": 1360}, {"name": "Strategic Planning", "id": 722}, {"name": "Supply Chain Management", "id": 801}], "name": "Management", "id": 338}], "name": "Business Operations", "id": 1159}, {"children": [{"children": [{"children": [{"name": "Loyalty Cards & Programs", "id": 1309}], "name": "Marketing Services", "id": 83}, {"name": "Public Relations", "id": 327}, {"name": "Search Engine Optimization & Marketing", "id": 84}, {"name": "Telemarketing", "id": 328}], "name": "Advertising & Marketing", "id": 25}, {"name": "Consulting", "id": 1162}, {"children": [{"name": "Trade Shows & Conventions", "id": 335}], "name": "Corporate Events", "id": 334}, {"children": [{"name": "Merchant Services & Payment Systems", "id": 280}], "name": "E-Commerce Services", "id": 340}, {"name": "Fire & Security Services", "id": 726}, {"name": "Knowledge Management", "id": 800}, {"children": [{"name": "Office & Facilities Management", "id": 337}], "name": "Office Services", "id": 28}, {"children": [{"name": "Business Cards & Stationary", "id": 1375}, {"name": "Office Furniture", "id": 333}, {"children": [{"name": "Copiers", "id": 1331}, {"name": "Fax Machines", "id": 1332}, {"name": "Ink & Toner", "id": 1333}, {"name": "Printers", "id": 494}, {"name": "Scanners", "id": 495}], "name": "Printers, Copiers & Fax", "id": 1330}], "name": "Office Supplies", "id": 95}, {"name": "Outsourcing", "id": 718}, {"children": [{"name": "Stock Photography", "id": 574}], "name": "Photo & Video Services", "id": 576}, {"name": "Physical Asset Management", "id": 719}, {"name": "Quality Control & Tracking", "id": 720}, {"name": "Signage", "id": 1076}, {"name": "Writing & Editing Services", "id": 725}], "name": "Business Services", "id": 329}, {"children": [{"name": "Agrochemicals", "id": 670}, {"name": "Cleaning Agents", "id": 671}, {"name": "Coatings & Adhesives", "id": 672}, {"name": "Dyes & Pigments", "id": 673}, {"name": "Plastics & Polymers", "id": 674}], "name": "Chemicals Industry", "id": 288}, {"children": [{"children": [{"name": "Doors & Windows", "id": 827}, {"name": "HVAC & Climate Control", "id": 828}, {"name": "Nails Screws & Fasteners", "id": 829}, {"name": "Plumbing Fixtures & Equipment", "id": 830}, {"name": "Wood & Plastics", "id": 831}], "name": "Building Materials & Supplies", "id": 650}, {"name": "Civil Engineering", "id": 651}, {"name": "Construction Consulting & Contracting", "id": 652}, {"name": "Urban & Regional Planning", "id": 686}], "name": "Construction & Maintenance", "id": 48}, {"children": [{"name": "Electricity", "id": 658}, {"name": "Nuclear Energy", "id": 954}, {"children": [{"name": "Vehicle Fuels & Lubricants", "id": 1269}], "name": "Oil & Gas", "id": 659}, {"name": "Renewable & Alternative Energy", "id": 657}, {"children": [{"name": "Recycling", "id": 1307}], "name": "Waste Management", "id": 660}, {"name": "Water Supply & Treatment", "id": 1349}], "name": "Energy & Utilities", "id": 233}, {"children": [{"name": "Customer Relationship Management (CRM)", "id": 341}, {"name": "Data Management", "id": 343}, {"children": [{"name": "Merchant Services & Payment Systems", "id": 280}], "name": "E-Commerce Services", "id": 340}, {"name": "Enterprise Resource Planning (ERP)", "id": 342}], "name": "Enterprise Technology", "id": 77}, {"children": [{"children": [{"name": "Film & TV Awards", "id": 1108}, {"name": "Film & TV Production", "id": 1117}], "name": "Film & TV Industry", "id": 1116}, {"children": [{"name": "Music Awards", "id": 1113}, {"name": "Record Labels", "id": 1114}], "name": "Recording Industry", "id": 1115}], "name": "Entertainment Industry", "id": 612}, {"children": [{"name": "Event Planning", "id": 956}, {"children": [{"name": "Grocery & Food Retailers", "id": 121}, {"name": "Restaurant Supply", "id": 816}], "name": "Food Service", "id": 957}], "name": "Hospitality Industry", "id": 955}, {"children": [{"children": [{"name": "Valves Hoses & Fittings", "id": 839}], "name": "Fluid Handling", "id": 1152}, {"name": "Generators", "id": 835}, {"name": "Heavy Machinery", "id": 837}], "name": "Industrial Materials & Equipment", "id": 287}, {"children": [{"name": "Factory Automation", "id": 661}], "name": "Manufacturing", "id": 49}, {"name": "Metals & Mining", "id": 606}, {"name": "Pharmaceuticals & Biotech", "id": 255}, {"children": [{"children": [{"name": "Business Cards & Stationary", "id": 1375}], "name": "Document & Printing Services", "id": 332}, {"name": "Journalism & News Industry", "id": 1204}], "name": "Printing & Publishing", "id": 1176}, {"name": "Professional & Trade Associations", "id": 1199}, {"children": [{"name": "Retail Equipment & Technology", "id": 844}], "name": "Retail Trade", "id": 841}, {"children": [{"name": "Business Formation", "id": 1200}, {"name": "Home Office", "id": 727}, {"name": "MLM & Business Opportunities", "id": 552}], "name": "Small Business", "id": 551}, {"name": "Textiles & Nonwovens", "id": 566}, {"children": [{"name": "Aviation", "id": 662}, {"name": "Distribution & Logistics", "id": 664}, {"children": [{"name": "Cargo Trucks & Trailers", "id": 1215}], "name": "Freight & Trucking", "id": 289}, {"name": "Import & Export", "id": 354}, {"children": [{"name": "Couriers & Messengers", "id": 663}], "name": "Mail & Package Delivery", "id": 1150}, {"name": "Maritime Transport", "id": 665}, {"name": "Moving & Relocation", "id": 291}, {"name": "Packaging", "id": 290}, {"children": [{"name": "Airport Parking & Transportation", "id": 1245}], "name": "Parking", "id": 1306}, {"name": "Public Storage", "id": 1347}, {"name": "Rail Transport", "id": 666}, {"name": "Urban Transport", "id": 667}], "name": "Transportation & Logistics", "id": 50}], "name": "Business & Industrial", "id": 12}, {"children": [{"name": "CAD & CAM", "id": 1300}, {"children": [{"children": [{"name": "Chips & Processors", "id": 741}, {"name": "Computer Memory", "id": 226}, {"name": "Sound & Video Cards", "id": 740}], "name": "Computer Components", "id": 717}, {"children": [{"name": "CD & DVD Drives & Burners", "id": 1321}, {"name": "CD & DVD Storage Media", "id": 1322}, {"name": "Computer Memory", "id": 226}, {"name": "Data Backup & Recovery", "id": 1323}, {"name": "Flash Drives & Memory Cards", "id": 1318}, {"name": "Hard Drives", "id": 1320}, {"name": "Memory Card Readers", "id": 1319}, {"name": "Network Storage", "id": 729}], "name": "Computer Drives & Storage", "id": 496}, {"children": [{"name": "Computer Monitors & Displays", "id": 487}, {"name": "Input Devices", "id": 493}, {"children": [{"name": "Copiers", "id": 1331}, {"name": "Fax Machines", "id": 1332}, {"name": "Ink & Toner", "id": 1333}, {"name": "Printers", "id": 494}, {"name": "Scanners", "id": 495}], "name": "Printers, Copiers & Fax", "id": 1330}], "name": "Computer Peripherals", "id": 312}, {"name": "Computer Servers", "id": 728}, {"name": "Desktop Computers", "id": 309}, {"name": "Hardware Modding & Tuning", "id": 739}, {"children": [{"name": "Tablet PCs", "id": 1277}], "name": "Laptops & Notebooks", "id": 310}], "name": "Computer Hardware", "id": 30}, {"children": [{"name": "Antivirus & Malware", "id": 315}, {"name": "Network Security", "id": 344}], "name": "Computer Security", "id": 314}, {"children": [{"children": [{"name": "Headphones", "id": 1396}, {"name": "MP3 & Portable Media Players", "id": 227}, {"name": "Speakers", "id": 1158}, {"name": "Stereo Systems & Components", "id": 91}], "name": "Audio Equipment", "id": 361}, {"children": [{"name": "Binoculars, Telescopes & Optical Devices", "id": 1384}, {"children": [{"name": "Camcorders", "id": 308}, {"name": "Camera Lenses", "id": 1383}, {"name": "Cameras", "id": 307}], "name": "Cameras & Camcorders", "id": 306}], "name": "Camera & Photo Equipment", "id": 573}, {"children": [{"name": "Car Audio", "id": 230}, {"name": "Car Video", "id": 1189}, {"name": "GPS & Navigation", "id": 794}], "name": "Car Electronics", "id": 1188}, {"name": "Electronic Accessories", "id": 1192}, {"children": [{"name": "E-Book Readers", "id": 1324}, {"name": "Handheld Game Consoles", "id": 1046}, {"name": "MP3 & Portable Media Players", "id": 227}, {"name": "PDAs & Handhelds", "id": 228}], "name": "Gadgets & Portable Electronics", "id": 362}, {"children": [{"name": "Handheld Game Consoles", "id": 1046}, {"name": "Nintendo", "id": 1043}, {"name": "Sony PlayStation", "id": 1044}, {"name": "Xbox", "id": 1045}], "name": "Game Systems & Consoles", "id": 899}, {"name": "GPS & Navigation", "id": 794}, {"children": [{"name": "DVRs & Set-Top Boxes", "id": 1393}, {"name": "Home Theater Systems", "id": 1157}, {"name": "Projectors & Screens", "id": 1334}, {"children": [{"name": "HDTVs", "id": 1354}, {"name": "LCD TVs", "id": 1356}, {"name": "Plasma TVs", "id": 1355}, {"name": "Projection TVs", "id": 1357}], "name": "Televisions", "id": 305}, {"children": [{"name": "Blu-Ray Players & Recorders", "id": 1394}, {"name": "DVD Players & Recorders", "id": 1395}], "name": "Video Players & Recorders", "id": 492}], "name": "TV & Video Equipment", "id": 229}], "name": "Consumer Electronics", "id": 78}, {"children": [{"name": "Data Sheets & Electronics Reference", "id": 900}, {"name": "Electromechanical Devices", "id": 743}, {"name": "Electronic Components", "id": 742}, {"name": "Optoelectronics & Fiber", "id": 744}, {"name": "Power Supplies", "id": 745}, {"name": "Test & Measurement", "id": 746}], "name": "Electronics & Electrical", "id": 434}, {"children": [{"name": "Customer Relationship Management (CRM)", "id": 341}, {"name": "Data Management", "id": 343}, {"children": [{"name": "Merchant Services & Payment Systems", "id": 280}], "name": "E-Commerce Services", "id": 340}, {"name": "Enterprise Resource Planning (ERP)", "id": 342}], "name": "Enterprise Technology", "id": 77}, {"children": [{"name": "Data Formats & Protocols", "id": 488}, {"name": "Distributed & Parallel Computing", "id": 1298}, {"name": "Network Monitoring & Management", "id": 347}, {"name": "Networking Equipment", "id": 346}, {"name": "VPN & Remote Access", "id": 1279}], "name": "Networking", "id": 311}, {"children": [{"name": "C & C++", "id": 731}, {"name": "Developer Jobs", "id": 802}, {"name": "Development Tools", "id": 730}, {"name": "Java", "id": 732}, {"name": "Scripting Languages", "id": 733}, {"name": "Windows & .NET", "id": 734}], "name": "Programming", "id": 31}, {"children": [{"children": [{"name": "Accounting & Financial Software", "id": 1341}, {"name": "Calendar & Scheduling Software", "id": 1358}, {"name": "Presentation Software", "id": 1346}, {"name": "Project Management Software", "id": 1359}, {"name": "Spreadsheet Software", "id": 1344}, {"name": "Word Processing Software", "id": 1345}], "name": "Business & Productivity Software", "id": 498}, {"name": "Device Drivers", "id": 225}, {"name": "Educational Software", "id": 804}, {"name": "Freeware & Shareware", "id": 901}, {"children": [{"name": "Content Management", "id": 808}, {"name": "Internet Clients & Browsers", "id": 304}, {"name": "Proxying & Filtering", "id": 902}], "name": "Internet Software", "id": 807}, {"children": [{"name": "Ringtones & Mobile Goodies", "id": 532}], "name": "Mobile Apps & Add-Ons", "id": 1109}, {"children": [{"children": [{"name": "Audio Files Formats & Codecs", "id": 1092}], "name": "Audio & Music Software", "id": 1089}, {"children": [{"name": "Fonts", "id": 805}], "name": "Desktop Publishing", "id": 1088}, {"name": "Graphics & Animation Software", "id": 486}, {"name": "Media Players", "id": 1090}, {"children": [{"name": "Video File Formats & Codecs", "id": 1315}], "name": "Photo & Video Software", "id": 577}], "name": "Multimedia Software", "id": 497}, {"name": "Open Source", "id": 313}, {"children": [{"name": "Linux & Unix", "id": 736}, {"name": "Mac OS", "id": 735}, {"name": "Mobile OS", "id": 1382}, {"name": "Windows OS", "id": 737}], "name": "Operating Systems", "id": 303}, {"name": "Software Utilities", "id": 224}, {"name": "Web Apps & Online Tools", "id": 1142}], "name": "Software", "id": 32}, {"name": "Technical Support", "id": 567}, {"name": "Technology News", "id": 785}], "name": "Computers & Electronics", "id": 5}, {"children": [{"children": [{"name": "Accounting & Financial Software", "id": 1341}, {"name": "Tax Preparation & Planning", "id": 1283}], "name": "Accounting & Auditing", "id": 278}, {"name": "Banking", "id": 37}, {"children": [{"name": "Auto Financing", "id": 468}, {"name": "College Financing", "id": 813}, {"name": "Credit Cards", "id": 811}, {"name": "Debt Management", "id": 812}, {"name": "Home Financing", "id": 466}], "name": "Credit & Lending", "id": 279}, {"name": "Currencies & Foreign Exchange", "id": 814}, {"name": "Financial Planning", "id": 903}, {"children": [{"name": "College Financing", "id": 813}], "name": "Grants & Financial Assistance", "id": 1282}, {"children": [{"name": "Auto Insurance", "id": 467}, {"name": "Health Insurance", "id": 249}, {"name": "Home Insurance", "id": 465}], "name": "Insurance", "id": 38}, {"children": [{"name": "Commodities & Futures Trading", "id": 904}], "name": "Investing", "id": 107}, {"name": "Retirement & Pension", "id": 619}], "name": "Finance", "id": 7}, {"children": [{"children": [{"name": "Beer", "id": 404}, {"name": "Liquor", "id": 406}, {"name": "Wine", "id": 405}], "name": "Alcoholic Beverages", "id": 277}, {"name": "Candy & Sweets", "id": 906}, {"children": [{"name": "Baked Goods", "id": 907}, {"name": "Fruits & Vegetables", "id": 908}, {"name": "Meat & Seafood", "id": 909}, {"name": "Soups & Stews", "id": 910}, {"name": "Vegetarian Cuisine", "id": 825}, {"children": [{"name": "Asian Cuisine", "id": 912}, {"name": "Latin American Cuisine", "id": 913}, {"name": "Mediterranean Cuisine", "id": 914}, {"name": "North American Cuisine", "id": 915}], "name": "World Cuisines", "id": 911}], "name": "Cooking & Recipes", "id": 122}, {"name": "Culinary Training", "id": 297}, {"name": "Grocery & Food Retailers", "id": 121}, {"children": [{"name": "Coffee & Tea", "id": 916}], "name": "Non-Alcoholic Beverages", "id": 560}, {"children": [{"name": "Dining Guides", "id": 917}, {"name": "Fast Food", "id": 918}, {"name": "Restaurant Supply", "id": 816}], "name": "Restaurants", "id": 276}], "name": "Food & Drink", "id": 71}, {"children": [{"name": "Arcade & Coin-Op Games", "id": 919}, {"children": [{"name": "Chess & Abstract Strategy Games", "id": 921}, {"name": "Miniatures & Wargaming", "id": 922}], "name": "Board Games", "id": 920}, {"children": [{"name": "Collectible Card Games", "id": 923}, {"name": "Poker & Casino Games", "id": 924}], "name": "Card Games", "id": 39}, {"children": [{"name": "Action & Platform Games", "id": 1311}, {"name": "Adventure Games", "id": 925}, {"name": "Casual Games", "id": 926}, {"name": "Driving & Racing Games", "id": 927}, {"name": "Fighting Games", "id": 928}, {"children": [{"name": "Handheld Game Consoles", "id": 1046}, {"name": "Nintendo", "id": 1043}, {"name": "Sony PlayStation", "id": 1044}, {"name": "Xbox", "id": 1045}], "name": "Game Systems & Consoles", "id": 899}, {"children": [{"name": "Game Cheats & Hints", "id": 381}], "name": "Gaming Media & Reference", "id": 1343}, {"name": "Music & Dance Games", "id": 929}, {"name": "Shooter Games", "id": 930}, {"name": "Simulation Games", "id": 931}, {"name": "Sports Games", "id": 932}, {"name": "Strategy Games", "id": 933}, {"name": "Video Game Emulation", "id": 1342}, {"name": "Video Game Retailers", "id": 1146}], "name": "Computer & Video Games", "id": 41}, {"children": [{"name": "Drawing & Coloring", "id": 1397}, {"name": "Dress-Up & Fashion Games", "id": 1173}], "name": "Family-Oriented Games & Activities", "id": 1290}, {"children": [{"name": "Massive Multiplayer", "id": 935}], "name": "Online Games", "id": 105}, {"name": "Party Games", "id": 936}, {"name": "Puzzles & Brainteasers", "id": 937}, {"name": "Roleplaying Games", "id": 622}, {"children": [{"name": "Billiards", "id": 939}, {"name": "Table Tennis", "id": 940}], "name": "Table Games", "id": 938}], "name": "Games", "id": 8}, {"children": [{"children": [{"name": "Alzheimer's Disease", "id": 624}], "name": "Aging & Geriatrics", "id": 623}, {"children": [{"name": "Acupuncture & Chinese Medicine", "id": 1239}, {"name": "Cleansing & Detoxification", "id": 1238}], "name": "Alternative & Natural Medicine", "id": 499}, {"children": [{"name": "AIDS & HIV", "id": 625}, {"name": "Allergies", "id": 626}, {"name": "Arthritis", "id": 628}, {"name": "Cancer", "id": 429}, {"name": "Cold & Flu", "id": 629}, {"name": "Diabetes", "id": 630}, {"name": "Ear Nose & Throat", "id": 1211}, {"name": "Eating Disorders", "id": 571}, {"children": [{"name": "Diabetes", "id": 630}, {"name": "Thyroid Conditions", "id": 1329}], "name": "Endocrine Conditions", "id": 1328}, {"name": "Genetic Disorders", "id": 941}, {"name": "GERD & Digestive Disorders", "id": 638}, {"name": "Heart & Hypertension", "id": 559}, {"children": [{"name": "Cold & Flu", "id": 629}, {"name": "Parasites & Parasitic Diseases", "id": 1262}, {"children": [{"name": "AIDS & HIV", "id": 625}], "name": "Sexually Transmitted Diseases", "id": 421}, {"name": "Vaccines & Immunizations", "id": 1263}], "name": "Infectious Diseases", "id": 632}, {"name": "Injury", "id": 817}, {"children": [{"name": "Alzheimer's Disease", "id": 624}], "name": "Neurological Disorders", "id": 942}, {"name": "Obesity", "id": 818}, {"children": [{"name": "Headaches & Migraines", "id": 631}], "name": "Pain Management", "id": 819}, {"children": [{"name": "Asthma", "id": 627}], "name": "Respiratory Conditions", "id": 824}, {"name": "Skin Conditions", "id": 420}, {"name": "Sleep Disorders", "id": 633}], "name": "Health Conditions", "id": 419}, {"name": "Health Education & Medical Training", "id": 254}, {"name": "Health Foundations & Medical Research", "id": 252}, {"children": [{"name": "Health Policy", "id": 1256}], "name": "Health News", "id": 1253}, {"children": [{"children": [{"name": "Mobility Equipment & Accessories", "id": 1353}], "name": "Assistive Technology", "id": 1352}], "name": "Medical Devices & Equipment", "id": 251}, {"children": [{"name": "Doctors' Offices", "id": 634}, {"name": "Hospitals & Treatment Centers", "id": 250}, {"children": [{"name": "Medical Tests & Exams", "id": 943}, {"children": [{"name": "Cosmetic Surgery", "id": 238}], "name": "Surgery", "id": 944}, {"name": "Vaccines & Immunizations", "id": 1263}], "name": "Medical Procedures", "id": 635}, {"name": "Physical Therapy", "id": 500}], "name": "Medical Facilities & Services", "id": 256}, {"children": [{"name": "Medical Photos & Illustration", "id": 945}], "name": "Medical Literature & Resources", "id": 253}, {"children": [{"name": "Erectile Dysfunction", "id": 202}], "name": "Men's Health", "id": 636}, {"children": [{"name": "Anxiety & Stress", "id": 639}, {"name": "Depression", "id": 640}, {"children": [{"name": "ADD & ADHD", "id": 642}], "name": "Learning & Developmental Disabilities", "id": 641}], "name": "Mental Health", "id": 437}, {"children": [{"name": "Assisted Living & Long Term Care", "id": 649}], "name": "Nursing", "id": 418}, {"children": [{"children": [{"name": "Cholesterol Issues", "id": 643}], "name": "Special & Restricted Diets", "id": 457}, {"name": "Vitamins & Supplements", "id": 237}], "name": "Nutrition", "id": 456}, {"name": "Oral & Dental Care", "id": 245}, {"name": "Pediatrics", "id": 645}, {"children": [{"name": "Drugs & Medications", "id": 646}], "name": "Pharmacy", "id": 248}, {"children": [{"name": "Health Policy", "id": 1256}, {"name": "Occupational Health & Safety", "id": 644}, {"name": "Poisons & Overdoses", "id": 946}, {"name": "Vaccines & Immunizations", "id": 1263}], "name": "Public Health", "id": 947}, {"children": [{"name": "Birth Control", "id": 198}, {"name": "Erectile Dysfunction", "id": 202}, {"name": "Infertility", "id": 647}, {"children": [{"name": "Pregnancy & Maternity", "id": 401}], "name": "OBGYN", "id": 558}, {"name": "Sex Education & Counseling", "id": 536}, {"name": "Sexual Enhancement", "id": 1236}, {"children": [{"name": "AIDS & HIV", "id": 625}], "name": "Sexually Transmitted Diseases", "id": 421}], "name": "Reproductive Health", "id": 195}, {"children": [{"name": "Drug & Alcohol Testing", "id": 1351}, {"name": "Drug & Alcohol Treatment", "id": 1350}, {"name": "Smoking & Smoking Cessation", "id": 1237}, {"name": "Steroids & Performance-Enhancing Drugs", "id": 1235}], "name": "Substance Abuse", "id": 257}, {"children": [{"name": "Eyeglasses & Contacts", "id": 1224}], "name": "Vision Care", "id": 246}, {"children": [{"children": [{"name": "Pregnancy & Maternity", "id": 401}], "name": "OBGYN", "id": 558}], "name": "Women's Health", "id": 648}], "name": "Health", "id": 45}, {"children": [{"name": "Antiques & Collectibles", "id": 64}, {"name": "Bowling", "id": 1016}, {"name": "Clubs & Nightlife", "id": 188}, {"name": "Clubs & Organizations", "id": 189}, {"children": [{"name": "Film & TV Awards", "id": 1108}, {"name": "Lottery & Sweepstakes", "id": 364}], "name": "Contests, Awards & Prizes", "id": 1276}, {"children": [{"name": "Fiber & Textile Arts", "id": 1230}], "name": "Crafts", "id": 284}, {"children": [{"name": "Bicycles & Accessories", "id": 1191}], "name": "Cycling", "id": 458}, {"children": [{"name": "Equestrian", "id": 568}, {"name": "Fishing", "id": 462}, {"name": "Hiking & Camping", "id": 542}, {"name": "Hunting & Shooting", "id": 461}], "name": "Outdoors", "id": 688}, {"name": "Paintball", "id": 786}, {"children": [{"children": [{"name": "Animal Welfare", "id": 883}, {"name": "Pet Food & Supplies", "id": 379}, {"name": "Veterinarians", "id": 380}], "name": "Animal Products & Services", "id": 882}, {"children": [{"name": "Birds", "id": 884}, {"name": "Cats", "id": 885}, {"name": "Dogs", "id": 886}, {"name": "Exotic Pets", "id": 607}, {"name": "Fish & Aquaria", "id": 887}, {"name": "Horses", "id": 888}, {"name": "Rabbits & Rodents", "id": 889}, {"name": "Reptiles & Amphibians", "id": 890}], "name": "Pets", "id": 563}, {"children": [{"name": "Insects & Entomology", "id": 1278}, {"name": "Zoos-Aquariums-Preserves", "id": 1009}], "name": "Wildlife", "id": 119}], "name": "Pets & Animals", "id": 66}, {"children": [{"children": [{"name": "Binoculars, Telescopes & Optical Devices", "id": 1384}, {"children": [{"name": "Camcorders", "id": 308}, {"name": "Camera Lenses", "id": 1383}, {"name": "Cameras", "id": 307}], "name": "Cameras & Camcorders", "id": 306}], "name": "Camera & Photo Equipment", "id": 573}, {"children": [{"name": "Video File Formats & Codecs", "id": 1315}], "name": "Photo & Video Software", "id": 577}], "name": "Photographic & Digital Arts", "id": 439}, {"name": "Radio Control & Modeling", "id": 787}, {"children": [{"name": "Personal Aircraft", "id": 1147}], "name": "Recreational Aviation", "id": 999}, {"name": "Running & Walking", "id": 541}, {"children": [{"children": [{"name": "Cards & Greetings", "id": 100}, {"name": "Flowers", "id": 323}, {"name": "Gifts", "id": 99}, {"name": "Party & Holiday Supplies", "id": 324}], "name": "Gifts & Special Event Items", "id": 70}, {"children": [{"name": "Birthdays & Name Days", "id": 1270}, {"name": "Carnival & Mardi Gras", "id": 1246}, {"children": [{"name": "Christmas", "id": 1078}, {"name": "Easter", "id": 1123}], "name": "Christian Holidays", "id": 1274}, {"name": "Halloween & October 31st", "id": 1079}, {"name": "Islamic Holidays", "id": 1275}, {"name": "Jewish Holidays", "id": 1124}, {"name": "New Year", "id": 1271}, {"name": "Thanksgiving", "id": 1125}, {"name": "Valentine's Day", "id": 1122}], "name": "Holidays & Seasonal Events", "id": 678}, {"name": "Weddings", "id": 293}], "name": "Special Occasions", "id": 977}, {"children": [{"name": "Goth Subculture", "id": 503}, {"name": "Science Fiction & Fantasy", "id": 676}], "name": "Subcultures & Niche Interests", "id": 502}, {"children": [{"children": [{"name": "Boats & Watercraft", "id": 1140}], "name": "Boating", "id": 459}, {"name": "Diving & Underwater Activities", "id": 1305}, {"name": "Surf & Swim", "id": 689}, {"name": "Water Sports", "id": 118}], "name": "Water Activities", "id": 1002}], "name": "Hobbies & Leisure", "id": 65}, {"children": [{"children": [{"name": "Bathroom", "id": 1365}, {"children": [{"name": "Bedding & Bed Linens", "id": 1369}, {"name": "Beds & Headboards", "id": 1367}, {"name": "Mattresses", "id": 1368}], "name": "Bedroom", "id": 1366}], "name": "Bed & Bath", "id": 948}, {"children": [{"name": "Cleaning Supplies & Services", "id": 949}], "name": "Domestic Services", "id": 472}, {"name": "Gardening & Landscaping", "id": 269}, {"children": [{"name": "Major Kitchen Appliances", "id": 1293}, {"name": "Small Kitchen Appliances", "id": 1292}, {"name": "Water Filters & Purifiers", "id": 1371}], "name": "Home Appliances", "id": 271}, {"children": [{"name": "Clocks", "id": 1363}, {"name": "Lamps & Lighting", "id": 272}, {"name": "Rugs & Carpets", "id": 1362}, {"name": "Sofas & Chairs", "id": 1370}], "name": "Home Furnishings", "id": 270}, {"children": [{"name": "Construction & Power Tools", "id": 950}, {"name": "Doors & Windows", "id": 827}, {"children": [{"name": "Rugs & Carpets", "id": 1362}], "name": "Flooring", "id": 832}, {"name": "House Painting & Finishing", "id": 1232}, {"name": "HVAC & Climate Control", "id": 828}, {"name": "Plumbing", "id": 1153}, {"name": "Roofing", "id": 1175}], "name": "Home Improvement", "id": 158}, {"name": "Home Storage & Shelving", "id": 1348}, {"name": "Homemaking & Interior Decor", "id": 137}, {"name": "HVAC & Climate Control", "id": 828}, {"children": [{"children": [{"name": "Cutlery & Cutting Accessories", "id": 1373}], "name": "Cookware & Diningware", "id": 120}, {"name": "Major Kitchen Appliances", "id": 1293}, {"name": "Small Kitchen Appliances", "id": 1292}], "name": "Kitchen & Dining", "id": 951}, {"name": "Laundry", "id": 1364}, {"name": "Nursery & Playroom", "id": 1372}, {"name": "Pest Control", "id": 471}, {"name": "Swimming Pools & Spas", "id": 952}, {"name": "Yard & Patio", "id": 953}], "name": "Home & Garden", "id": 11}, {"children": [{"children": [{"name": "Radio Equipment", "id": 1182}], "name": "Communications Equipment", "id": 385}, {"children": [{"name": "Microblogging", "id": 1381}, {"name": "Text & Instant Messaging", "id": 1379}, {"name": "Voice & Video Chat", "id": 386}], "name": "Email & Messaging", "id": 394}, {"children": [{"children": [{"name": "Bluetooth Accessories", "id": 1170}], "name": "Mobile & Wireless Accessories", "id": 1171}, {"children": [{"name": "Ringtones & Mobile Goodies", "id": 532}], "name": "Mobile Apps & Add-Ons", "id": 1109}, {"name": "Mobile OS", "id": 1382}, {"children": [{"name": "Smart Phones", "id": 1071}], "name": "Mobile Phones", "id": 390}], "name": "Mobile & Wireless", "id": 382}, {"children": [{"name": "People Search", "id": 1234}], "name": "Search Engines", "id": 485}, {"children": [{"name": "Cable & Satellite Providers", "id": 501}, {"name": "ISPs", "id": 104}, {"children": [{"name": "Calling Cards", "id": 389}], "name": "Phone Service Providers", "id": 384}], "name": "Service Providers", "id": 383}, {"name": "Teleconferencing", "id": 392}, {"name": "Web Apps & Online Tools", "id": 1142}, {"name": "Web Portals", "id": 301}, {"children": [{"name": "Affiliate Programs", "id": 326}, {"name": "Search Engine Optimization & Marketing", "id": 84}, {"name": "Web Design & Development", "id": 422}, {"name": "Web Hosting & Domain Registration", "id": 53}, {"name": "Web Stats & Analytics", "id": 675}], "name": "Web Services", "id": 302}], "name": "Internet & Telecom", "id": 13}, {"children": [{"children": [{"name": "Academic Conferences & Publications", "id": 1289}, {"name": "Alumni & Reunions", "id": 1015}, {"name": "Arts Education", "id": 1195}, {"name": "Business Education", "id": 799}, {"name": "Colleges & Universities", "id": 372}, {"name": "Distance Learning", "id": 367}, {"name": "Early Childhood Education", "id": 1012}, {"name": "Foreign Language Study", "id": 1266}, {"name": "Health Education & Medical Training", "id": 254}, {"name": "Homeschooling", "id": 791}, {"name": "Legal Education", "id": 792}, {"name": "Music Education & Instruction", "id": 1087}, {"name": "Primary & Secondary Schooling (K-12)", "id": 371}, {"name": "Special Education", "id": 1118}, {"name": "Standardized & Admissions Tests", "id": 373}, {"name": "Study Abroad", "id": 1308}, {"name": "Teaching & Classroom Resources", "id": 700}, {"name": "Training & Certification", "id": 1388}, {"children": [{"name": "Computer Education", "id": 1229}], "name": "Vocational & Continuing Education", "id": 369}], "name": "Education", "id": 74}, {"children": [{"name": "Career Resources & Planning", "id": 959}, {"name": "Developer Jobs", "id": 802}, {"name": "Job Listings", "id": 960}, {"name": "Resumes & Portfolios", "id": 961}], "name": "Jobs", "id": 60}], "name": "Jobs & Education", "id": 958}, {"children": [{"children": [{"name": "Courts & Judiciary", "id": 1075}, {"name": "Embassies & Consulates", "id": 962}, {"name": "Executive Branch", "id": 963}, {"name": "Government Agencies", "id": 1387}, {"name": "Government Contracting & Procurement", "id": 1385}, {"name": "Intelligence & Counterterrorism", "id": 1221}, {"name": "Legislative Branch", "id": 964}, {"name": "Lobbying", "id": 1386}, {"name": "Multilateral Organizations", "id": 965}, {"name": "Public Finance", "id": 1161}, {"children": [{"name": "Drug Laws & Policy", "id": 1314}, {"name": "Fiscal Policy News", "id": 1165}, {"name": "Health Policy", "id": 1256}, {"name": "Immigration Policy & Border Issues", "id": 1313}, {"name": "International Relations", "id": 521}], "name": "Public Policy", "id": 1316}, {"name": "Royalty", "id": 702}, {"name": "State & Local Government", "id": 966}, {"name": "Visa & Immigration", "id": 555}], "name": "Government", "id": 76}, {"children": [{"name": "Accident & Personal Injury Law", "id": 427}, {"name": "Bankruptcy", "id": 423}, {"name": "Business & Corporate Law", "id": 1272}, {"name": "Constitutional Law & Civil Rights", "id": 967}, {"name": "Criminal Law", "id": 424}, {"name": "Family Law", "id": 522}, {"name": "Intellectual Property", "id": 426}, {"name": "Labor & Employment Law", "id": 701}, {"name": "Legal Education", "id": 792}, {"name": "Legal Services", "id": 969}, {"name": "Product Liability", "id": 970}, {"children": [{"name": "Drunk Driving Law", "id": 968}], "name": "Vehicle Codes & Driving Laws", "id": 1294}], "name": "Legal", "id": 75}, {"children": [{"name": "Air Force", "id": 1247}, {"name": "Army", "id": 1248}, {"name": "Marines", "id": 1250}, {"name": "Military History", "id": 1288}, {"name": "Navy", "id": 1249}, {"name": "Veterans", "id": 793}], "name": "Military", "id": 366}, {"children": [{"children": [{"name": "Corporate & Financial Crime", "id": 1181}, {"name": "Gangs & Organized Crime", "id": 1312}, {"name": "Prisons & Corrections", "id": 1284}], "name": "Crime & Justice", "id": 704}, {"name": "Emergency Services", "id": 168}, {"children": [{"name": "Intelligence & Counterterrorism", "id": 1221}], "name": "Law Enforcement", "id": 535}, {"children": [{"name": "Health Policy", "id": 1256}, {"name": "Occupational Health & Safety", "id": 644}, {"name": "Poisons & Overdoses", "id": 946}, {"name": "Vaccines & Immunizations", "id": 1263}], "name": "Public Health", "id": 947}, {"name": "Security Products & Services", "id": 705}], "name": "Public Safety", "id": 166}, {"children": [{"name": "Counseling Services", "id": 511}, {"name": "Welfare & Unemployment", "id": 706}], "name": "Social Services", "id": 508}], "name": "Law & Government", "id": 19}, {"children": [{"name": "Broadcast & Network News", "id": 112}, {"children": [{"children": [{"name": "Company Earnings", "id": 1240}, {"name": "Mergers & Acquisitions", "id": 1241}], "name": "Company News", "id": 1179}, {"name": "Economy News", "id": 1164}, {"name": "Financial Markets", "id": 1163}, {"name": "Fiscal Policy News", "id": 1165}], "name": "Business News", "id": 784}, {"name": "Celebrities & Entertainment News", "id": 184}, {"children": [{"name": "Scandals & Investigations", "id": 1259}], "name": "Gossip & Tabloid News", "id": 507}, {"children": [{"name": "Health Policy", "id": 1256}], "name": "Health News", "id": 1253}, {"name": "Journalism & News Industry", "id": 1204}, {"name": "Local News", "id": 572}, {"name": "Newspapers", "id": 408}, {"children": [{"name": "Campaigns & Elections", "id": 398}, {"name": "Left-Wing Politics", "id": 410}, {"name": "Media Critics & Watchdogs", "id": 1203}, {"name": "Opinion & Commentary", "id": 1201}, {"name": "Political Polls & Surveys", "id": 1202}, {"name": "Right-Wing Politics", "id": 409}], "name": "Politics", "id": 396}, {"name": "Sports News", "id": 1077}, {"name": "Technology News", "id": 785}, {"name": "Weather", "id": 63}, {"name": "World News", "id": 1209}], "name": "News", "id": 16}, {"children": [{"children": [{"name": "Microblogging", "id": 1381}], "name": "Blogging Resources & Services", "id": 504}, {"children": [{"name": "Matrimonial Services", "id": 546}, {"name": "Personals", "id": 102}, {"name": "Photo Rating Sites", "id": 320}], "name": "Dating & Personals", "id": 55}, {"name": "File Sharing & Hosting", "id": 321}, {"name": "Forum & Chat Providers", "id": 191}, {"children": [{"name": "Clip Art & Animated GIFs", "id": 1223}, {"name": "Skins Themes & Wallpapers", "id": 578}, {"name": "Social Network Apps & Add-Ons", "id": 847}], "name": "Online Goodies", "id": 43}, {"name": "Online Journals & Personal Sites", "id": 582}, {"children": [{"name": "Photo & Image Sharing", "id": 978}, {"name": "Video Sharing", "id": 979}], "name": "Photo & Video Sharing", "id": 275}, {"children": [{"name": "Social Network Apps & Add-Ons", "id": 847}], "name": "Social Networks", "id": 529}, {"name": "Virtual Worlds", "id": 972}], "name": "Online Communities", "id": 299}, {"children": [{"children": [{"children": [{"name": "Mobility Equipment & Accessories", "id": 1353}], "name": "Assistive Technology", "id": 1352}], "name": "Disabled & Special Needs", "id": 677}, {"children": [{"children": [{"name": "African-Americans", "id": 547}], "name": "Africans & Diaspora", "id": 579}, {"name": "Arabs & Middle Easterners", "id": 556}, {"children": [{"name": "East Asians & Diaspora", "id": 549}, {"name": "South Asians & Diaspora", "id": 528}, {"name": "Southeast Asians & Pacific Islanders", "id": 580}], "name": "Asians & Diaspora", "id": 1257}, {"name": "Discrimination & Identity Relations", "id": 1205}, {"name": "Eastern Europeans", "id": 682}, {"name": "Expatriate Communities", "id": 973}, {"name": "Gay-Lesbian-Bisexual-Transgender", "id": 113}, {"children": [{"name": "Native Americans", "id": 171}], "name": "Indigenous Peoples", "id": 681}, {"children": [{"name": "Jewish Holidays", "id": 1124}], "name": "Jewish Culture", "id": 550}, {"name": "Latinos & Latin-Americans", "id": 548}, {"name": "Western Europeans", "id": 683}], "name": "Ethnic & Identity Groups", "id": 56}, {"children": [{"name": "Etiquette", "id": 1304}, {"children": [{"name": "Ancestry & Genealogy", "id": 400}, {"name": "Baby & Pet Names", "id": 1231}, {"children": [{"name": "Adoption", "id": 974}, {"children": [{"name": "Baby Care & Hygiene", "id": 115}], "name": "Babies & Toddlers", "id": 1374}, {"name": "Child Care", "id": 403}, {"name": "Pregnancy & Maternity", "id": 401}, {"name": "Youth Camps", "id": 402}], "name": "Parenting", "id": 58}], "name": "Family", "id": 1132}, {"name": "Friendship", "id": 1134}, {"children": [{"name": "Divorce & Separation", "id": 1261}, {"name": "Weddings", "id": 293}], "name": "Marriage", "id": 1133}, {"name": "Romance", "id": 1135}, {"children": [{"name": "Divorce & Separation", "id": 1261}], "name": "Troubled Relationships", "id": 1260}], "name": "Family & Relationships", "id": 1131}, {"children": [{"children": [{"name": "Children's Literature", "id": 1183}, {"name": "Family Films", "id": 1291}, {"children": [{"name": "Drawing & Coloring", "id": 1397}, {"name": "Dress-Up & Fashion Games", "id": 1173}], "name": "Family-Oriented Games & Activities", "id": 1290}, {"name": "TV Family-Oriented Shows", "id": 1110}], "name": "Children's Interests", "id": 679}, {"name": "Teen Interests", "id": 680}], "name": "Kids & Teens", "id": 154}, {"children": [{"name": "Astrology & Divination", "id": 448}, {"name": "Buddhism", "id": 862}, {"children": [{"children": [{"name": "Christmas", "id": 1078}, {"name": "Easter", "id": 1123}], "name": "Christian Holidays", "id": 1274}], "name": "Christianity", "id": 864}, {"name": "Hinduism", "id": 866}, {"children": [{"name": "Islamic Holidays", "id": 1275}], "name": "Islam", "id": 868}, {"name": "Judaism", "id": 869}, {"name": "Occult & Paranormal", "id": 449}, {"name": "Pagan & Esoteric Traditions", "id": 1258}, {"name": "Places of Worship", "id": 1296}, {"name": "Scientology", "id": 1251}, {"name": "Self-Help & Motivational", "id": 870}, {"name": "Skeptics & Non-Believers", "id": 975}, {"name": "Spirituality", "id": 101}, {"name": "Theology & Religious Study", "id": 1340}], "name": "Religion & Belief", "id": 59}, {"name": "Seniors & Retirement", "id": 298}, {"children": [{"name": "Animal Welfare", "id": 883}, {"name": "Charity & Philanthropy", "id": 57}, {"name": "Discrimination & Identity Relations", "id": 1205}, {"name": "Drug Laws & Policy", "id": 1314}, {"children": [{"name": "Climate Change & Global Warming", "id": 1255}], "name": "Environmental Issues", "id": 82}, {"name": "Health Policy", "id": 1256}, {"name": "Housing & Development", "id": 1166}, {"name": "Human Rights & Liberties", "id": 1280}, {"name": "Immigration Policy & Border Issues", "id": 1313}, {"name": "Media Critics & Watchdogs", "id": 1203}, {"name": "Poverty & Hunger", "id": 1127}, {"name": "Privacy Issues", "id": 1281}, {"name": "Reproductive Rights", "id": 976}, {"name": "Same-Sex Marriage", "id": 1301}, {"children": [{"name": "Labor & Employment Law", "id": 701}, {"name": "Unions & Labor Movement", "id": 1121}], "name": "Work & Labor Issues", "id": 703}], "name": "Social Issues & Advocacy", "id": 54}, {"children": [{"children": [{"name": "Public Speaking", "id": 1303}], "name": "Communications & Media Studies", "id": 1302}, {"name": "Demographics", "id": 510}, {"name": "Economics", "id": 520}, {"name": "International Relations", "id": 521}, {"name": "Psychology", "id": 543}], "name": "Social Sciences", "id": 509}, {"children": [{"name": "Goth Subculture", "id": 503}, {"name": "Science Fiction & Fantasy", "id": 676}], "name": "Subcultures & Niche Interests", "id": 502}], "name": "People & Society", "id": 14}, {"children": [{"children": [{"name": "Animal Welfare", "id": 883}, {"name": "Pet Food & Supplies", "id": 379}, {"name": "Veterinarians", "id": 380}], "name": "Animal Products & Services", "id": 882}, {"children": [{"name": "Birds", "id": 884}, {"name": "Cats", "id": 885}, {"name": "Dogs", "id": 886}, {"name": "Exotic Pets", "id": 607}, {"name": "Fish & Aquaria", "id": 887}, {"name": "Horses", "id": 888}, {"name": "Rabbits & Rodents", "id": 889}, {"name": "Reptiles & Amphibians", "id": 890}], "name": "Pets", "id": 563}, {"children": [{"name": "Insects & Entomology", "id": 1278}, {"name": "Zoos-Aquariums-Preserves", "id": 1009}], "name": "Wildlife", "id": 119}], "name": "Pets & Animals", "id": 66}, {"children": [{"name": "Apartments & Residential Rentals", "id": 378}, {"name": "Commercial & Investment Real Estate", "id": 1178}, {"name": "Property Development", "id": 687}, {"name": "Property Inspections & Appraisals", "id": 463}, {"name": "Property Management", "id": 425}, {"name": "Real Estate Agencies", "id": 96}, {"name": "Real Estate Listings", "id": 1080}, {"name": "Timeshares & Vacation Properties", "id": 1081}], "name": "Real Estate", "id": 29}, {"children": [{"children": [{"name": "Business & Personal Listings", "id": 377}], "name": "Directories & Listings", "id": 527}, {"children": [{"name": "Biographies & Quotations", "id": 690}, {"name": "Calculators & Reference Tools", "id": 691}, {"name": "Dictionaries & Encyclopedias", "id": 692}, {"name": "Educational Resources", "id": 374}, {"children": [{"name": "Legal Forms", "id": 1137}], "name": "Forms Guides & Templates", "id": 693}, {"name": "How-To, DIY & Expert Content", "id": 694}, {"name": "Public Records", "id": 1136}, {"name": "Time & Calendars", "id": 695}], "name": "General Reference", "id": 980}, {"children": [{"name": "City & Local Guides", "id": 1014}, {"children": [{"name": "Traffic & Public Transit", "id": 685}], "name": "Maps", "id": 268}], "name": "Geographic Reference", "id": 1084}, {"children": [{"children": [{"name": "Military History", "id": 1288}], "name": "History", "id": 433}, {"name": "Myth & Folklore", "id": 609}, {"name": "Philosophy", "id": 1093}], "name": "Humanities", "id": 474}, {"children": [{"name": "Dictionaries & Encyclopedias", "id": 692}, {"children": [{"name": "Foreign Language Study", "id": 1266}, {"name": "Translation Tools & Resources", "id": 1265}], "name": "Foreign Language Resources", "id": 1264}], "name": "Language Resources", "id": 108}, {"name": "Libraries & Museums", "id": 375}, {"children": [{"children": [{"name": "Public Speaking", "id": 1303}], "name": "Communications & Media Studies", "id": 1302}, {"name": "Demographics", "id": 510}, {"name": "Economics", "id": 520}, {"name": "International Relations", "id": 521}, {"name": "Psychology", "id": 543}], "name": "Social Sciences", "id": 509}, {"children": [{"name": "Data Sheets & Electronics Reference", "id": 900}, {"name": "Technical Support", "id": 567}], "name": "Technical Reference", "id": 1233}], "name": "Reference", "id": 533}, {"children": [{"name": "Astronomy", "id": 435}, {"children": [{"name": "Anatomy", "id": 788}, {"children": [{"name": "Insects & Entomology", "id": 1278}], "name": "Flora & Fauna", "id": 981}, {"name": "Genetics", "id": 982}, {"name": "Neuroscience", "id": 1226}], "name": "Biological Sciences", "id": 440}, {"name": "Chemistry", "id": 505}, {"children": [{"name": "Computer Education", "id": 1229}, {"name": "Distributed & Parallel Computing", "id": 1298}, {"name": "Machine Learning & Artificial Intelligence", "id": 1299}, {"children": [{"name": "C & C++", "id": 731}, {"name": "Developer Jobs", "id": 802}, {"name": "Development Tools", "id": 730}, {"name": "Java", "id": 732}, {"name": "Scripting Languages", "id": 733}, {"name": "Windows & .NET", "id": 734}], "name": "Programming", "id": 31}], "name": "Computer Science", "id": 1227}, {"children": [{"children": [{"name": "Climate Change & Global Warming", "id": 1255}], "name": "Atmospheric Science", "id": 1254}, {"name": "Geology", "id": 443}, {"name": "Paleontology", "id": 1169}, {"name": "Water & Marine Sciences", "id": 441}], "name": "Earth Sciences", "id": 1168}, {"children": [{"name": "Climate Change & Global Warming", "id": 1255}], "name": "Ecology & Environment", "id": 442}, {"children": [{"name": "CAD & CAM", "id": 1300}, {"name": "Robotics", "id": 1141}, {"name": "Technology News", "id": 785}], "name": "Engineering & Technology", "id": 231}, {"children": [{"name": "Statistics", "id": 1252}], "name": "Mathematics", "id": 436}, {"name": "Physics", "id": 444}, {"name": "Scientific Equipment", "id": 445}, {"name": "Scientific Institutions", "id": 446}], "name": "Science", "id": 174}, {"children": [{"name": "Antiques & Collectibles", "id": 64}, {"children": [{"name": "Apparel Services", "id": 1228}, {"name": "Athletic Apparel", "id": 983}, {"children": [{"name": "T-Shirts", "id": 428}], "name": "Casual Apparel", "id": 984}, {"name": "Children's Clothing", "id": 985}, {"children": [{"name": "Gems & Jewelry", "id": 350}, {"name": "Handbags & Purses", "id": 986}, {"name": "Watches", "id": 987}], "name": "Clothing Accessories", "id": 124}, {"name": "Costumes", "id": 988}, {"children": [{"name": "Eyeglasses & Contacts", "id": 1224}], "name": "Eyewear", "id": 989}, {"name": "Footwear", "id": 697}, {"name": "Formal Wear", "id": 990}, {"name": "Headwear", "id": 991}, {"name": "Men's Clothing", "id": 992}, {"name": "Outerwear", "id": 993}, {"name": "Sleepwear", "id": 994}, {"name": "Swimwear", "id": 995}, {"name": "Undergarments", "id": 530}, {"name": "Uniforms & Workwear", "id": 996}, {"name": "Women's Clothing", "id": 997}], "name": "Apparel", "id": 68}, {"name": "Auctions", "id": 292}, {"name": "Classifieds", "id": 61}, {"children": [{"children": [{"name": "Headphones", "id": 1396}, {"name": "MP3 & Portable Media Players", "id": 227}, {"name": "Speakers", "id": 1158}, {"name": "Stereo Systems & Components", "id": 91}], "name": "Audio Equipment", "id": 361}, {"children": [{"name": "Binoculars, Telescopes & Optical Devices", "id": 1384}, {"children": [{"name": "Camcorders", "id": 308}, {"name": "Camera Lenses", "id": 1383}, {"name": "Cameras", "id": 307}], "name": "Cameras & Camcorders", "id": 306}], "name": "Camera & Photo Equipment", "id": 573}, {"children": [{"name": "Car Audio", "id": 230}, {"name": "Car Video", "id": 1189}, {"name": "GPS & Navigation", "id": 794}], "name": "Car Electronics", "id": 1188}, {"name": "Electronic Accessories", "id": 1192}, {"children": [{"name": "E-Book Readers", "id": 1324}, {"name": "Handheld Game Consoles", "id": 1046}, {"name": "MP3 & Portable Media Players", "id": 227}, {"name": "PDAs & Handhelds", "id": 228}], "name": "Gadgets & Portable Electronics", "id": 362}, {"children": [{"name": "Handheld Game Consoles", "id": 1046}, {"name": "Nintendo", "id": 1043}, {"name": "Sony PlayStation", "id": 1044}, {"name": "Xbox", "id": 1045}], "name": "Game Systems & Consoles", "id": 899}, {"name": "GPS & Navigation", "id": 794}, {"children": [{"name": "DVRs & Set-Top Boxes", "id": 1393}, {"name": "Home Theater Systems", "id": 1157}, {"name": "Projectors & Screens", "id": 1334}, {"children": [{"name": "HDTVs", "id": 1354}, {"name": "LCD TVs", "id": 1356}, {"name": "Plasma TVs", "id": 1355}, {"name": "Projection TVs", "id": 1357}], "name": "Televisions", "id": 305}, {"children": [{"name": "Blu-Ray Players & Recorders", "id": 1394}, {"name": "DVD Players & Recorders", "id": 1395}], "name": "Video Players & Recorders", "id": 492}], "name": "TV & Video Equipment", "id": 229}], "name": "Consumer Electronics", "id": 78}, {"children": [{"name": "Consumer Advocacy & Protection", "id": 97}, {"name": "Coupons & Discount Offers", "id": 365}, {"children": [{"name": "Loyalty Cards & Programs", "id": 1309}, {"name": "Technical Support", "id": 567}, {"name": "Warranties & Service Contracts", "id": 451}], "name": "Customer Services", "id": 450}, {"children": [{"name": "Price Comparisons", "id": 352}, {"name": "Vehicle Specs, Reviews & Comparisons", "id": 1267}], "name": "Product Reviews & Price Comparisons", "id": 353}], "name": "Consumer Resources", "id": 69}, {"children": [{"name": "Book Retailers", "id": 355}, {"name": "CD & Audio Shopping", "id": 217}, {"children": [{"name": "DVD & Video Rentals", "id": 1145}], "name": "DVD & Video Shopping", "id": 210}, {"children": [{"name": "DVD & Video Rentals", "id": 1145}], "name": "Entertainment Media Rentals", "id": 1144}, {"name": "Video Game Retailers", "id": 1146}], "name": "Entertainment Media", "id": 1143}, {"children": [{"name": "Cards & Greetings", "id": 100}, {"name": "Flowers", "id": 323}, {"name": "Gifts", "id": 99}, {"name": "Party & Holiday Supplies", "id": 324}], "name": "Gifts & Special Event Items", "id": 70}, {"name": "Luxury Goods", "id": 696}, {"name": "Mass Merchants & Department Stores", "id": 73}, {"children": [{"name": "Stock Photography", "id": 574}], "name": "Photo & Video Services", "id": 576}, {"name": "Shopping Portals & Search Engines", "id": 531}, {"children": [{"name": "Bicycles & Accessories", "id": 1191}, {"name": "Sports Memorabilia", "id": 1083}], "name": "Sporting Goods", "id": 263}, {"name": "Swap Meets & Outdoor Markets", "id": 1210}, {"name": "Ticket Sales", "id": 614}, {"name": "Tobacco Products", "id": 123}, {"name": "Toys", "id": 432}, {"name": "Wholesalers & Liquidators", "id": 1225}], "name": "Shopping", "id": 18}, {"children": [{"name": "College Sports", "id": 1073}, {"children": [{"name": "Boxing", "id": 515}, {"name": "Martial Arts", "id": 516}, {"name": "Wrestling", "id": 512}], "name": "Combat Sports", "id": 514}, {"children": [{"name": "Drag & Street Racing", "id": 1206}, {"name": "Stunts & Dangerous Feats", "id": 1207}], "name": "Extreme Sports", "id": 554}, {"name": "Fantasy Sports", "id": 998}, {"children": [{"name": "Bowling", "id": 1016}, {"children": [{"name": "Bicycles & Accessories", "id": 1191}], "name": "Cycling", "id": 458}, {"name": "Golf", "id": 261}, {"name": "Gymnastics", "id": 519}, {"children": [{"name": "Tennis", "id": 1376}], "name": "Racquet Sports", "id": 262}, {"name": "Running & Walking", "id": 541}, {"name": "Skate Sports", "id": 1126}, {"name": "Track & Field", "id": 518}], "name": "Individual Sports", "id": 1000}, {"name": "Live Sporting Events", "id": 1273}, {"children": [{"name": "Drag & Street Racing", "id": 1206}], "name": "Motor Sports", "id": 180}, {"children": [{"name": "Bicycles & Accessories", "id": 1191}, {"name": "Sports Memorabilia", "id": 1083}], "name": "Sporting Goods", "id": 263}, {"name": "Sports Coaching & Training", "id": 1082}, {"name": "Sports News", "id": 1077}, {"children": [{"name": "American Football", "id": 258}, {"name": "Baseball", "id": 259}, {"name": "Basketball", "id": 264}, {"name": "Cheerleading", "id": 534}, {"name": "Cricket", "id": 296}, {"name": "Handball", "id": 1017}, {"name": "Hockey", "id": 260}, {"name": "Rugby", "id": 517}, {"name": "Soccer", "id": 294}, {"name": "Volleyball", "id": 699}], "name": "Team Sports", "id": 1001}, {"name": "Water Sports", "id": 118}, {"children": [{"name": "Ice Skating", "id": 1149}, {"name": "Skiing & Snowboarding", "id": 1148}], "name": "Winter Sports", "id": 265}, {"children": [{"name": "Olympics", "id": 513}], "name": "World Sports Competitions", "id": 1198}], "name": "Sports", "id": 20}, {"children": [{"children": [{"name": "Airport Parking & Transportation", "id": 1245}, {"children": [{"name": "Personal Aircraft", "id": 1147}], "name": "Recreational Aviation", "id": 999}], "name": "Air Travel", "id": 203}, {"name": "Bus & Rail", "id": 708}, {"name": "Car Rental & Taxi Services", "id": 205}, {"name": "Carpooling & Ridesharing", "id": 1339}, {"name": "Cruises & Charters", "id": 206}, {"name": "Hotels & Accommodations", "id": 179}, {"name": "Luggage & Travel Accessories", "id": 1003}, {"children": [{"name": "Adventure Travel", "id": 707}, {"name": "Agritourism", "id": 1389}, {"name": "Ecotourism", "id": 1005}, {"name": "Sightseeing Tours", "id": 1390}, {"name": "Vineyards & Wine Tourism", "id": 1391}], "name": "Specialty Travel", "id": 1004}, {"children": [{"name": "Beaches & Islands", "id": 1074}, {"name": "Historical Sites & Buildings", "id": 1006}, {"name": "Lakes & Rivers", "id": 1120}, {"name": "Mountain & Ski Resorts", "id": 1119}, {"name": "Regional Parks & Gardens", "id": 1007}, {"name": "Theme Parks", "id": 1008}, {"name": "Zoos-Aquariums-Preserves", "id": 1009}], "name": "Tourist Destinations", "id": 208}, {"children": [{"name": "Tourist Boards & Visitor Centers", "id": 1392}, {"name": "Vacation Offers", "id": 1019}], "name": "Travel Agencies & Services", "id": 1010}, {"name": "Travel Guides & Travelogues", "id": 1011}], "name": "Travel", "id": 67}], "name": "All categories", "id": 0} -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | T-Shirt Niche Finder 13 | 14 | 134 | 135 | 136 |

GPT T-Shirt Niche Finder

137 |
138 | 139 | 140 | 141 |
142 | {% if openai_api_key %} 143 | 144 | 145 | 146 | 147 | {% endif %} 148 | {% if local_model_file %} 149 | 150 | 151 | {% endif %} 152 |
153 | 154 | 160 | 161 | 166 | 167 |
168 | 169 | {% if ideas_list is not none %} 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | {% for niche_dict in ideas_list %} 181 | {% for idea in niche_dict['ideas'] %} 182 | 183 | 184 | 185 | 186 | 187 | 188 | {% endfor %} 189 | {% endfor %} 190 | 191 |
NicheSloganSDPROMPTScore
{{ niche_dict['niche'] }}{{ idea['slogan'] }}{{ idea['sdprompt'] }}{{ idea['score'] }}
192 | 193 | {% endif %} 194 | {% if growing_trends %} 195 |

Growing T-Shirt Trends

196 |
    197 | {% for trend in growing_trends %} 198 |
  • {{ trend }}
  • 199 | {% endfor %} 200 |
201 | {% endif %} 202 | 203 | 204 | 205 | -------------------------------------------------------------------------------- /tshirt_trends.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | from pytrends.request import TrendReq 3 | from pytrends.exceptions import TooManyRequestsError 4 | import random 5 | import time 6 | import numpy as np 7 | from sklearn.linear_model import LinearRegression 8 | from openai_api import IdeaGenerator 9 | from config import MML_MODEL_FILE, PROMPT_FILE, OPENAI_API_KEY 10 | 11 | # Function to fetch Google Trends data 12 | def get_trends_data(keywords, category, timeframe='today 12-m', region='US'): 13 | pytrends = TrendReq(hl='en-GB', tz=360) 14 | backoff_time = 5 15 | 16 | while True: 17 | try: 18 | print(f"Fetching trends data for keywords: {keywords}, category: {category}, timeframe: {timeframe}, region: {region}") 19 | pytrends.build_payload(keywords, cat=category, timeframe=timeframe, geo=region, gprop='froogle') 20 | data = pytrends.interest_over_time() 21 | 22 | # Get related queries 23 | print("Fetching related queries...") 24 | related_queries = pytrends.related_queries() 25 | related_queries_list = [] 26 | 27 | for keyword, related_data in related_queries.items(): 28 | top_related = related_data['top'] 29 | if top_related is not None: 30 | related_queries_list.extend(list(top_related['query'])) 31 | print(f"Related queries: {related_queries_list}") 32 | 33 | # Get suggestions for related queries 34 | print("Fetching suggestions for related queries...") 35 | niches = [f"{keyword}:{pytrends.suggestions(keyword)[0]['type']}" if pytrends.suggestions(keyword) else f"{keyword}:" for keyword in related_queries_list] 36 | niches += [''] * (2 - len(niches)) 37 | print(f"Suggestions for related queries: {niches}") 38 | 39 | # Combine the original data with the data for the related queries 40 | print("Combining the original data with the data for the related queries...") 41 | related_data = pd.DataFrame(columns=related_queries_list, index=data.index) 42 | for keyword in related_queries_list: 43 | related_data[keyword] = pytrends.get_historical_interest([keyword], year_start=2022, month_start=1, day_start=1, hour_start=0, year_end=2022, month_end=2, day_end=1, hour_end=0, cat=category, geo=region, gprop='', sleep=0)[keyword] 44 | combined_data = pd.concat([data, related_data], axis=1) 45 | print("Combined data ready.") 46 | 47 | # Return the data 48 | return combined_data 49 | except TooManyRequestsError: 50 | delay = random.uniform(backoff_time, backoff_time * 1.5) 51 | print(f"Too many requests, waiting for {delay} seconds before retrying...") 52 | time.sleep(delay) 53 | backoff_time *= 1.5 54 | except Exception as e: 55 | print(f"An unexpected error occurred: {e}") 56 | print("Retrying...") 57 | backoff_time *= 1.5 58 | 59 | def filter_niches(trends_data, n=3): 60 | print(f"Filtering niches from trends data with n={n}...") 61 | 62 | niche_means = trends_data.mean().to_dict() 63 | niche_means.pop('isPartial', None) 64 | print(f"Calculated means for niches: {niche_means}") 65 | 66 | category_means = {} 67 | for niche in niche_means: 68 | category = niche.split(':')[0] 69 | if category in category_means: 70 | category_means[category].append(niche_means[niche]) 71 | else: 72 | category_means[category] = [niche_means[niche]] 73 | 74 | category_means = {k: sum(v)/len(v) for k, v in category_means.items()} 75 | print(f"Calculated means for categories: {category_means}") 76 | 77 | niche_trends = {niche: get_trend_slope(trends_data[niche]) for niche in niche_means} 78 | print(f"Calculated trends for niches: {niche_trends}") 79 | 80 | sorted_categories = sorted(category_means.keys(), key=lambda x: category_means[x], reverse=True) 81 | print(f"Sorted categories: {sorted_categories}") 82 | 83 | top_niches = [] 84 | for category in sorted_categories: 85 | category_niches = [niche for niche in niche_means if niche.split(':')[0] == category] 86 | sorted_niches = sorted(category_niches, key=lambda x: niche_means[x], reverse=True) 87 | top_niches += sorted_niches[:n] 88 | print(f"Top {n} niches for category {category}: {sorted_niches[:n]}") 89 | 90 | filtered_data = trends_data[top_niches] 91 | print("Filtering completed.") 92 | return filtered_data 93 | 94 | def get_growth_rate(series, window=5): 95 | print(f"Calculating growth rate for series: {series.name} with window={window}") 96 | 97 | epsilon = 1e-10 98 | shifted = series.shift(periods=window).replace(0, epsilon) 99 | print(f"Shifted series: {shifted}") 100 | 101 | growth_rate = series / shifted - 1 102 | print(f"Calculated growth rate: {growth_rate}") 103 | 104 | final_growth_rate = growth_rate.iloc[-1] 105 | print(f"Final growth rate: {final_growth_rate}") 106 | 107 | return final_growth_rate 108 | 109 | def is_significantly_growing(series, threshold_std=1): 110 | print(f"Checking if series: {series.name} is significantly growing with threshold_std={threshold_std}") 111 | 112 | growth_rates = series.pct_change().dropna() 113 | print(f"Calculated growth rates: {growth_rates}") 114 | 115 | threshold = growth_rates.mean() + threshold_std * growth_rates.std() 116 | print(f"Calculated threshold: {threshold}") 117 | 118 | final_growth_rate = get_growth_rate(series) 119 | print(f"Final growth rate: {final_growth_rate}") 120 | 121 | is_growing = final_growth_rate > threshold 122 | print(f"Is the series significantly growing?: {is_growing}") 123 | 124 | return is_growing 125 | 126 | def get_niche_score(niche, trends_data): 127 | print(f"Calculating niche score for: {niche}") 128 | 129 | total_interest = trends_data[niche].sum() 130 | print(f"Total interest for {niche}: {total_interest}") 131 | 132 | recent_growth = get_growth_rate(trends_data[niche]) 133 | print(f"Recent growth for {niche}: {recent_growth}") 134 | 135 | trend_slope = get_trend_slope(trends_data[niche]) 136 | print(f"Trend slope for {niche}: {trend_slope}") 137 | 138 | niche_score = total_interest + recent_growth + trend_slope 139 | print(f"Niche score for {niche}: {niche_score}") 140 | 141 | return niche_score 142 | 143 | def get_top_niches(trends_data, n=3): 144 | print("Calculating top niches...") 145 | 146 | niche_scores = {niche: get_niche_score(niche, trends_data) for niche in trends_data.columns} 147 | print(f"Niche scores: {niche_scores}") 148 | 149 | sorted_niches = sorted(niche_scores, key=niche_scores.get, reverse=True) 150 | print(f"Sorted niches: {sorted_niches}") 151 | 152 | top_niches = sorted_niches[:n] 153 | print(f"Top {n} niches: {top_niches}") 154 | 155 | return top_niches 156 | 157 | def get_growing_trends(trends_data, threshold=1.1): 158 | print("Identifying growing trends...") 159 | growing_trends = [] 160 | for column in trends_data.columns: 161 | trend_values = trends_data[column].values 162 | with np.errstate(invalid='ignore'): 163 | is_growing = (len(trend_values) > 1 and not (np.isnan(trend_values[-1]) or np.isnan(trend_values[-2])) and trend_values[-2] != 0 and trend_values[-1] / trend_values[-2] >= threshold) 164 | 165 | if is_growing: 166 | growing_trends.append(column) 167 | print(f"Growing trend found: {column}") 168 | 169 | print(f"Total growing trends identified: {len(growing_trends)}") 170 | return growing_trends 171 | 172 | def get_trend_slope(series): 173 | y = series.values.reshape(-1, 1) 174 | X = np.array(range(len(series))).reshape(-1, 1) 175 | model = LinearRegression() 176 | model.fit(X, y) 177 | slope = model.coef_[0][0] 178 | print(f"Series: {series.name}, Slope: {slope}") 179 | return slope 180 | 181 | # Instantiate IdeaGenerator with your paths 182 | idea_gen = IdeaGenerator(OPENAI_API_KEY, MML_MODEL_FILE, PROMPT_FILE) 183 | def main(niches, category, region=None, model_choice='gpt-4', timeframe='today 12-m'): 184 | print(f"Starting main function with niches: {niches}, category: {category}, region: {region}, model_choice: {model_choice}") 185 | 186 | # Fetch Google Trends data for the niches and category 187 | print("Fetching Google Trends data...") 188 | trends_data = get_trends_data(niches, category=category, region=region, timeframe=timeframe) 189 | 190 | # Get growing trends 191 | print("Getting growing trends...") 192 | growing_trends = get_growing_trends(trends_data) 193 | 194 | # Get top 3 trending niches 195 | print("Getting top 3 trending niches...") 196 | top_niches = get_top_niches(trends_data) 197 | 198 | # Filter out only the most profitable and least competitive niches 199 | print("Filtering niches...") 200 | filtered_trends_data = filter_niches(trends_data) 201 | 202 | # Get top niches from filtered data 203 | print("Getting top niches from filtered data...") 204 | top_filtered_niches = get_top_niches(filtered_trends_data) 205 | 206 | # Initialize ideas_list 207 | ideas_list = [] 208 | 209 | # Generating creative t-shirt ideas 210 | for niche in niches: 211 | if ":" in niche: 212 | niche_name = niche.split(':')[1] 213 | else: 214 | niche_name = niche 215 | 216 | print(f"Generating creative t-shirt ideas for niche: {niche_name}") 217 | 218 | # generate ideas 219 | ideas = idea_gen.generate_ideas(niche_name, category, trends_data, model=model_choice, n=10) 220 | 221 | ideas_list.append({"niche": niche_name, "ideas": ideas}) 222 | 223 | # Convert filtered trends data to a list of dictionaries 224 | filtered_trends_list = filtered_trends_data.reset_index().rename(columns={"date": "Date"}).to_dict(orient="records") 225 | 226 | print("Preparing result...") 227 | if niches: 228 | return {"ideas_list": ideas_list, "trends_data": filtered_trends_list, "growing_trends": growing_trends} 229 | else: 230 | return {"ideas_list": [], "trends_data": [], "growing_trends": []} 231 | 232 | -------------------------------------------------------------------------------- /utils.py: -------------------------------------------------------------------------------- 1 | def get_regions(): 2 | regions = [] 3 | try: 4 | with open('regions.txt', 'r') as file: 5 | lines = file.readlines() 6 | regions = [line.strip().split(', ') for line in lines] 7 | print(f"Regions: {regions}") 8 | except FileNotFoundError: 9 | print("FileNotFoundError: The 'regions.txt' file was not found.") 10 | except Exception as e: 11 | print(f"Error reading 'regions.txt': {e}") 12 | return regions --------------------------------------------------------------------------------