• 1
  • 23
  • 24
  • 25(current)
  • 26
  • 27
Advanced Kodi Launcher - Game and Emulators frontend for Kodi
(2024-12-07, 16:03)h3llrais3r Wrote: Anyone managed to set this up?
I've added AKL to a fresh install, installed addon and plugins, added source, but from the moment I start scraping it goes wrong.
Also tried adding default launcher to rom collection, this fails as well...
Any suggestion about which version to run on kodi 21?
I've ran both latest stable and beta and they both have issues.
Scraping is fixed with the latest stable version. If you are still having troubles please post a log file.
Reply
(2024-10-12, 23:51)zachmorris Wrote: I'm clearly doing something wrong as well. This addon is very confusing.

I've got a fresh Kodi install, with AKL installed, and all default plugins.
I've added a launcher, default named "App Launcher", Application set to "Directly Exectute the File Itself"
I've added a source, selected the exe i want to launch
I 'Edit Rom', and 'Add a new launcher' to the ROM. I select the one and only launcher i have configured "App Launcher", Set Launcher as the Default? Yes.
I try and launch the game, and get an error: No Launcher Configured.

It just seems that my launcher isn't being set. I've tried AKL from the Beta Repository and the Stable, and both have the same issue. I cannot associate a launcher with a source.

In addition, I've setup paths in the addon settings, I scrape the Game with any scraper and I get an error "Could not scrape".
The debug log shows:
xml:

