Jump to content

All Activity

This stream auto-updates

  1. Past hour
  2. Thank you. The font is called 11S01 Black Tuesday, It was from this website: https://www.picturetopeople.org/ I also found this link: https://www.cdnfonts.com/11s01-black-tuesday.font
  3. Sadly don't know, sorry. Tesseract and PaddleOCR are docker containers i have modified slightly to clean up the images after them self when done with them, in fact you could use the originals with the plugin if you wanted. You can find Tesseract at: tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository) They are open source, highly known and used so i'm 99.9% sure it's nothing nefarious or people would have caught it by now.
  4. Leafstrider

    ScripterX Help to see if I'm doing Things correctly? in windows.

    WELL IT DID NOT WORK ITS SO FRUSTRATING. So I created a batch file that does not do anything other than showing it ran. just incase an exe is not accepted. Thenset up more scriptx runs on live tv record start and on l9ivetv record stop and entered them all differently. some with quotes some with full paths. Im going to reinstall scripterx 6.1.0.1 and hope that changes things ..Well nothings changed ,still not working though it does show in the log that it gets the argument. i am going to try webhooks. and yep they worked. finially got an X1 Xfinity set top box thats a rf "radio remote" to change channels, to record tv via hdmi to usb, 60 FPS, video captue for $20 from walmart, to automaticly take care of recording. it took me forever to do it all on one machine less the remote. and if the scripterx guy reads this, the windows version on the dropdown where cmd is, it is white box and white letters you cant read it unless one is very close and contrast is set just right it can barely be seen. I really like how deep the scripterx is i will try it again in 6 months as i really need it. and anyone want a crazy way to do xfinity channel changer just ask and ill write it up.
  5. @yockerI have a (possibly stupid) question about your tesseract container (yock1/embycreditocr). Most of the time Tesseract's status in Task Manager on my Synology is "Sleeping". But on occasion, it will go active and start utilizing the CPU even though the EmbyCredits plugin is not running. CPU usage is roughly 26% when it is active at those times. Is that expected behavior? If it is, what is Tesseract actually doing? I'm assuming it is doing maintenance (i.e. clean-up of remnant files). But I thought I would check just in case there is something else going on.
  6. HouseOfCards

    Some Observations About Metadata

    I'm suggesting that if a track image is CUSTOMIZED in the GUI, THAT image should be stored as "Song Name.jpg" next to the track. If it is not specifically set, just default to the album image and don't store anything additional, just like now. The image would only be stored/used if someone wanted it to be, and that would necessarily use more space for those customized at the track level. But a user would have to manually do that. I'm not suggesting to automatically create a "Song Name.jpg" for every existing track. Only customized ones. If someone updates the album image, it would have no effect. If a song was customized, it would use that image for the song. Album image changes wouldn't matter. But a track image, if manually specified, should be given preference over the album until a user deletes the custom track image. The issue is that if a user customizes an image, it gets lost if the server dies for some reason because it's only stored internally in Emby's cache. From what I understand, restoring a backup to a new server only pulls in the custom artwork if the paths match between the old and new servers. If a user customized hundreds of track images, that's lost if the paths are different.
  7. Thanks @ginjaninja Some real world bugs there and in the DM...I've replied in more detail in the DM and hopefully get you up and running more easily.
  8. Today
  9. @Lukeanother oddity with multi-version, in the web app I poke the Delete button and it shows a specific version but not the one that is set to play, so there is no way to delete a specific one though you can delete only one.
  10. GrimReaper

    Hide Certain Missing Episodes

    You can search for missing episodes on a per-show and/or per-season basis. You can also lend your support here:
  11. Abobader

    Interactive Duplicate Actor/Person Merger

    Hello noobilly, ** This is an auto reply ** Please wait for someone from staff support or our members to reply to you. It's recommended to provide more info, as it explain in this thread: Thank you. Emby Team
  12. Hi everyone, Like many of you, I have run into the issue where Emby creates duplicate actor or director profiles (usually due to different metadata providers or slight spelling variations). Merging these manually through the web interface is pretty tedious, especially if an actor has multiple duplicate IDs. To fix this, I asked Google Gemini to help me build a Windows tool for merging duplicate Actor/Person profiles automatically. I have compiled it into an easy-to-use .exe file. How to use it: 1. Set up your config file Before running the tool, you need to add your server details. Open the config.json file and fill in your information exactly like this (make sure to include http://): { "EMBY_URL": "http://192.168.30.248:8096", "API_KEY": "abcdefghijklmnopqrstuvwxyz1234567" } 2. Run the tool Double-click emby_actor_merge_manually.exe. Input the name of the duplicate actor or director you want to fix and press Enter. The tool will search your server and list all profiles matching that name. Type the ID of the one you want to keep and press Enter. Press Enter one last time to confirm the merge. 3. Cleanup Once the tool finishes moving everything over to the main profile, just go to your Emby Scheduled Tasks and run a Scan Media Library. Emby will automatically delete the leftover empty ghost profiles. Source Code Lastly, here is the source code of the .exe file written in Python, in case anyone prefers to run it manually as a script. Hopefully, Emby developer will implement a similar built-in function for users to do this easily as an Admin in the future import requests import urllib.parse import json import os import sys # ========================================== # CONFIGURATION LOADER # ========================================== CONFIG_FILE = "config.json" def load_config(): if not os.path.exists(CONFIG_FILE): default_config = { "EMBY_URL": "http://YOUR_SERVER_IP:8096", "API_KEY": "YOUR_API_KEY_HERE" } with open(CONFIG_FILE, 'w') as f: json.dump(default_config, f, indent=4) print(f"[{CONFIG_FILE} not found!]") print(f"I just created a blank '{CONFIG_FILE}' in this folder.") print("Please open it, paste your Emby URL and API Key, save it, and run this script again.") sys.exit() with open(CONFIG_FILE, 'r') as f: try: config = json.load(f) return config.get("EMBY_URL", "").strip('/'), config.get("API_KEY", "") except json.JSONDecodeError: print(f"Error: {CONFIG_FILE} is not formatted properly.") sys.exit() EMBY_URL, API_KEY = load_config() if not EMBY_URL or not API_KEY or "YOUR_API_KEY_HERE" in API_KEY: print(f"Error: Please add your actual Emby URL and API Key to {CONFIG_FILE}.") sys.exit() # ========================================== headers = { "X-Emby-Token": API_KEY, "Content-Type": "application/json", "Accept": "application/json" } def main(): search_name = input("Enter the name of the actor/director to search for: ").strip() if not search_name: print("Name cannot be empty. Exiting...") return print("\nAuthenticating and locating Admin User ID...") res_users = requests.get(f"{EMBY_URL}/emby/Users", headers=headers) if res_users.status_code != 200: print(f"Error fetching users. Status: {res_users.status_code}") return users = res_users.json() admin_id = None for u in users: if u.get("Policy", {}).get("IsAdministrator"): admin_id = u["Id"] break if not admin_id: print("Could not find an Admin user. Falling back to the first user.") admin_id = users[0]["Id"] print(f" -> Success! Using Admin ID: {admin_id}") print(f"\nSearching for profiles matching '{search_name}'...") safe_search_name = urllib.parse.quote(search_name) search_url = f"{EMBY_URL}/emby/Users/{admin_id}/Items?SearchTerm={safe_search_name}&IncludeItemTypes=Person&Recursive=true" res_search = requests.get(search_url, headers=headers) if res_search.status_code != 200: print(f"Error searching for actor. Status: {res_search.status_code}") return items = res_search.json().get("Items", []) if not items: print(f"No profiles found matching '{search_name}'. Exiting...") return found_profiles = {} for item in items: person_id = item.get("Id") if person_id: found_profiles[person_id] = item.get("Name", "Unknown") if len(found_profiles) == 1: print(f"\nOnly 1 profile found for '{search_name}'. No duplicates exist! Exiting...") return print(f"\nFound {len(found_profiles)} matching profiles:\n") print("=======================================================") for pid, pname in found_profiles.items(): print(f" ID: {pid} | Name: {pname}") print("=======================================================\n") keep_id = input("Enter the ID of the profile you want to KEEP: ").strip() if keep_id not in found_profiles: print(f"Error: '{keep_id}' is not in the list of found profiles. Exiting...") return keep_name = found_profiles[keep_id] duplicates_to_merge = [pid for pid in found_profiles.keys() if pid != keep_id] print(f"\n[Settings Locked]") print(f" -> KEEPING: {keep_name} ({keep_id})") print(f" -> MERGING: {len(duplicates_to_merge)} duplicate(s) into the kept profile.") confirm = input("Press ENTER to begin the merge, or type 'Q' to quit: ") if confirm.strip().lower() == 'q': print("Canceled. Exiting...") return for duplicate_id in duplicates_to_merge: duplicate_name = found_profiles[duplicate_id] print(f"\n=======================================================") print(f" Hunting down media for: {duplicate_name} (ID: {duplicate_id})") print(f"=======================================================") dup_search_url = f"{EMBY_URL}/emby/Users/{admin_id}/Items?PersonIds={duplicate_id}&Recursive=true&Fields=People" res_dup = requests.get(dup_search_url, headers=headers) if res_dup.status_code != 200: print(f"Error fetching items for {duplicate_id}. Status: {res_dup.status_code}") continue dup_items = res_dup.json().get("Items", []) print(f"Found {len(dup_items)} items containing this duplicate.") if not dup_items: print("No merging needed. This duplicate has no attached media.") continue for item in dup_items: item_id = item["Id"] item_name = item.get("Name", "Unknown") print(f"\nProcessing: {item_name} (ID: {item_id})") item_get_url = f"{EMBY_URL}/emby/Users/{admin_id}/Items/{item_id}" res_item = requests.get(item_get_url, headers=headers) if res_item.status_code != 200: print(f" -> Failed to fetch full metadata. Error {res_item.status_code}") continue full_item = res_item.json() people = full_item.get("People", []) keep_exists = any(str(p.get("Id")) == str(keep_id) for p in people) new_people = [] changed = False for p in people: if str(p.get("Id")) == str(duplicate_id): if keep_exists: print(f" -> Dropping duplicate (Main person already exists here).") changed = True continue else: print(f" -> Replacing duplicate with '{keep_name}'...") p["Id"] = keep_id p["Name"] = keep_name changed = True new_people.append(p) if changed: full_item["People"] = new_people update_url = f"{EMBY_URL}/emby/Items/{item_id}" update_res = requests.post(update_url, headers=headers, json=full_item) if update_res.status_code in [200, 204]: print(f" -> Successfully updated metadata!") else: print(f" -> Failed to update. Error {update_res.status_code}") else: print(" -> No changes needed.") print("\nMerge complete! Run 'Scan Media Library' in Emby to wipe the leftover duplicate profiles.") if __name__ == "__main__": main() emby_actor_merge_manually.exe config.json
  13. Jonathan1683

    Hide Certain Missing Episodes

    I am using a pc usually when i look at this in metadata manager. It doesn’t not work at all on ios half the screen is blocked off. I would like a way to collapse show that has tons of missing episodes if possible or hide them somehow so i don’t have to scroll through them all each time.
  14. yocker

    Plugin: EmbyIcons release.

    It just reads the info that Emby gives it so if Emby knows the properties of the file then the plugin will as well. Yes, those are the ones i'm planning to add with a "snap to nearest known rate" as a failsafe for those that might just deviate with 1bit or something for some reason. The plugin can already see .mp3, .flack and so on as it dynamically looks after what Emby says the files have. Actually have file formats and so on working already.
  15. yocker

    Plugin: EmbyIcons release.

    Appreciate it and many thanks but i need icons that look like the ones already in the plugin so as to not suddenly have a lot of different ones. You can gather them in a zip file and release them either here or in another thread (probably best) as i'm sure there are people very interested in them!
  16. How do i troubleshoot these sorts of errors using cuda via pip install torch torchvision torchaudio --index-url "https://download.pytorch.org/whl/cu130" 24 bytes - your stream is not nice... (maybe increasing resync limit could help). Note: Illegal Audio-MPEG-Header 0x00000000 at offset 3936001. Note: Trying to resync... Note: Skipped 1024 bytes in input. [C:\vcpkg\buildtrees\mpg123\src\-66150af195.clean\src\libmpg123\parse.c:wetwork():1389] error: Giving up resync after 1024 bytes - your stream is not nice... (maybe increasing resync limit could help). Note: Illegal Audio-MPEG-Header 0x00000000 at offset 3937028. Note: Trying to resync... Note: Skipped 1024 bytes in input. [C:\vcpkg\buildtrees\mpg123\src\-66150af195.clean\src\libmpg123\parse.c:wetwork():1389] error: Giving up resync after 1024 bytes - your stream is not nice... (maybe increasing resync limit could help). Note: Illegal Audio-MPEG-Header 0x00000000 at offset 3938055. Note: Trying to resync... Note: Skipped 1024 bytes in input. [C:\vcpkg\buildtrees\mpg123\src\-66150af195.clean\src\libmpg123\parse.c:wetwork():1389] error: Giving up resync after 1024 bytes - your stream is not nice... (maybe increasing resync limit could help). Note: Illegal Audio-MPEG-Header 0x00000000 at offset 3939082. Note: Trying to resync... Note: Skipped 1024 bytes in input. [C:\vcpkg\buildtrees\mpg123\src\-66150af195.clean\src\libmpg123\parse.c:wetwork():1389] error: Giving up resync after 1024 bytes - your stream is not nice... (maybe increasing resync limit could help). Note: Illegal Audio-MPEG-Header 0x00000000 at offset 3940109. Note: Trying to resync... Note: Skipped 1024 bytes in input. [C:\vcpkg\buildtrees\mpg123\src\-66150af195.clean\src\libmpg123\parse.c:wetwork():1389] error: Giving up resync after 1024 bytes - your stream is not nice... (maybe increasing resync limit could help). Note: Illegal Audio-MPEG-Header 0x00000000 at offset 3941136. Note: Trying to resync... Note: Skipped 1024 bytes in input.
  17. @LukeSome days it may be better but for several it wasn't working at all so I would have to say this issue is still very much apparent where the app is not taking the locally retained watched state (which works) and passing to the server. I have to manually set episodes to watched for these, even though the downloaded episode shows it is indeed watched - the watch state isn't syncing. Ideally it would sync right away when connecting to the local server. Should I be leaving the app open (even though it was opened when the server was inaccessible and can't see server info)? I figured I had to close it out, to get it to connect again. Even if I do that, and leave it 'connected and open' overnight for example, it still did not sync the watched episodes.
  18. Pasithea

    Plugin: TheIntroDB – Emby Plugin

    Yeah that makes sense. I'll probably have a new version out by the end of the week with that. Hopefully sooner!
  19. pdclark

    What does this mean - I’ve set no limits.

    Thanks
  20. Kyouma

    Plugin: TheIntroDB – Emby Plugin

    That means i would also lose the embedded chapters no? Then an option to only remove TheIntroDB chapters is definitely needed.
  21. Hello! I did a bit of searching but did not find this question posted, so forgive me if I am kind of new to IPTV. I setup IPTV using Stationarr and everything worked very well. I have station Icons propulated, the guide properly populated, the station channels logos populated. But under Live Tv ==> Shows, the icons are all empty. I am not sure how to diagnose what I might be doing wrong that the show icons are coming through. Or perhaps there is a better XMLTV source for shows themselves? Thanks in advance!
  22. Pasithea

    Plugin: TheIntroDB – Emby Plugin

    @KyoumaI believe you'd need to remove all chapters from the media currently, then rescan the chapters to reset them. I'll look into adding your other suggestions though.
  23. sergiovassari

    Plugin: EmbyIcons release.

    Will the new plugin be able to read and identify the file, or will it only work with the filename or a custom setting? Here is a list of what I know. .mp3 .flac .wav .m4a .aac .ogg .opus .alac .aiff .wma Sample rates 8 kHz 11,025 kHz 12 kHz 16 kHz 22,05 kHz 24 kHz 32 kHz 44,1 kHz 48 kHz 64 kHz 88,2 kHz 96 kHz 176,4 kHz 192 kHz 352,8 kHz 384 kHz 705,6 kHz 768 kHz Bit depths 8-bit 16-bit 20-bit 24-bit 32-bit (inteiro) 32-bit float 64-bit float Bitrates MP3 (CBR) 8 kbps 16 kbps 24 kbps 32 kbps 40 kbps 48 kbps 56 kbps 64 kbps 80 kbps 96 kbps 112 kbps 128 kbps 160 kbps 192 kbps 224 kbps 256 kbps 320 kbps
  24. GrimReaper

    Old "Media Server" text replacement

    It is by design.
  25. sergiovassari

    Plugin: EmbyIcons release.

    I like your plugin so much that I made icons for my own use (I find the default ones really ugly—no offense). If my graphic style works for you, let me know what you need for albums, and I'll create them in that style.
  26. Externo

    No continúa siguiente capítulo

    Ya tenía ambas opciones en Ilimitado y me sigue sucediendo el mismo problema.
  27. Not a breaking issue, but I noticed that if t he server name contains "Emby", the text is replaced with "Media Server" in browser tabs/window titles.
  1. Load more activity
×
×
  • Create New...