# import os

# from pathlib import Path

# from benedict import benedict
# from rich.pretty import pprint

# from ansible_runner import Runner, RunnerConfig

# GLOBAL_CACHE = {}


# def run_playbook(playbook_path, data_dir, quiet=False, **kwargs):
#     ANSIBLE_TMP_DIR = str(Path(data_dir) / "tmp" / "ansible")
#     os.environ['ANSIBLE_INVENTORY_UNPARSED_WARNING'] = 'False'
#     os.environ['ANSIBLE_LOCALHOST_WARNING'] = 'False'
#     os.environ["ANSIBLE_HOME"] = ANSIBLE_TMP_DIR
#     # os.environ["ANSIBLE_COLLECTIONS_PATH"] = str(Path(data_dir).parent / 'archivebox')
#     os.environ["ANSIBLE_ROLES_PATH"] = (
#         './roles'
#     )
    
#     rc = RunnerConfig(
#         private_data_dir=ANSIBLE_TMP_DIR,
#         playbook=str(playbook_path),
#         rotate_artifacts=50000,
#         host_pattern="localhost",
#         extravars={
#             "DATA_DIR": str(data_dir),
#             **kwargs,
#         },
#         quiet=quiet,
#     )
#     rc.prepare()
#     r = Runner(config=rc)
#     r.set_fact_cache('localhost', GLOBAL_CACHE)
#     r.run()
#     last_run_facts = r.get_fact_cache('localhost')
#     GLOBAL_CACHE.update(filtered_facts(last_run_facts))
#     return benedict({
#         key: val
#         for key, val in last_run_facts.items()
#         if not (key.startswith('ansible_') or key in ('gather_subset', 'module_setup'))
#     })

# def filtered_facts(facts):
#     return benedict({
#         key: val
#         for key, val in facts.items()
#         if not (key.startswith('ansible_') or key in ('gather_subset', 'module_setup'))
#     })

# def print_globals():
#     pprint(filtered_facts(GLOBAL_CACHE), expand_all=True)



# # YTDLP_OUTPUT = run_playbook('extract.yml', {'url': 'https://www.youtube.com/watch?v=cK4REjqGc9w&t=27s'})
# # pprint(YTDLP_OUTPUT)