2024-10-12 14:02:21.621 T:8936 info <general>: [script.akl.tgdbscraper] resources.lib.scraper: Applied embedded public API key
2024-10-12 14:02:21.621 T:8936 info <general>: [script.akl.tgdbscraper] akl.scrapers: Scraper cache dir set to: special://profile/addon_data/script.akl.tgdbscraper/cache/
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset fanart
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset banner
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset snap
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset clearlogo
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxfront
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxback
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset trailer
2024-10-12 14:02:28.487 T:8936 error <general>: [script.akl.tgdbscraper] akl.scrapers: Could not scrape "Spiritfarer"
Traceback (most recent call last):
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 373, in process_single_rom
self._process_ROM(rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 433, in _process_ROM
self._process_ROM_assets(rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 491, in _process_ROM_assets
asset_path = self._scrap_ROM_asset(asset_id, self.local_asset_list[asset_id], rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 790, in _scrap_ROM_asset
asset_path_noext_FN = asset_dir_FN + text.str_to_filename_str(rom.get_identifier())
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
2024-10-12 14:02:28.495 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Skipping store action. No ROM data provided.
This is due to the fact that the particular source/rom/game didnt have any asset directories configured. That issue is fixed in the latest stable release. You can now configure the asset directories for a standalone rom under the 'Edit assets/artwork' option in the context menu. If not configured it should fallback to the globally configured asset directories, available in the addon settings.
Reply
(2025-01-08, 10:54)chrisism Wrote:
(2024-10-12, 23:51)zachmorris Wrote: I'm clearly doing something wrong as well. This addon is very confusing.

I've got a fresh Kodi install, with AKL installed, and all default plugins.
I've added a launcher, default named "App Launcher", Application set to "Directly Exectute the File Itself"
I've added a source, selected the exe i want to launch
I 'Edit Rom', and 'Add a new launcher' to the ROM. I select the one and only launcher i have configured "App Launcher", Set Launcher as the Default? Yes.
I try and launch the game, and get an error: No Launcher Configured.

It just seems that my launcher isn't being set. I've tried AKL from the Beta Repository and the Stable, and both have the same issue. I cannot associate a launcher with a source.

In addition, I've setup paths in the addon settings, I scrape the Game with any scraper and I get an error "Could not scrape".
The debug log shows:
xml:

2024-10-12 14:02:21.621 T:8936 info <general>: [script.akl.tgdbscraper] resources.lib.scraper: Applied embedded public API key
2024-10-12 14:02:21.621 T:8936 info <general>: [script.akl.tgdbscraper] akl.scrapers: Scraper cache dir set to: special://profile/addon_data/script.akl.tgdbscraper/cache/
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset fanart
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset banner
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset snap
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset clearlogo
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxfront
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxback
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset trailer
2024-10-12 14:02:28.487 T:8936 error <general>: [script.akl.tgdbscraper] akl.scrapers: Could not scrape "Spiritfarer"
Traceback (most recent call last):
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 373, in process_single_rom
self._process_ROM(rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 433, in _process_ROM
self._process_ROM_assets(rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 491, in _process_ROM_assets
asset_path = self._scrap_ROM_asset(asset_id, self.local_asset_list[asset_id], rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 790, in _scrap_ROM_asset
asset_path_noext_FN = asset_dir_FN + text.str_to_filename_str(rom.get_identifier())
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
2024-10-12 14:02:28.495 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Skipping store action. No ROM data provided.
This is due to the fact that the particular source/rom/game didnt have any asset directories configured. That issue is fixed in the latest stable release. You can now configure the asset directories for a standalone rom under the 'Edit assets/artwork' option in the context menu. If not configured it should fallback to the globally configured asset directories, available in the addon settings.

Thank you. The game launches now, although assets and metadata as you said aren't downloading. The settings for the game show asset directories, but when scraping for artwork, none of them seem to work.
Reply
(2025-01-09, 02:32)zachmorris Wrote:
(2025-01-08, 10:54)chrisism Wrote:
(2024-10-12, 23:51)zachmorris Wrote: I'm clearly doing something wrong as well. This addon is very confusing.

I've got a fresh Kodi install, with AKL installed, and all default plugins.
I've added a launcher, default named "App Launcher", Application set to "Directly Exectute the File Itself"
I've added a source, selected the exe i want to launch
I 'Edit Rom', and 'Add a new launcher' to the ROM. I select the one and only launcher i have configured "App Launcher", Set Launcher as the Default? Yes.
I try and launch the game, and get an error: No Launcher Configured.

It just seems that my launcher isn't being set. I've tried AKL from the Beta Repository and the Stable, and both have the same issue. I cannot associate a launcher with a source.

In addition, I've setup paths in the addon settings, I scrape the Game with any scraper and I get an error "Could not scrape".
The debug log shows:
xml:

2024-10-12 14:02:21.621 T:8936 info <general>: [script.akl.tgdbscraper] resources.lib.scraper: Applied embedded public API key
2024-10-12 14:02:21.621 T:8936 info <general>: [script.akl.tgdbscraper] akl.scrapers: Scraper cache dir set to: special://profile/addon_data/script.akl.tgdbscraper/cache/
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset fanart
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset banner
2024-10-12 14:02:21.631 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset snap
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset clearlogo
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxfront
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxback
2024-10-12 14:02:21.632 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset trailer
2024-10-12 14:02:28.487 T:8936 error <general>: [script.akl.tgdbscraper] akl.scrapers: Could not scrape "Spiritfarer"
Traceback (most recent call last):
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 373, in process_single_rom
self._process_ROM(rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 433, in _process_ROM
self._process_ROM_assets(rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 491, in _process_ROM_assets
asset_path = self._scrap_ROM_asset(asset_id, self.local_asset_list[asset_id], rom)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\script.module.akl\lib\akl\scrapers.py", line 790, in _scrap_ROM_asset
asset_path_noext_FN = asset_dir_FN + text.str_to_filename_str(rom.get_identifier())
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
2024-10-12 14:02:28.495 T:8936 warning <general>: [script.akl.tgdbscraper] akl.scrapers: Skipping store action. No ROM data provided.
This is due to the fact that the particular source/rom/game didnt have any asset directories configured. That issue is fixed in the latest stable release. You can now configure the asset directories for a standalone rom under the 'Edit assets/artwork' option in the context menu. If not configured it should fallback to the globally configured asset directories, available in the addon settings.

Thank you. The game launches now, although assets and metadata as you said aren't downloading. The settings for the game show asset directories, but when scraping for artwork, none of them seem to work.
Do you have some logs for me to check? Lets see if it is the same issue or a new case.
Double check the asset directories.
- For a Source, go to sources -> context menu -> Edit Source -> Manage ROMs -> Manage ROMs asset directories. Check if directories are set
- For a ROM, go to the specific ROM -> context menu -> Edit ROM -> Edit Asset/Artwork -> Go down in list to 'Manage ROM asset directories'. Check if directories are set.

It should work that in the case a ROM doesn't have ROM asset directories set, it will inherit them from the Source. In the case they are not set for the Source it will get them from AKL addon settings.
Reply
Thanks @chrisism,

I tried this again, and it looks like your right, although I'm not sure how to fix it. What I did:
Uninstalled AKL, removed all userdata settings
Installed AKL fresh (latest version)
In settings, ensured i setup asset paths for Category/Launcher/Collections

Create a new Launcher, App Launcher, Directly execute the file itself (as the wiki states)
The wiki says I'd then be prompted for an assets path for the launcher, but I never was.

Then i add a new Source, point to my exe. Scraping metadata seems to work. Scraping assets fails with the following:
xml:
info <general>: [script.akl.tgdbscraper] __main__: addon.id "script.akl.tgdbscraper"
info <general>: [script.akl.tgdbscraper] __main__: addon.version "1.1.1"
info <general>: [script.akl.tgdbscraper] __main__: sys.platform "win32"
info <general>: [script.akl.tgdbscraper] __main__: OS "Windows"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[0] "default.py"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[1] "--cmd"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[2] "scrape"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[3] "--type"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[4] "SCRAPER"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[5] "--settings"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[6] "{"scrape_metadata_policy": 20000, "scrape_assets_policy": 20060, "search_term_mode": 20510, "game_selection_mode": 20520, "asset_selection_mode": 20510, "metadata_IDs_to_scrape": ["title", "year", "genre", "developer", "nplayers", "nplayers_online", "esrb", "pegi", "rating", "plot", "tags"], "asset_IDs_to_scrape": ["fanart", "banner", "clearlogo", "trailer", "snap", "boxfront", "boxback"], "overwrite_existing_meta": false, "overwrite_existing_assets": true, "ignore_scrap_title": false, "clean_tags": false, "update_nfo_files": false, "show_info_verbose": false}"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[7] "--server_host"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[8] "127.0.0.1"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[9] "--server_port"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[10] "5738"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[11] "--akl_addon_id"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[12] "df30c72efee178ba7ccca9ea4246373a"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[13] "--entity_type"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[14] "42505"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[15] "--entity_id"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[16] "530b57d4d9f0594c6a4beec397a3f94a"
info <general>: [script.akl.tgdbscraper] resources.lib.scraper: Applied embedded public API key
info <general>: [script.akl.tgdbscraper] akl.scrapers: Scraper cache dir set to: special://profile/addon_data/script.akl.tgdbscraper/cache/
info <general>: Skipped 1 duplicate messages..
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset fanart
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset banner
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset clearlogo
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset trailer
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset snap
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxfront
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxback
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#fanart
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#banner
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#clearlogo
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#trailer
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#snap
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#boxfront
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#boxback
info <general>: [plugin.program.akl] resources.lib.repositories: Updating ROM 'Spiritfarer'
info <general>: [plugin.program.akl] resources.lib.services: {"source_id":""}
info <general>: [plugin.program.akl] resources.lib.services: {"romcollection_id":"2cf612dae9d58f9f8875600eb0af55ae"}
info <general>: [plugin.program.akl] resources.lib.services: {"rom_id":"530b57d4d9f0594c6a4beec397a3f94a"}
error <general>: [plugin.program.akl] resources.lib.repositories: type: <class 'AttributeError'> value: 'NoneType' object has no attribute 'get_id'
critical <general>: [plugin.program.akl] resources.lib.commands.mediator: Failure processing command "RENDER_SOURCE_VIEW"
Traceback (most recent call last):
File "C:\Users\Z\AppData\Roaming\Kodi\addons\plugin.program.akl\resources\lib\commands\mediator.py", line 35, in sync_cmd
return a_command(args)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\plugin.program.akl\resources\lib\commands\view_rendering_commands.py", line 305, in cmd_render_source_view_data
source_view_data = _render_source_view(source, roms_repository)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\plugin.program.akl\resources\lib\commands\view_rendering_commands.py", line 657, in _render_source_view
roms = roms_repository.find_roms_by_source(source)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\plugin.program.akl\resources\lib\repositories.py", line 1370, in find_roms_by_source
source_id = source.get_id()
AttributeError: 'NoneType' object has no attribute 'get_id'

I attempted to fix this by Selecting Edit Rom/Edit Assets/Manage ROM assets directories. But when i select this, all the directories are in fact set (to what i entered in the addon settings, but with subfolders for each asset type). So I'm not sure how to resolve the 'missing asset dir' errors.
Reply
I new to this so sorry for the dumb question ahead of time. No matter what I do my roms won't show up in the sources tab. Can someone please give me a few reasons that would happen? Do your roms folder structure have to be a certain way for the add on to see your roms? Stuff like this. Thanks ahead of time. Could find any videos or forum post regarding this
Reply
Hey, I've been trying to make this work but I can't get AKL to show anything other than list or grid views, can I get some help with this please? I'm adding the games as standalone launchers, I have to add the artwork by hand for the games, cause scraping isn't really working, trying to figure it all out. Thank you in advance.
Reply
Hello there! i have same problem on ubuntu with scraper files, the scraper find a expecific asset and download it to HD but, it can preview image and fails on all scaner.

I can made work if i manually set lik or import downloaded image, but it dont do it automatic like AEL.
I think that the problem is that wen you assing default folder: ej: Kodi/game/asset , when you scrap it find Kodi/game/asset/boxfront. BUT this second folder (boxfront) is not on source folder and is not created by scrapper, so it can download to unexiting folder. If i add folder by hand, it works because dont set subfolder. Anyway at scanner the file is not visible, it cant render?

koditemp:
2025-01-22 22:28:07.442 T:2907     info <general>: [plugin.program.akl] akl.utils.kodi DEBUG [kodi.py:87]: event(): plugin.program.akl/RENDER_SOURCE_VIEW => {'source_id': ''}
2025-01-22 22:28:07.442 T:2907     info <general>: [plugin.program.akl] akl.utils.kodi DEBUG [kodi.py:87]: event(): plugin.program.akl/RENDER_VCATEGORY_VIEWS => {}
2025-01-22 22:28:07.442 T:2907     info <general>: [plugin.program.akl] akl.utils.kodi DEBUG [kodi.py:87]: event(): plugin.program.akl/EDIT_ROM => {'rom_id': 'f209e5691538c5b89b7a3fe66ccf6a15'}
2025-01-22 22:28:07.443 T:2907     info <general>: [plugin.program.akl] resources.lib.webservice DEBUG [webservice.py:216]: akl.webservice/140503502717664/1
2025-01-22 22:28:07.522 T:2132     info <general>: [plugin.program.akl] resources.lib.services INFO [services.py:187]: {"source_id":""}
2025-01-22 22:28:07.522 T:2132     info <general>: [plugin.program.akl] resources.lib.services INFO [services.py:187]: {}
2025-01-22 22:28:07.523 T:2132     info <general>: [plugin.program.akl] resources.lib.services INFO [services.py:187]: {"rom_id":"f209e5691538c5b89b7a3fe66ccf6a15"}
2025-01-22 22:28:07.794 T:2132     info <general>: [plugin.program.akl] resources.lib.commands.mediator DEBUG [mediator.py:28]: Invoking RENDER_SOURCE_VIEW
2025-01-22 22:28:07.796 T:2132    error <general>: [plugin.program.akl] resources.lib.repositories ERROR [repositories.py:545]: type: <class 'AttributeError'> value: 'NoneType' object has no attribute 'get_id'
2025-01-22 22:28:07.796 T:2132  critical <general>: [plugin.program.akl] resources.lib.commands.mediator CRITICAL [mediator.py:37]: Failure processing command "RENDER_SOURCE_VIEW"
                                                   Traceback (most recent call last):
                                                     File "/home/kodi/.kodi/addons/plugin.program.akl/resources/lib/commands/mediator.py", line 35, in sync_cmd
                                                       return a_command(args)
                                                     File "/home/kodi/.kodi/addons/plugin.program.akl/resources/lib/commands/view_rendering_commands.py", line 305, in cmd_render_source_view_data
                                                       source_view_data = _render_source_view(source, roms_repository)
                                                     File "/home/kodi/.kodi/addons/plugin.program.akl/resources/lib/commands/view_rendering_commands.py", line 657, in _render_source_view
                                                       roms = roms_repository.find_roms_by_source(source)
                                                     File "/home/kodi/.kodi/addons/plugin.program.akl/resources/lib/repositories.py", line 1370, in find_roms_by_source
                                                       source_id = source.get_id()
                                                   AttributeError: 'NoneType' object has no attribute 'get_id'
2025-01-22 22:28:07.797 T:2132     info <general>: [plugin.program.akl] resources.lib.commands.mediator DEBUG [mediator.py:28]: Invoking RENDER_VCATEGORY_VIEWS
2025-01-22 22:28:07.797 T:2132     info <general>: [plugin.program.akl] resources.lib.repositories INFO [repositories.py:141]: Removing 8 files for all virtual categories
2025-01-22 22:28:07.800 T:2132     info <general>: [plugin.program.akl] resources.lib.commands.view_rendering_commands DEBUG [view_rendering_commands.py:546]: Processing romcollection 'C'

Also cant check roms on a folder, can they added one by one but not as a escaner:

scaner:
2025-01-22 22:55:36.274 T:6430     info <general>: [script.akl.defaults] akl.report: Loading existing ROMs ...
2025-01-22 22:55:36.275 T:2907     info <general>: [plugin.program.akl] resources.lib.webservice DEBUG [webservice.py:191]: akl.webservice: Processing path "/query/source/roms/?id=c74caa73b106ada657d14492ff80a4ec"
2025-01-22 22:55:36.280 T:2907     info <general>: [plugin.program.akl] resources.lib.webservice DEBUG [webservice.py:216]: akl.webservice/140503482062000/1
2025-01-22 22:55:36.281 T:6430     info <general>: [script.akl.defaults] akl.report: 0 ROMs currently in database for this source.
2025-01-22 22:55:36.281 T:6430     info <general>: [script.akl.defaults] akl.report: Collecting candidates ...
2025-01-22 22:55:36.293 T:6430     info <general>: [script.akl.defaults] akl.report: Scanning files in /
2025-01-22 22:55:36.293 T:6430     info <general>: [script.akl.defaults] resources.lib.scanner: Recursive scan not activated
2025-01-22 22:55:36.294 T:6430     info <general>: [script.akl.defaults] akl.report:   File scanner found 0 files
2025-01-22 22:55:36.296 T:6430     info <general>: [script.akl.defaults] akl.report: 0 candidates found
2025-01-22 22:55:36.296 T:6430     info <general>: [script.akl.defaults] akl.report: Checking for dead ROMs ...
2025-01-22 22:55:36.296 T:6430     info <general>: [script.akl.defaults] resources.lib.scanner: Source is empty. No dead ROM check.
2025-01-22 22:55:36.296 T:6430     info <general>: [script.akl.defaults] akl.scanners: No dead ROMs found
2025-01-22 22:55:36.306 T:6430     info <general>: [script.akl.defaults] akl.report: Processing files ...
2025-01-22 22:55:36.311 T:6430  critical <general>: [script.akl.defaults] __main__: Exception in plugin
                                                   Traceback (most recent call last):
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/default.py", line 237, in <module>
                                                       run_plugin()
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/default.py", line 66, in run_plugin
                                                       scan_for_roms(addon_args)
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/default.py", line 150, in scan_for_roms
                                                       scanner.scan()
                                                     File "/home/kodi/.kodi/addons/script.module.akl/lib/akl/scanners.py", line 359, in scan
                                                       new_roms = self._processFoundItems(candidates, roms, launcher_report)
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/resources/lib/scanner.py", line 216, in _processFoundItems
                                                       scanner_multidisc = self.supports_multidisc()
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/resources/lib/scanner.py", line 84, in supports_multidisc
                                                       return self.scanner_settings['multidisc']
                                                   KeyError: 'multidisc'


Thank you and good look searching bug, if you need test we will try it
Reply
What location do your roms have to be in for AKL to see them when you scan for new roms? I can't get AKL to see any of my roms
Reply
(2025-01-18, 02:09)zachmorris Wrote: Thanks @chrisism,

I tried this again, and it looks like your right, although I'm not sure how to fix it. What I did:
Uninstalled AKL, removed all userdata settings
Installed AKL fresh (latest version)
In settings, ensured i setup asset paths for Category/Launcher/Collections

Create a new Launcher, App Launcher, Directly execute the file itself (as the wiki states)
The wiki says I'd then be prompted for an assets path for the launcher, but I never was.

Then i add a new Source, point to my exe. Scraping metadata seems to work. Scraping assets fails with the following:
xml:
info <general>: [script.akl.tgdbscraper] __main__: addon.id "script.akl.tgdbscraper"
info <general>: [script.akl.tgdbscraper] __main__: addon.version "1.1.1"
info <general>: [script.akl.tgdbscraper] __main__: sys.platform "win32"
info <general>: [script.akl.tgdbscraper] __main__: OS "Windows"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[0] "default.py"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[1] "--cmd"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[2] "scrape"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[3] "--type"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[4] "SCRAPER"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[5] "--settings"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[6] "{"scrape_metadata_policy": 20000, "scrape_assets_policy": 20060, "search_term_mode": 20510, "game_selection_mode": 20520, "asset_selection_mode": 20510, "metadata_IDs_to_scrape": ["title", "year", "genre", "developer", "nplayers", "nplayers_online", "esrb", "pegi", "rating", "plot", "tags"], "asset_IDs_to_scrape": ["fanart", "banner", "clearlogo", "trailer", "snap", "boxfront", "boxback"], "overwrite_existing_meta": false, "overwrite_existing_assets": true, "ignore_scrap_title": false, "clean_tags": false, "update_nfo_files": false, "show_info_verbose": false}"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[7] "--server_host"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[8] "127.0.0.1"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[9] "--server_port"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[10] "5738"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[11] "--akl_addon_id"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[12] "df30c72efee178ba7ccca9ea4246373a"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[13] "--entity_type"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[14] "42505"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[15] "--entity_id"
info <general>: [script.akl.tgdbscraper] __main__: sys.argv[16] "530b57d4d9f0594c6a4beec397a3f94a"
info <general>: [script.akl.tgdbscraper] resources.lib.scraper: Applied embedded public API key
info <general>: [script.akl.tgdbscraper] akl.scrapers: Scraper cache dir set to: special://profile/addon_data/script.akl.tgdbscraper/cache/
info <general>: Skipped 1 duplicate messages..
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset fanart
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset banner
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset clearlogo
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset trailer
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset snap
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxfront
warning <general>: [script.akl.tgdbscraper] akl.scrapers: Asset Path not defined for ROM Spiritfarer asset boxback
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#fanart
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#banner
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#clearlogo
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#trailer
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#snap
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#boxfront
warning <general>: [script.akl.tgdbscraper] akl.scrapers: ROM is missing asset dir for asset#boxback
info <general>: [plugin.program.akl] resources.lib.repositories: Updating ROM 'Spiritfarer'
info <general>: [plugin.program.akl] resources.lib.services: {"source_id":""}
info <general>: [plugin.program.akl] resources.lib.services: {"romcollection_id":"2cf612dae9d58f9f8875600eb0af55ae"}
info <general>: [plugin.program.akl] resources.lib.services: {"rom_id":"530b57d4d9f0594c6a4beec397a3f94a"}
error <general>: [plugin.program.akl] resources.lib.repositories: type: <class 'AttributeError'> value: 'NoneType' object has no attribute 'get_id'
critical <general>: [plugin.program.akl] resources.lib.commands.mediator: Failure processing command "RENDER_SOURCE_VIEW"
Traceback (most recent call last):
File "C:\Users\Z\AppData\Roaming\Kodi\addons\plugin.program.akl\resources\lib\commands\mediator.py", line 35, in sync_cmd
return a_command(args)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\plugin.program.akl\resources\lib\commands\view_rendering_commands.py", line 305, in cmd_render_source_view_data
source_view_data = _render_source_view(source, roms_repository)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\plugin.program.akl\resources\lib\commands\view_rendering_commands.py", line 657, in _render_source_view
roms = roms_repository.find_roms_by_source(source)
File "C:\Users\Z\AppData\Roaming\Kodi\addons\plugin.program.akl\resources\lib\repositories.py", line 1370, in find_roms_by_source
source_id = source.get_id()
AttributeError: 'NoneType' object has no attribute 'get_id'

I attempted to fix this by Selecting Edit Rom/Edit Assets/Manage ROM assets directories. But when i select this, all the directories are in fact set (to what i entered in the addon settings, but with subfolders for each asset type). So I'm not sure how to resolve the 'missing asset dir' errors.
Indeed there was a bug there. It did show the ROM asset directories prefilled with the fallback paths which it gets from the settings. However it did not properly push them to the scraper and had issues if the paths didnt exist. I created an hotfix rc 1.5.3 which should solve this. Currently testing it out before pushing it to stable.
Reply
(2025-01-21, 01:49)bigmayes Wrote: I new to this so sorry for the dumb question ahead of time. No matter what I do my roms won't show up in the sources tab. Can someone please give me a few reasons that would happen? Do your roms folder structure have to be a certain way for the add on to see your roms? Stuff like this. Thanks ahead of time. Could find any videos or forum post regarding this

I will be updating documentation and see if I can make videos with v1.6.0.
So for your particular case, it is a bit unclear what you bump into. To see ROMs you first need to add a Source. Open up the context menu and choose 'Add' / 'Add Source'.
When you execute 'Add Source', what kind of source do you choose and with what kind of settings. When you try that, can you also share any logs here please (see threadstart for details how).
Reply
(2025-01-21, 16:53)RavenusMorsel Wrote: Hey, I've been trying to make this work but I can't get AKL to show anything other than list or grid views, can I get some help with this please? I'm adding the games as standalone launchers, I have to add the artwork by hand for the games, cause scraping isn't really working, trying to figure it all out. Thank you in advance.

The type of views supported by the skin all depends on the particular skin. Some of the skins only build support for list and grid view in the case of addons. You might need to ask the skin creator if they want to add more support for the different views. Which one are you using?

For some ideas of what is possible you can try out my customized version of Artic Zephyr Reloaded. You can find it in my beta repository.
Reply
(2025-01-22, 23:59)marvin2k Wrote: Hello there! i have same problem on ubuntu with scraper files, the scraper find a expecific asset and download it to HD but, it can preview image and fails on all scaner.

I can made work if i manually set lik or import downloaded image, but it dont do it automatic like AEL.
I think that the problem is that wen you assing default folder: ej: Kodi/game/asset , when you scrap it find Kodi/game/asset/boxfront. BUT this second folder (boxfront) is not on source folder and is not created by scrapper, so it can download to unexiting folder. If i add folder by hand, it works because dont set subfolder. Anyway at scanner the file is not visible, it cant render?

koditemp:
2025-01-22 22:28:07.442 T:2907     info <general>: [plugin.program.akl] akl.utils.kodi DEBUG [kodi.py:87]: event(): plugin.program.akl/RENDER_SOURCE_VIEW => {'source_id': ''}
2025-01-22 22:28:07.442 T:2907     info <general>: [plugin.program.akl] akl.utils.kodi DEBUG [kodi.py:87]: event(): plugin.program.akl/RENDER_VCATEGORY_VIEWS => {}
2025-01-22 22:28:07.442 T:2907     info <general>: [plugin.program.akl] akl.utils.kodi DEBUG [kodi.py:87]: event(): plugin.program.akl/EDIT_ROM => {'rom_id': 'f209e5691538c5b89b7a3fe66ccf6a15'}
2025-01-22 22:28:07.443 T:2907     info <general>: [plugin.program.akl] resources.lib.webservice DEBUG [webservice.py:216]: akl.webservice/140503502717664/1
2025-01-22 22:28:07.522 T:2132     info <general>: [plugin.program.akl] resources.lib.services INFO [services.py:187]: {"source_id":""}
2025-01-22 22:28:07.522 T:2132     info <general>: [plugin.program.akl] resources.lib.services INFO [services.py:187]: {}
2025-01-22 22:28:07.523 T:2132     info <general>: [plugin.program.akl] resources.lib.services INFO [services.py:187]: {"rom_id":"f209e5691538c5b89b7a3fe66ccf6a15"}
2025-01-22 22:28:07.794 T:2132     info <general>: [plugin.program.akl] resources.lib.commands.mediator DEBUG [mediator.py:28]: Invoking RENDER_SOURCE_VIEW
2025-01-22 22:28:07.796 T:2132    error <general>: [plugin.program.akl] resources.lib.repositories ERROR [repositories.py:545]: type: <class 'AttributeError'> value: 'NoneType' object has no attribute 'get_id'
2025-01-22 22:28:07.796 T:2132  critical <general>: [plugin.program.akl] resources.lib.commands.mediator CRITICAL [mediator.py:37]: Failure processing command "RENDER_SOURCE_VIEW"
                                                   Traceback (most recent call last):
                                                     File "/home/kodi/.kodi/addons/plugin.program.akl/resources/lib/commands/mediator.py", line 35, in sync_cmd
                                                       return a_command(args)
                                                     File "/home/kodi/.kodi/addons/plugin.program.akl/resources/lib/commands/view_rendering_commands.py", line 305, in cmd_render_source_view_data
                                                       source_view_data = _render_source_view(source, roms_repository)
                                                     File "/home/kodi/.kodi/addons/plugin.program.akl/resources/lib/commands/view_rendering_commands.py", line 657, in _render_source_view
                                                       roms = roms_repository.find_roms_by_source(source)
                                                     File "/home/kodi/.kodi/addons/plugin.program.akl/resources/lib/repositories.py", line 1370, in find_roms_by_source
                                                       source_id = source.get_id()
                                                   AttributeError: 'NoneType' object has no attribute 'get_id'
2025-01-22 22:28:07.797 T:2132     info <general>: [plugin.program.akl] resources.lib.commands.mediator DEBUG [mediator.py:28]: Invoking RENDER_VCATEGORY_VIEWS
2025-01-22 22:28:07.797 T:2132     info <general>: [plugin.program.akl] resources.lib.repositories INFO [repositories.py:141]: Removing 8 files for all virtual categories
2025-01-22 22:28:07.800 T:2132     info <general>: [plugin.program.akl] resources.lib.commands.view_rendering_commands DEBUG [view_rendering_commands.py:546]: Processing romcollection 'C'

Also cant check roms on a folder, can they added one by one but not as a escaner:

scaner:
2025-01-22 22:55:36.274 T:6430     info <general>: [script.akl.defaults] akl.report: Loading existing ROMs ...
2025-01-22 22:55:36.275 T:2907     info <general>: [plugin.program.akl] resources.lib.webservice DEBUG [webservice.py:191]: akl.webservice: Processing path "/query/source/roms/?id=c74caa73b106ada657d14492ff80a4ec"
2025-01-22 22:55:36.280 T:2907     info <general>: [plugin.program.akl] resources.lib.webservice DEBUG [webservice.py:216]: akl.webservice/140503482062000/1
2025-01-22 22:55:36.281 T:6430     info <general>: [script.akl.defaults] akl.report: 0 ROMs currently in database for this source.
2025-01-22 22:55:36.281 T:6430     info <general>: [script.akl.defaults] akl.report: Collecting candidates ...
2025-01-22 22:55:36.293 T:6430     info <general>: [script.akl.defaults] akl.report: Scanning files in /
2025-01-22 22:55:36.293 T:6430     info <general>: [script.akl.defaults] resources.lib.scanner: Recursive scan not activated
2025-01-22 22:55:36.294 T:6430     info <general>: [script.akl.defaults] akl.report:   File scanner found 0 files
2025-01-22 22:55:36.296 T:6430     info <general>: [script.akl.defaults] akl.report: 0 candidates found
2025-01-22 22:55:36.296 T:6430     info <general>: [script.akl.defaults] akl.report: Checking for dead ROMs ...
2025-01-22 22:55:36.296 T:6430     info <general>: [script.akl.defaults] resources.lib.scanner: Source is empty. No dead ROM check.
2025-01-22 22:55:36.296 T:6430     info <general>: [script.akl.defaults] akl.scanners: No dead ROMs found
2025-01-22 22:55:36.306 T:6430     info <general>: [script.akl.defaults] akl.report: Processing files ...
2025-01-22 22:55:36.311 T:6430  critical <general>: [script.akl.defaults] __main__: Exception in plugin
                                                   Traceback (most recent call last):
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/default.py", line 237, in <module>
                                                       run_plugin()
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/default.py", line 66, in run_plugin
                                                       scan_for_roms(addon_args)
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/default.py", line 150, in scan_for_roms
                                                       scanner.scan()
                                                     File "/home/kodi/.kodi/addons/script.module.akl/lib/akl/scanners.py", line 359, in scan
                                                       new_roms = self._processFoundItems(candidates, roms, launcher_report)
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/resources/lib/scanner.py", line 216, in _processFoundItems
                                                       scanner_multidisc = self.supports_multidisc()
                                                     File "/home/kodi/.kodi/addons/script.akl.defaults/resources/lib/scanner.py", line 84, in supports_multidisc
                                                       return self.scanner_settings['multidisc']
                                                   KeyError: 'multidisc'


Thank you and good look searching bug, if you need test we will try it

Your first issue should be fixed with the current 1.5.3 hotfix. Let me know how that works and I'll push it to stable.
The second is a bit strange. It looks like it wants to scan from the root: 
Quote:[script.akl.defaults] akl.report: Scanning files in /
You might want to check that with the source configuration. Which path is stored? It doesnt show any errors with that path, simply that it couldnt find any files. The error is something completely different, which is interesting as well. What are the settings for this source?
Currently busy with release 1.6 where akl.defaults plugin is now merged into AKL. I want to double check this for that release.
Reply
(2025-01-23, 21:48)chrisism Wrote: Indeed there was a bug there. It did show the ROM asset directories prefilled with the fallback paths which it gets from the settings. However it did not properly push them to the scraper and had issues if the paths didnt exist. I created an hotfix rc 1.5.3 which should solve this. Currently testing it out before pushing it to stable.

The rc seems to work, mostly. When initially testing, any edit of an existing ROM would fail. I reset the database and tried again. When scraping this time, i received several errors stating that asset folders were not found (for cartridge and 3d boxes). After manually generating these folders, it appears to work now. Thanks again!

Ideally, I'd like to have a folder on my windows computer with shortcuts to PC games, and have AKL automatically scan all the lnk files at once (vs. adding each as a source manually). I've searched through this thread to see if this is possible. It seems like people have done this in the past, but I'm at a loss for how to make it happen. Are there instructions for this? After trying myself by making a 'folder scanner', that doesn't seem to do anything.
Reply
(2025-01-24, 04:10)zachmorris Wrote:
(2025-01-23, 21:48)chrisism Wrote: Indeed there was a bug there. It did show the ROM asset directories prefilled with the fallback paths which it gets from the settings. However it did not properly push them to the scraper and had issues if the paths didnt exist. I created an hotfix rc 1.5.3 which should solve this. Currently testing it out before pushing it to stable.

The rc seems to work, mostly. When initially testing, any edit of an existing ROM would fail. I reset the database and tried again. When scraping this time, i received several errors stating that asset folders were not found (for cartridge and 3d boxes). After manually generating these folders, it appears to work now. Thanks again!

Ideally, I'd like to have a folder on my windows computer with shortcuts to PC games, and have AKL automatically scan all the lnk files at once (vs. adding each as a source manually). I've searched through this thread to see if this is possible. It seems like people have done this in the past, but I'm at a loss for how to make it happen. Are there instructions for this? After trying myself by making a 'folder scanner', that doesn't seem to do anything.
Good, I already updated the RC to also check the directories for if they exist beforehand. So now it should ask you if the directories need to be created if not existing when starting to scrape.
I have added solutions for the .lnk launching, but went it is indeed blurred a bit with the single standalone ROM part and I've been going back and forth to get it right in the addon. So I'll try to explain it as clear as possible (so that it will help other users too, not just you).

Standalone ROMs/games (.exe, .lnk, .sh files)
The default way and basic AEL way was setting up a launcher application (emulator) and connect those with files (ROMS). When executing the game it will startup the emulator, associate the selected ROM file and you are ready to play. Now in the case of standalone applications/games with .exe and .lnk files, we don't need a separate launcher application. It needs to execute the file (.exe / .lnk, or .sh in linux case) directly. In AKL the emulator applications are called the 'Launchers', the ROMs/.exe/.lnk files are the 'Sources'.

Adding a single file that can be executed directly:
Add a 'Source', choose 'Standalone ROM / application' as the type of Source, select the file (.exe/.lnk/.sh etc.), give it a name etc.. Now you have a standalone ROM in the sources list view. Click on it to start.

Adding a collection of files that can be executed directly (e.g. directory with .lnk files):
Add a 'Source', choose 'Folder scanner', go through all the steps and choose the directory containing the .lnk files and choose lnk for the file extension question. When done you will have the source available in the sources list view. Execute the scan for ROMs command on the source so that it will find all the .lnk files in the configured directory. 
Now we only need to associate a launcher with the source and state that it will directly launch the ROM without an extra application like an emulator. Choose 'Add new launcher' on the 'Edit Source' menu. If you have created a direct file launcher created before choose that one, else create new. Choose 'App Launcher', give it a name, next choose for 'Directly execute the file itself', no arguments needed and then you are done. Now you have a source full of the .lnk files and associated with a launcher that simply executes the files directly.

------------
Future todo:
I know the whole way of setting up sources with launchers with the direct execute option is a bit cumbersome and it is mainly like that due to some legacy code since the whole AL, AEL, AKL history. I have been slowly refactoring to the concept of separate 'Launchers' and 'Sources'. For release 1.6 I will try to implement it in such a way that a Source with no Launcher associated is considered a directly executable application/file. That should make it much more clear. Thoughts?
Reply
  • 1
  • 23
  • 24
  • 25(current)
  • 26
  • 27

Logout Mark Read Team Forum Stats Members Help
Advanced Kodi Launcher - Game and Emulators frontend for Kodi0