# (label, avatar_id, avatar_type, supported engines)
HEYGEN_AVATAR_LOOKS: list[tuple[str, str, str, tuple[str, ...]]] = [
    (
        "Annie Lounge Standing Side",
        "Annie_Lounge_Standing_Side_public",
        "studio_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Yara Modern Lecture Hall",
        "fd6814ecc5e143cd899e615a80eaa2dc",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Brandon Business Sitting Front",
        "Brandon_Business_Sitting_Front_public",
        "studio_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Caroline Business Sitting Side",
        "Caroline_Business_Sitting_Side_public",
        "studio_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Ursula Lawyer Angle 4",
        "f7173d2bb8584c00bfec6905c5e9a492",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Sofia Corporate Presenter 01 Angle 3",
        "fe563971fd2d438e957372dac9e2be8c",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Seoyeon Health Nutrition Coach Angle 3",
        "fe3c5d5028d941398d064b8fc64a2dea",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Sanne Fitness Coach Angle 4",
        "d967f935a8bf4a0c8f0bccfd66c501d2",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    ("Sander", "f5cd7b94056f495ca0610602d64a9aa3", "photo_avatar", ("avatar_v", "avatar_iv", "avatar_iii")),
    (
        "Rupert Personal Development Coach Angle 4",
        "f57b3e626adb4bc997b38f64884adce4",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Olivier Professor Angle 2",
        "f6659bbb094b459c87c967edbb9ee481",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Obi Health Nutrition Coach Angle 5",
        "f3dc2c38201d414382f506d2d8e8d029",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Matilda Modern Office Setting",
        "fda889ac354a440da8dbecc410981273",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Mateo Traditional Law Office",
        "ff172d6c499c4e47ba6fcc5de631e9fc",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Marlon Inviting Armchair Setting",
        "f5a57db099ab462daa3e7c604a05dacc",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Margaret Professor Angle 1",
        "fb472bc29ab04bcca576e3703978fecb",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Marek Therapy Coach Angle 3",
        "e197768703f1463a93dc25ada1f421fb",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Maeve Warm, Professional Setting",
        "faf66681d8cc48dc82c4283200b3e782",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    (
        "Lorenzo Professor Angle 5",
        "fc268dc244bb40d7a554663ce723dcf0",
        "photo_avatar",
        ("avatar_v", "avatar_iv", "avatar_iii"),
    ),
    ("Luca", "Luca_public", "studio_avatar", ("avatar_iii",)),
    ("Bruce", "Bruce_public", "studio_avatar", ("avatar_iii",)),
    ("Nico", "Nico_public", "studio_avatar", ("avatar_iii",)),
    ("Lisa", "Lisa_public", "studio_avatar", ("avatar_iii",)),
    ("Sophie", "Sophie_public", "studio_avatar", ("avatar_iii",)),
    ("Aiko", "Aiko_public", "studio_avatar", ("avatar_iii",)),
    ("Rebecca (portrait)", "Rebecca_public", "studio_avatar", ("avatar_iii",)),
    ("Daphne in Grey blazer (portrait)", "Daphne_public_1", "studio_avatar", ("avatar_iii",)),
    ("Bryce in Black t-shirt", "Bryce_public_5", "studio_avatar", ("avatar_iii",)),
    ("Diora in White shirt", "Diora_public_3", "studio_avatar", ("avatar_iii",)),
    ("Freja in White blazer", "Freja_public_1", "studio_avatar", ("avatar_iii",)),
    ("Albert in Blue blazer", "Albert_public_2", "studio_avatar", ("avatar_iii",)),
    ("Emery in Red blazer", "Emery_public_1", "studio_avatar", ("avatar_iii",)),
    ("Minho in Blue shirt", "Minho_public_6", "studio_avatar", ("avatar_iii",)),
    ("Aditya in Brown blazer", "Aditya_public_4", "studio_avatar", ("avatar_iii",)),
    ("Nadim in Blue blazer", "Nadim_public_1", "studio_avatar", ("avatar_iii",)),
    ("Iker in Black blazer", "Iker_public_1", "studio_avatar", ("avatar_iii",)),
    ("Nour in Black blazer", "Nour_public_1", "studio_avatar", ("avatar_iii",)),
    ("Saskia in Blue blazer", "Saskia_public_1", "studio_avatar", ("avatar_iii",)),
    ("Lucien in Blue blazer", "Lucien_public_1", "studio_avatar", ("avatar_iii",)),
    ("Esmond in Blue suit", "Esmond_public_3", "studio_avatar", ("avatar_iii",)),
    ("Jinwoo in Blue suit", "Jinwoo_public_5", "studio_avatar", ("avatar_iii",)),
    ("Annelore in Red sweater (portrait)", "Annelore_public_3", "studio_avatar", ("avatar_iii",)),
    ("Bastien in Blue shirt", "Bastien_public_4", "studio_avatar", ("avatar_iii",)),
    ("Zosia in Khaki blazer", "Zosia_public_3", "studio_avatar", ("avatar_iii",)),
    ("Tahlia in Dark blue suit", "Tahlia_public_4", "studio_avatar", ("avatar_iii",)),
]
HEYGEN_AVATAR_OPTIONS = [x[0] for x in HEYGEN_AVATAR_LOOKS]
HEYGEN_AVATAR_MAP = {x[0]: (x[1], x[2], x[3]) for x in HEYGEN_AVATAR_LOOKS}

# (label, voice_id) — Starfish-compatible voices for the TTS endpoint
HEYGEN_VOICE_TTS: list[tuple[str, str]] = [
    ("Chill Brian (English, male)", "d2f4f24783d04e22ab49ee8fdc3715e0"),
    ("Zain (English, female)", "0047732240584155b1588455313e78ec"),
    ("Narrator Mateo - Excited 🤩 (Spanish, male)", "0077225a877e457db4572ccaf245910b"),
    ("Aria (English, female)", "007e1378fc454a9f976db570ba6164a7"),
    ("Caryns (English, female)", "0082e70326864107823605db0d77f5e0"),
    ("Klara (English, female)", "01209fdcd1c24a109c86dc24ee0f71c0"),
    ("Bold Kasia - Excited 🤩 (Polish, female)", "015482a78b9a46ebae74bd0beb17765b"),
    ("Shaun (English, male)", "01c42cddcfdc4665a57b8d89cba8ffc1"),
    ("Senthil (English, male)", "01d674cfd32b4728a3fddd21b7e7d543"),
    ("Cody (English, male)", "01f98ed43e6140349f47dbd37a416827"),
    ("Saffron (English, female)", "0258bbc2cd8648cfa357adfb833f6d7b"),
    ("Blanka - Lifelike (English, female)", "02880d1c6fd94b7799d91135581ed810"),
    ("Rami (English, male)", "02d5366a90af4c7a87157808ff352e33"),
    ("Rhodes (English, female)", "02dce0a169b3460084b6c914d18fb2c8"),
    ("Michelle - Voice 1 (English, female)", "02X8sHnuxFpsq1caYWN0"),
    ("Autumn - UGC 3 (English, female)", "03dca9ebfca441dba55fb14afa0791b7"),
    ("Reassuring Rupert (English, male)", "03fcf8ecb0a94b6b94e9007edb7c35f8"),
    ("Rose - UGC -2  (English, female)", "0495e14c2bd74eb3aeeef03583e0bce5"),
    ("Derya - Lifelike - Broadcaster 🎙️ (English, female)", "04d0ae1d0af2489ca7d3bb402a39a890"),
    ("Dynamic Derek (English, male)", "0516c2d857eb425c94e90b068241914e"),
    ("Lotte (English, female)", "052fcfb83d1a4c2f8d0368c226fea4b9"),
    ("Thanos - Broadcaster 🎙️ (English, male)", "054af44a167344d0af2722fdfef08d17"),
    ("Marcia (English, female)", "05f19352e8f74b0392a8f411eba40de1"),
    ("Camden (English, male)", "06468055edd4458aa131a1dfd813c1e9"),
    ("Rumi (English, female)", "06672207805f41a9ad0af6797f8aa14b"),
    ("Pippa (English, female)", "06b68c4dbb544935b9af984e80efa4fb"),
    ("William Prescott - Broadcaster 🎙️ (English, male)", "06c816b952f14fa9b3a6c42aa151f731"),
    ("Sammy (English, female)", "06e6facd99654b9dbb9308f67bf3a31c"),
    ("Breezy Bagus (Indonesian, male)", "06e81a5d7c8b41818d3f0b38f7cf15a1"),
    ("Ben (English, male)", "07ca39b243184dbcb82e7e0f0e524b21"),
    ("Smooth Dev (English, male)", "07d2ba65847541feb97abc9b60181555"),
    ("Daran inside booth (English, male)", "080d9383c0314056aef392892e009806"),
    ("Peppy Stella (English, female)", "084760b4922a44599575c770070ec2d7"),
    ("Silas (English, male)", "08f561403ec846dbbd8c691cc448f45a"),
    ("Aditya (English, male)", "09c3d65e44e247dd8b78a97a903feb58"),
    ("Christy (English, female)", "09d88c036bf449fa905900c08b235a37"),
    ("Elio (English, male)", "0a0b38624ac64ec6afcd5842a977ca10"),
    ("Luminous Laksh (Hindi, male)", "0adc547b76a5401c856274c379904eb7"),
    ("Jeff (English, male)", "0add542e349f4ccaba6ecb3b7ced6034"),
    ("Tahlia Brooks - Excited 🤩 (English, female)", "0b440d1ac2454d69a73302fc806522b1"),
    ("Riya Mehta (Hindi, female)", "0b464b2f4e2249a4b5a05e60eaf41e7e"),
    ("Ben Hart (English, male)", "0b47b5a637e944f9bfd49913999b344b"),
    ("Skylar (English, female)", "0bbfbda5aa924a68a9d1da7b8496052a"),
    ("Relaxed Reece (English, male)", "0c2151d538844c70a8b096de533f2828"),
    ("Daniel (English, male)", "0c23804af39a4946ac6fda42bfff2738"),
    ("Melani (English, female)", "0c54c6399ad64551a304e1a346677723"),
    ("Clover (English, female)", "0ccb0bea067d4449ad367baeed7ea2e9"),
    ("Pedro Lima - Serious 😐 (Portuguese, male)", "0d0e23e8170446e38b18a7380b2d30a8"),
    ("Ana Carvalho (Portuguese, female)", "0d23c5b2f6004e909802a2e8bfcd52c2"),
    ("Confident Connor - Excited 🤩 (English, male)", "0dd34c3eb79247238219eea35aeb58cd"),
    ("Vibrant Victor (Spanish, male)", "1062976ea8bf42f4adc27c7e868b8fde"),
    ("Young Olivier (French, male)", "1c5dc9a8f8cf4de0932f91d75f43a15d"),
    ("Émile Noir (French, male)", "25a6a67280574d3da78e97b1935ebfc7"),
    ("Steadfast Stefan (German, male)", "0eb85e6e8710473b82f7e88609ba3053"),
    ("Deep Dieter (German, male)", "118949676b0a46629d1ad52981c3ef84"),
    ("Serene Marco (Italian, male)", "72e922488a614041b5ab5f6ee07e3deb"),
    ("Murmuring Matteo (Italian, male)", "755902b751654f30a6ef49e8bbcacfec"),
    ("Gail in car (Multilingual, female)", "0214ac51f93e420f8711d568dcfbc50e"),
    ("Daran outside walking (Multilingual, male)", "0ac81e725f4948dfa9638ceca216bcfa"),
    ("BOB - Voice 1 (Chinese, unknown)", "dMkR1XwIkarpNqWUJLnX"),
    ("Hakeem Hassan (Arabic, male)", "61a4359785664d01a59664ceb87ce6d4"),
    ("Rami Idris (Arabic, male)", "a0bd2e5d41a74643be47ac75ca9171a2"),
    ("Bold Kasia - Friendly 😊 (Polish, female)", "331624aec8b24a6c9287b8e16bdf54e8"),
    ("Tranquil Tulin (Turkish, female)", "61646c861eb64e2d9036d8db51385356"),
    ("Dynamic Derya (Turkish, female)", "664b73058b784aa89ddb2924c141d441"),
    ("Quiet Dewa (Indonesian, male)", "1fa1193cf1d74f27ba58531c07ef9862"),
    ("Cuong (Vietnamese, male)", "8af68d7ea38f4e7ca05cf46c3f7a590b"),
]
HEYGEN_VOICE_TTS_OPTIONS = [x[0] for x in HEYGEN_VOICE_TTS]
HEYGEN_VOICE_TTS_MAP = dict(HEYGEN_VOICE_TTS)

# (label, voice_id) — top-ranked voices for video narration (any engine)
HEYGEN_VOICE_GENERAL: list[tuple[str, str]] = [
    ("Cassidy (English, female)", "16a09e4706f74997ba4ed05ea11470f6"),
    ("Hope (English, female)", "42d00d4aac5441279d8536cd6b52c53c"),
    ("Archer (English, male)", "453c20e1525a429080e2ad9e4b26f2cd"),
    ("Brittney (English, female)", "4754e1ec667544b0bd18cdf4bec7d6a7"),
    ("Mark (English, male)", "5d8c378ba8c3434586081a52ac368738"),
    ("Andrew (English, male)", "6be73833ef9a4eb0aeee399b8fe9d62b"),
    ("Spuds Oxley (English, male)", "76940a9adcd0490a9ce2cfe9a64a2664"),
    ("Patrick (English, male)", "7e157ec62c9c45f1adca12faae72c86f"),
    ("David Castlemore (English, male)", "828b59f834fd4c7188da322b6d9b6c75"),
    ("Michael C (English, male)", "8661cd40d6c44c709e2d0031c0186ada"),
    ("Adam Stone (English, male)", "88bb9ee1c81b466eb2a08fdde86d3619"),
    ("Alex (English, male)", "897d6a9b2c844f56aa077238768fe10a"),
    ("Monika Sogam (English, female)", "97dd67ab8ce242b6a9e7689cb00c6414"),
    ("Jessica Anne Bogart (English, female)", "b966c31caf124c2a99f19ff1479c964f"),
    ("John Doe (English, male)", "c4a8ceb7a2954500bc047fb092bcff3f"),
    ("Ivy (English, female)", "cef3bc4e0a84424cafcde6f2cf466c97"),
    ("Chill Brian (English, male)", "d2f4f24783d04e22ab49ee8fdc3715e0"),
    ("Allison (English, female)", "f8c69e517f424cafaecde32dde57096b"),
    ("Mia Starset (Norwegian, female)", "000466f8ac6d47a49f5743d50b3778de"),
    ("William Shanks (Spanish, male)", "001248bb63f847888d37b766ee8b3a47"),
    ("Zain (English, female)", "0047732240584155b1588455313e78ec"),
    ("Jora Slobod (Romanian, male)", "00631519159a402ab5d8f719e51532bb"),
    ("Narrator Mateo - Excited 🤩 (Spanish, male)", "0077225a877e457db4572ccaf245910b"),
    ("Aria (English, female)", "007e1378fc454a9f976db570ba6164a7"),
    ("Caryns (English, female)", "0082e70326864107823605db0d77f5e0"),
    ("Klara (English, female)", "01209fdcd1c24a109c86dc24ee0f71c0"),
    ("Son Tran (Vietnamese, male)", "0132f85950a94d11ba180f885101bf84"),
    ("Bold Kasia - Excited 🤩 (Polish, female)", "015482a78b9a46ebae74bd0beb17765b"),
    ("Marc Aurèle (French, male)", "018a94cf15574491a0bab7f6799ac15b"),
    ("Shaun (English, male)", "01c42cddcfdc4665a57b8d89cba8ffc1"),
    ("Senthil (English, male)", "01d674cfd32b4728a3fddd21b7e7d543"),
    ("Cody (English, male)", "01f98ed43e6140349f47dbd37a416827"),
    ("Saffron (English, female)", "0258bbc2cd8648cfa357adfb833f6d7b"),
    ("Blanka - Lifelike (English, female)", "02880d1c6fd94b7799d91135581ed810"),
    ("Rami (English, male)", "02d5366a90af4c7a87157808ff352e33"),
    ("Rhodes (English, female)", "02dce0a169b3460084b6c914d18fb2c8"),
    ("Michelle - Voice 1 (English, female)", "02X8sHnuxFpsq1caYWN0"),
    ("Tuba (, female)", "034ca0c32b6542028748d6d365d90d6a"),
    ("Autumn - UGC 3 (English, female)", "03dca9ebfca441dba55fb14afa0791b7"),
    ("Reassuring Rupert (English, male)", "03fcf8ecb0a94b6b94e9007edb7c35f8"),
]
HEYGEN_VOICE_GENERAL_OPTIONS = [x[0] for x in HEYGEN_VOICE_GENERAL]
HEYGEN_VOICE_GENERAL_MAP = dict(HEYGEN_VOICE_GENERAL)

HEYGEN_TRANSLATE_LANGUAGES = [
    "English",
    "Spanish",
    "Spanish (Spain)",
    "Spanish (Mexico)",
    "French",
    "French (France)",
    "German",
    "German (Germany)",
    "Portuguese",
    "Portuguese (Brazil)",
    "Italian",
    "Italian (Italy)",
    "Japanese",
    "Japanese (Japan)",
    "Korean",
    "Chinese (Mandarin, Simplified)",
    "Arabic",
    "Hindi",
    "Hindi (India)",
    "Russian",
    "Russian (Russia)",
    "Dutch",
    "Polish",
    "Turkish",
    "Indonesian",
    "Vietnamese",
    "Ukrainian",
    "Afrikaans (South Africa)",
    "Albanian (Albania)",
    "Amharic (Ethiopia)",
    "Arabic (Algeria)",
    "Arabic (Bahrain)",
    "Arabic (Egypt)",
    "Arabic (Iraq)",
    "Arabic (Jordan)",
    "Arabic (Kuwait)",
    "Arabic (Lebanon)",
    "Arabic (Libya)",
    "Arabic (Morocco)",
    "Arabic (Oman)",
    "Arabic (Qatar)",
    "Arabic (Saudi Arabia)",
    "Arabic (Syria)",
    "Arabic (Tunisia)",
    "Arabic (United Arab Emirates)",
    "Arabic (World)",
    "Arabic (Yemen)",
    "Armenian (Armenia)",
    "Azerbaijani (Latin, Azerbaijan)",
    "Bangla (Bangladesh)",
    "Basque",
    "Belarusian (Belarus)",
    "Bengali (India)",
    "Bosnian (Bosnia and Herzegovina)",
    "Bulgarian",
    "Bulgarian (Bulgaria)",
    "Burmese (Myanmar)",
    "Catalan",
    "Chinese (Cantonese, Traditional)",
    "Chinese (Jilu Mandarin, Simplified)",
    "Chinese (Northeastern Mandarin, Simplified)",
    "Chinese (Southwestern Mandarin, Simplified)",
    "Chinese (Taiwanese Mandarin, Traditional)",
    "Chinese (Wu, Simplified)",
    "Chinese (Zhongyuan Mandarin Henan, Simplified)",
    "Chinese (Zhongyuan Mandarin Shaanxi, Simplified)",
    "Croatian",
    "Croatian (Croatia)",
    "Czech",
    "Czech (Czechia)",
    "Danish",
    "Danish (Denmark)",
    "Dutch (Belgium)",
    "Dutch (Netherlands)",
    "English (Australia)",
    "English (Canada)",
    "English (Hong Kong SAR)",
    "English (India)",
    "English (Ireland)",
    "English (Kenya)",
    "English (New Zealand)",
    "English (Nigeria)",
    "English (Philippines)",
    "English (Singapore)",
    "English (South Africa)",
    "English (Tanzania)",
    "English (UK)",
    "English (United States)",
    "Estonian (Estonia)",
    "Filipino",
    "Filipino (Cebuano)",
    "Filipino (Philippines)",
    "Finnish",
    "Finnish (Finland)",
    "French (Belgium)",
    "French (Canada)",
    "French (Switzerland)",
    "Galician",
    "Georgian (Georgia)",
    "German (Austria)",
    "German (Switzerland)",
    "Greek",
    "Greek (Greece)",
    "Gujarati (India)",
    "Haitian Creole (Haiti)",
    "Hebrew (Israel)",
    "Hungarian (Hungary)",
    "Icelandic (Iceland)",
    "Indonesian (Indonesia)",
    "Irish (Ireland)",
    "Javanese (Latin, Indonesia)",
    "Kannada (India)",
    "Kazakh (Kazakhstan)",
    "Khmer (Cambodia)",
    "Konkani (India)",
    "Korean (Korea)",
    "Lao (Laos)",
    "Latin (Vatican City)",
    "Latvian (Latvia)",
    "Lithuanian (Lithuania)",
    "Luxembourgish (Luxembourg)",
    "Macedonian (North Macedonia)",
    "Maithili (India)",
    "Malagasy (Madagascar)",
    "Malay",
    "Malay (Malaysia)",
    "Malayalam (India)",
    "Maltese (Malta)",
    "Mandarin",
    "Marathi (India)",
    "Mongolian (Mongolia)",
    "Nepali (Nepal)",
    "Norwegian Bokmål (Norway)",
    "Norwegian Nynorsk (Norway)",
    "Odia (India)",
    "Pashto (Afghanistan)",
    "Persian (Iran)",
    "Polish (Poland)",
    "Portuguese (Portugal)",
    "Punjabi (India)",
    "Romanian",
    "Romanian (Romania)",
    "Serbian (Latin, Serbia)",
    "Sindhi (India)",
    "Sinhala (Sri Lanka)",
    "Slovak",
    "Slovak (Slovakia)",
    "Slovenian (Slovenia)",
    "Somali (Somalia)",
    "Spanish (Argentina)",
    "Spanish (Bolivia)",
    "Spanish (Chile)",
    "Spanish (Colombia)",
    "Spanish (Costa Rica)",
    "Spanish (Cuba)",
    "Spanish (Dominican Republic)",
    "Spanish (Ecuador)",
    "Spanish (El Salvador)",
    "Spanish (Equatorial Guinea)",
    "Spanish (Guatemala)",
    "Spanish (Honduras)",
    "Spanish (Latin America)",
    "Spanish (Nicaragua)",
    "Spanish (Panama)",
    "Spanish (Paraguay)",
    "Spanish (Peru)",
    "Spanish (Puerto Rico)",
    "Spanish (United States)",
    "Spanish (Uruguay)",
    "Spanish (Venezuela)",
    "Sundanese (Indonesia)",
    "Swahili (Kenya)",
    "Swahili (Tanzania)",
    "Swedish",
    "Swedish (Sweden)",
    "Tamil",
    "Tamil (India)",
    "Tamil (Malaysia)",
    "Tamil (Singapore)",
    "Tamil (Sri Lanka)",
    "Telugu (India)",
    "Thai (Thailand)",
    "Turkish (Türkiye)",
    "Ukrainian (Ukraine)",
    "Urdu (India)",
    "Urdu (Pakistan)",
    "Uzbek (Latin, Uzbekistan)",
    "Vietnamese (Vietnam)",
    "Welsh (United Kingdom)",
    "Zulu (South Africa)",
]
