luigi311 / JellyPlex-Watched

Sync watched between jellyfin and plex locally
GNU General Public License v3.0
366 stars 19 forks source link

[Feature Request] Official Emby Support #154

Closed MRobi1 closed 1 month ago

MRobi1 commented 4 months ago

I would love to see official Emby support.

Yes, I realize that the API for Emby works when input as a Jellyfin server which does provide full functionality.

I'm just thinking for logging purposes and sync setting purposes. Giving standalone settings for Emby would allow more customizable features like "SYNC_FROM_EMBY_TO_JELLYFIN, SYNC_FROM_JELLYFIN_TO_EMBY, SYNC_FROM_EMBY_TO_PLEX" etc... It would also make logging more accurate because it would show as Emby not as Jellyfin.

I would think it should be fairly simple to implement since it would just require duplicating Jellyfin and renaming to Emby.

luigi311 commented 3 months ago

im currently working on this now, setting up a emby instance for myself internally now and will also need to setup one for the ci container so i can make sure the tests are passing.

swdwi2 commented 3 months ago

Currently working perfectly PLEX to JELLYFIN But not PLEX to EMBY 4.8.3.0 Is this expected?

swdwi2 commented 3 months ago

Further to my comment above. Shows are showing in mark.log but not being updated in Emby

luigi311 commented 3 months ago

its expected for now, im still working on the emby support.

swdwi2 commented 3 months ago

Thanks for the reply and your work.

luigi311 commented 2 months ago

@swdwi2 @MRobi1 Can you guys try the emby branch, i added in support for emby in there and if that looks good i can merge it in. It doesnt have support for partial episodes just like jellyfin.

MRobi1 commented 2 months ago

First thing I'm noticing is that I've set my config to sync only from Emby to Plex and Jellyfin for testing

SYNC_FROM_PLEX_TO_JELLYFIN = "False"
SYNC_FROM_PLEX_TO_PLEX = "False"
SYNC_FROM_PLEX_TO_EMBY = "False"

SYNC_FROM_JELLYFIN_TO_PLEX = "False"
SYNC_FROM_JELLYFIN_TO_JELLYFIN = "False"
SYNC_FROM_JELLYFIN_TO_EMBY = "False"

SYNC_FROM_EMBY_TO_PLEX = "True"
SYNC_FROM_EMBY_TO_JELLYFIN = "True" 
SYNC_FROM_EMBY_TO_EMBY = "True"

But the first thing it's doing is working through Plex and Jellyfin together.

Server 1: Plex: plex: 1.40.2.8395-c67dce28e
Server 2: Jellyfin: Mike-Jellyfin: 10.8.13
Plex: Generating watched for mike in library Children's Movies
Plex: Generating watched for mike in library Movies

This may be by design, but it seems like if it's comparing Plex and Jellyfin while the synching between them is set to False, it's just slowing down the process would it not? Logically I would expect to see Emby and Plex and then Emby and Jellyfin based on these settings.

luigi311 commented 2 months ago

yeah i think i need to include a check at the very beginning so it skips if both the servers are not set to sync at all, as of right now it only does that check at the very end so it will still generate the lists just to do nothing with it

luigi311 commented 2 months ago

Should be implemented now

swdwi2 commented 2 months ago

I’ve just tested PLEX to EMBY

I see if a show on Plex plays to completion it is updated correctly in Emby

However if i manually mark s show as Complete in Plex it is not updated as complete in Emby.

On 7 May 2024, at 18:42, Luigi311 @.***> wrote:

Should be implemented now

— Reply to this email directly, view it on GitHub https://github.com/luigi311/JellyPlex-Watched/issues/154#issuecomment-2098978186, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALY4IS5YA6BUBYCLUTMQEM3ZBEHAPAVCNFSM6AAAAABELFR4ACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJYHE3TQMJYGY. You are receiving this because you were mentioned.

Williams Dave mailto: @.***

luigi311 commented 2 months ago

hmm it should definetely pick it up if you marked it as played in plex manually, im not doing any checks to see if it was actually watched or not just that it was marked as watched. Is it a show? It might be an issue related to #167

swdwi2 commented 2 months ago

I can’t do any more testing until next week. Given it all works if you actually watch the shows I suggest you proceed and merge into the released version. I’ll do some more testing on a separate second plex server.

Regards Dave


From: Luigi311 @.> Sent: Wednesday, May 8, 2024 9:47:20 AM To: luigi311/JellyPlex-Watched @.> Cc: swdwi2 @.>; Mention @.> Subject: Re: [luigi311/JellyPlex-Watched] [Feature Request] Official Emby Support (Issue #154)

hmm it should definetely pick it up if you marked it as played in plex manually, im not doing any checks to see if it was actually watched or not just that it was marked as watched. Is it a show? It might be an issue related to #167https://github.com/luigi311/JellyPlex-Watched/issues/167

— Reply to this email directly, view it on GitHubhttps://github.com/luigi311/JellyPlex-Watched/issues/154#issuecomment-2100074040, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALY4ISZLQQPUQJL36NZW7SLZBHRBRAVCNFSM6AAAAABELFR4ACVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBQGA3TIMBUGA. You are receiving this because you were mentioned.Message ID: @.***>

MRobi1 commented 2 months ago

Initially i thought it was working great. Then I realized I forgot to shut down my other instance that I had been using LOL

Emby -> Plex seems to be working fine Emby -> Jellyfin shows it's synching without issues, but episodes watched last night are not showing as watched in Jellyfin. It's about 11hrs later right now and can confirm a sync just finished but episodes still showing as unwatched in JF.

MRobi1 commented 2 months ago

Further to the above, here's some screenshots.

Emby: Watched last night image

Jellyfin: Showing unwatched image

Attaching 2 cycles worth of logs. Going through, each cycle is trying to mark the same shows as watched, and they are already watched on all servers. Not sure why it's marking them watched again?

_jellyplex-watched-emby_logs.txt

MRobi1 commented 2 months ago

After watching episode 7, they are now both watched. And all my viewing last night is showing watched this morning.

So it does work, but not sure why some episodes are being marked every run, and why not all watched episodes are marked.

swdwi2 commented 2 months ago
So I finally got some time to dedicate to testing.

Test Setup:-

All new installations:

Jellyfin Docker  Server 10.9.1

Emby Docker 4.8.4.0

Plex Docker  Version 1.40.2.8395

luigi311/jellyplex-watched:emby

40 Tv Show Series.

**************************************

.env

# Global Settings

## Do not mark any shows/movies as played and instead just output to log if they would of been marked.
DRYRUN = "False"

## Additional logging information
DEBUG = "True"

## Debugging level, "info" is default, "debug" is more verbose
## DEBUG_LEVEL = "info"
DEBUG_LEVEL = "debug"

## If set to true then the script will only run once and then exit
RUN_ONLY_ONCE = "False"

## How often to run the script in seconds
SLEEP_DURATION = "720"

## Log file where all output will be written to
## LOGFILE = "log.log"

## Mark file where all shows/movies that have been marked as played will be written to
## MARK_FILE = "mark.log"

## Timeout for requests for jellyfin
REQUEST_TIMEOUT = 300

## Generate guids
## Generating guids is a slow process, so this is a way to speed up the process
## by using the location only, useful when using same files on multiple servers
GENERATE_GUIDS = "True"

## Generate locations
## Generating locations is a slow process, so this is a way to speed up the process
## by using the guid only, useful when using different files on multiple servers
GENERATE_LOCATIONS = "True"

## Max threads for processing
MAX_THREADS = 32

## Map usernames between servers in the event that they are different, order does not matter
## Comma separated for multiple options
USER_MAPPING = { "billybal7": "swdwi2","stu6248":"stu900" }

## Map libraries between servers in the even that they are different, order does not matter
## Comma separated for multiple options
LIBRARY_MAPPING = { "Shows": "TV Shows", "Movies": "Films" }

## Blacklisting/Whitelisting libraries, library types such as Movies/TV Shows, and users. Mappings apply so if the mapping for the user or library exist then both will be excluded.
## Comma separated for multiple options
BLACKLIST_LIBRARY = "Audio Books,Music,PodCast2,Photos,Other Video,Live TV"
WHITELIST_LIBRARY = ""
BLACKLIST_LIBRARY_TYPE = ""
WHITELIST_LIBRARY_TYPE = ""
BLACKLIST_USERS = ""
WHITELIST_USERS =  "billybal7,swdwi2,stu6248,stu900"

# Plex

## Recommended to use token as it is faster to connect as it is direct to the server instead of going through the plex servers
## URL of the plex server, use hostname or IP address if the hostname is not resolving correctly
## Comma separated list for multiple servers
PLEX_BASEURL = "http://10.52.2.14:32400"

## Plex token https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/
## Comma separated list for multiple servers
PLEX_TOKEN = “xxxxxxxxxxxxxxxxx"

## If not using plex token then use username and password of the server admin along with the servername
## Comma separated for multiple options
#PLEX_USERNAME = "swdwi2"

#PLEX_PASSWORD = "SuperSecret, SuperSecret2"
#PLEX_SERVERNAME = "Plex Server1, Plex Server2"

## Skip hostname validation for ssl certificates.
## Set to True if running into ssl certificate error
SSL_BYPASS = "True"

## control the direction of syncing. e.g. SYNC_FROM_PLEX_TO_JELLYFIN set to true will cause the updates from plex
## to be updated in jellyfin. SYNC_FROM_PLEX_TO_PLEX set to true will sync updates between multiple plex servers
SYNC_FROM_PLEX_TO_EMBY = "True"
SYNC_FROM_PLEX_TO_JELLYFIN = "True"
SYNC_FROM_PLEX_TO_PLEX = "False"

SYNC_FROM_JELLYFIN_TO_PLEX = "False"
SYNC_FROM_JELLYFIN_TO_JELLYFIN = "False"
SYNC_FROM_JELLYFIN_TO_EMBY = "False"

SYNC_FROM_EMBY_TO_PLEX ="False"
SYNC_FROM_EMBY_TO_JELLYFIN = "False"
SYNC_FROM_EMBY_TO_EMBY = "False"

# Jellyfin

## Jellyfin server URL, use hostname or IP address if the hostname is not resolving correctly
## Comma separated list for multiple servers
EMBY_BASEURL = "http://10.52.2.14:8099"
JELLYFIN_BASEURL = "http://10.52.2.14:8096"
## Jellyfin api token, created manually by logging in to the jellyfin server admin dashboard and creating an api key

## Comma separated list for multiple servers
JELLYFIN_TOKEN = “xxxxxxxxxxxxxxxxx"
EMBY_TOKEN = “xxxxxxxxxxxxxxxxxxx"

Test 1 :-

Sync Plex to Emby
Sync  Plex Jellyfin

Works for Plex to Jellyfin

DOES NOT WORK Plex to Emby

Log ************************************************

[INFO]: Dryrun: False
[INFO]: User Mapping: {'billybal7': 'swdwi2', 'stu6248': 'stu900'}
[INFO]: Library Mapping: {'Shows': 'TV Shows', 'Movies': 'Films'}
[INFO]: Creating (black/white)lists
[INFO]: Blacklist Library: ['Audio Books', 'Music', 'PodCast2', 'Photos', 'Other Video', 'Live TV']
[INFO]: Blacklist Library Type: []
[INFO]: Blacklist Users: []
[INFO]: Whitelist Library: []
[INFO]: Whitelist Library Type: []
[INFO]: Whitelist Users: ['billybal7', 'swdwi2', 'stu6248', 'stu900', 'swdwi2', 'billybal7', 'stu900', 'stu6248']
[INFO]: Creating server connections
[DEBUG]: Plex Server 0 info: ubuntutest.mylocal: 1.40.2.8395-c67dce28e
[DEBUG]: jellyfin Server 0 info: ubuntutest: 10.9.1
[DEBUG]: emby Server 0 info: ubuntutest: 4.8.6.0
Server 1: Plex: ubuntutest.mylocal: 1.40.2.8395-c67dce28e
Server 2: Jellyfin: ubuntutest: 10.9.1
[INFO]: Creating users list
[INFO]: Server 1 users: ['billybal7']
[INFO]: Server 2 users: ['swdwi2']
[INFO]: User list that exist on both servers {'billybal7': 'swdwi2'}
[INFO]: Filtered user list {'billybal7': 'swdwi2'}
[INFO]: Server 1 users: [<MyPlexAccount:364664688:billybal7>]
[INFO]: Server 2 users: {'swdwi2': '655c5c01b5ca4aa09f2e0fe7219b0fa6'}
[INFO]: Creating watched lists
Plex: Generating watched for billybal7 in library TV Shows
[DEBUG]: Plex: Added {1: [{'title': 'The Bone Orchard', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017734', 'tmdb': '1276153', 'tvdb': '5088686'}, {'title': 'The Secret of Spoons', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5062946', 'tmdb': '1304552', 'tvdb': '6024171'}, {'title': 'Head Full of Snow', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5280330', 'tmdb': '1304553', 'tvdb': '6082595'}, {'title': 'Git Gone', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665566', 'tmdb': '1304554', 'tvdb': '6082596'}, {'title': 'A Prayer for Mad Sweeney', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665584', 'tmdb': '1308220', 'tvdb': '6083751'}, {'title': 'Come to Jesus', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017740', 'tmdb': '1308221', 'tvdb': '6083752'}]} to billybal7 frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}) watched list
[INFO]: Plex: Got watched for billybal7 in library TV Shows
[DEBUG]: Plex: {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Bone Orchard', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017734', 'tmdb': '1276153', 'tvdb': '5088686'}, {'title': 'The Secret of Spoons', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5062946', 'tmdb': '1304552', 'tvdb': '6024171'}, {'title': 'Head Full of Snow', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5280330', 'tmdb': '1304553', 'tvdb': '6082595'}, {'title': 'Git Gone', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665566', 'tmdb': '1304554', 'tvdb': '6082596'}, {'title': 'A Prayer for Mad Sweeney', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665584', 'tmdb': '1308220', 'tvdb': '6083751'}, {'title': 'Come to Jesus', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017740', 'tmdb': '1308221', 'tvdb': '6083752'}]}}
[INFO]: Finished creating watched list server 1
Jellyfin: Generating watched for swdwi2 in library Shows
[DEBUG]: Jellyfin: Adding American Gods to swdwi2 watched list
[INFO]: Jellyfin: Added [{'title': 'The Bone Orchard', 'imdb': 'tt5017734', 'tvdb': '5088686', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'The Secret of Spoons', 'imdb': 'tt5062946', 'tvdb': '6024171', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Head Full of Snow', 'imdb': 'tt5280330', 'tvdb': '6082595', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Git Gone', 'imdb': 'tt5665566', 'tvdb': '6082596', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'A Prayer for Mad Sweeney', 'imdb': 'tt5665584', 'tvdb': '6083751', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Come to Jesus', 'imdb': 'tt5017740', 'tvdb': '6083752', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}] to swdwi2 frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('tvrage', '28779'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}) watched list
[INFO]: Jellyfin: Added [{'title': 'The Bone Orchard', 'imdb': 'tt5017734', 'tvdb': '5088686', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'The Secret of Spoons', 'imdb': 'tt5062946', 'tvdb': '6024171', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Head Full of Snow', 'imdb': 'tt5280330', 'tvdb': '6082595', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Git Gone', 'imdb': 'tt5665566', 'tvdb': '6082596', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'A Prayer for Mad Sweeney', 'imdb': 'tt5665584', 'tvdb': '6083751', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Come to Jesus', 'imdb': 'tt5017740', 'tvdb': '6083752', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}] to swdwi2 frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('tvrage', '28779'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}) watched list
[INFO]: Jellyfin: Got watched for swdwi2 in library Shows
[DEBUG]: Jellyfin: {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('tvrage', '28779'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Bone Orchard', 'imdb': 'tt5017734', 'tvdb': '5088686', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'The Secret of Spoons', 'imdb': 'tt5062946', 'tvdb': '6024171', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Head Full of Snow', 'imdb': 'tt5280330', 'tvdb': '6082595', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Git Gone', 'imdb': 'tt5665566', 'tvdb': '6082596', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'A Prayer for Mad Sweeney', 'imdb': 'tt5665584', 'tvdb': '6083751', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Come to Jesus', 'imdb': 'tt5017740', 'tvdb': '6083752', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}]}}
[INFO]: Finished creating watched list server 2
[DEBUG]: Server 1 watched: {'billybal7': {'TV Shows': {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Bone Orchard', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017734', 'tmdb': '1276153', 'tvdb': '5088686'}, {'title': 'The Secret of Spoons', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5062946', 'tmdb': '1304552', 'tvdb': '6024171'}, {'title': 'Head Full of Snow', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5280330', 'tmdb': '1304553', 'tvdb': '6082595'}, {'title': 'Git Gone', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665566', 'tmdb': '1304554', 'tvdb': '6082596'}, {'title': 'A Prayer for Mad Sweeney', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665584', 'tmdb': '1308220', 'tvdb': '6083751'}, {'title': 'Come to Jesus', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017740', 'tmdb': '1308221', 'tvdb': '6083752'}]}}}}
[DEBUG]: Server 2 watched: {'swdwi2': {'Shows': {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('tvrage', '28779'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Bone Orchard', 'imdb': 'tt5017734', 'tvdb': '5088686', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'The Secret of Spoons', 'imdb': 'tt5062946', 'tvdb': '6024171', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Head Full of Snow', 'imdb': 'tt5280330', 'tvdb': '6082595', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Git Gone', 'imdb': 'tt5665566', 'tvdb': '6082596', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'A Prayer for Mad Sweeney', 'imdb': 'tt5665584', 'tvdb': '6083751', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Come to Jesus', 'imdb': 'tt5017740', 'tvdb': '6083752', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}]}}}}
[INFO]: Cleaning Server 1 Watched
[INFO]: Skipping movies_output_dict failed
[DEBUG]: Removing The Bone Orchard from TV Shows due to exact match
[DEBUG]: Removing The Secret of Spoons from TV Shows due to exact match
[DEBUG]: Removing Head Full of Snow from TV Shows due to exact match
[DEBUG]: Removing Git Gone from TV Shows due to exact match
[DEBUG]: Removing A Prayer for Mad Sweeney from TV Shows due to exact match
[DEBUG]: Removing Come to Jesus from TV Shows due to exact match
[DEBUG]: Removing 1 from American Gods because it is empty
[DEBUG]: Removing American Gods because it is empty
[INFO]: Removing TV Shows from billybal7 because it is empty
[INFO]: Removing billybal7 from watched list 1 because it is empty
[INFO]: Cleaning Server 2 Watched
[INFO]: Skipping movies_output_dict failed
[DEBUG]: Removing The Bone Orchard from Shows due to exact match
[DEBUG]: Removing The Secret of Spoons from Shows due to exact match
[DEBUG]: Removing Head Full of Snow from Shows due to exact match
[DEBUG]: Removing Git Gone from Shows due to exact match
[DEBUG]: Removing A Prayer for Mad Sweeney from Shows due to exact match
[DEBUG]: Removing Come to Jesus from Shows due to exact match
[DEBUG]: Removing 1 from American Gods because it is empty
[DEBUG]: Removing American Gods because it is empty
[INFO]: Removing Shows from swdwi2 because it is empty
[INFO]: Removing swdwi2 from watched list 1 because it is empty
[INFO]: server 1 watched that needs to be synced to server 2:
all values are hidden
[INFO]: server 2 watched that needs to be synced to server 1:
all values are hidden
[INFO]: Sync from jellyfin -> plex is disabled
Syncing ubuntutest.mylocal: 1.40.2.8395-c67dce28e -> ubuntutest: 10.9.1
Server 1: Plex: ubuntutest.mylocal: 1.40.2.8395-c67dce28e
Server 2: Emby: ubuntutest: 4.8.6.0
[INFO]: Creating users list
[INFO]: Server 1 users: ['billybal7']
[INFO]: Server 2 users: ['swdwi2']
[INFO]: User list that exist on both servers {'billybal7': 'swdwi2'}
[INFO]: Filtered user list {'billybal7': 'swdwi2'}
[INFO]: Server 1 users: [<MyPlexAccount:364664688:billybal7>]
[INFO]: Server 2 users: {'swdwi2': '1315d2f3a9f44f759b332247b8abf83f'}
[INFO]: Creating watched lists
Plex: Generating watched for billybal7 in library TV Shows
[DEBUG]: Plex: Added {1: [{'title': 'The Bone Orchard', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017734', 'tmdb': '1276153', 'tvdb': '5088686'}, {'title': 'The Secret of Spoons', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5062946', 'tmdb': '1304552', 'tvdb': '6024171'}, {'title': 'Head Full of Snow', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5280330', 'tmdb': '1304553', 'tvdb': '6082595'}, {'title': 'Git Gone', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665566', 'tmdb': '1304554', 'tvdb': '6082596'}, {'title': 'A Prayer for Mad Sweeney', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665584', 'tmdb': '1308220', 'tvdb': '6083751'}, {'title': 'Come to Jesus', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017740', 'tmdb': '1308221', 'tvdb': '6083752'}]} to billybal7 frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}) watched list
[INFO]: Plex: Got watched for billybal7 in library TV Shows
[DEBUG]: Plex: {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Bone Orchard', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017734', 'tmdb': '1276153', 'tvdb': '5088686'}, {'title': 'The Secret of Spoons', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5062946', 'tmdb': '1304552', 'tvdb': '6024171'}, {'title': 'Head Full of Snow', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5280330', 'tmdb': '1304553', 'tvdb': '6082595'}, {'title': 'Git Gone', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665566', 'tmdb': '1304554', 'tvdb': '6082596'}, {'title': 'A Prayer for Mad Sweeney', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665584', 'tmdb': '1308220', 'tvdb': '6083751'}, {'title': 'Come to Jesus', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017740', 'tmdb': '1308221', 'tvdb': '6083752'}]}}
[INFO]: Finished creating watched list server 1
Emby: Generating watched for swdwi2 in library TV shows
[DEBUG]: Emby: Adding American Gods to swdwi2 watched list
[INFO]: Emby: Added [{'title': 'The Secret of Spoons', 'imdb': 'tt5062946', 'tvdb': '6024171', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Come to Jesus', 'imdb': 'tt5017740', 'tvdb': '6083752', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}] to swdwi2 frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('tvrage', '28779'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}) watched list
[INFO]: Emby: Got watched for swdwi2 in library TV shows
[DEBUG]: Emby: {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('tvrage', '28779'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Secret of Spoons', 'imdb': 'tt5062946', 'tvdb': '6024171', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Come to Jesus', 'imdb': 'tt5017740', 'tvdb': '6083752', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}]}}
[INFO]: Finished creating watched list server 2
[DEBUG]: Server 1 watched: {'billybal7': {'TV Shows': {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Bone Orchard', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017734', 'tmdb': '1276153', 'tvdb': '5088686'}, {'title': 'The Secret of Spoons', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5062946', 'tmdb': '1304552', 'tvdb': '6024171'}, {'title': 'Head Full of Snow', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5280330', 'tmdb': '1304553', 'tvdb': '6082595'}, {'title': 'Git Gone', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665566', 'tmdb': '1304554', 'tvdb': '6082596'}, {'title': 'A Prayer for Mad Sweeney', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665584', 'tmdb': '1308220', 'tvdb': '6083751'}, {'title': 'Come to Jesus', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017740', 'tmdb': '1308221', 'tvdb': '6083752'}]}}}}
[DEBUG]: Server 2 watched: {'swdwi2': {'TV shows': {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('tvrage', '28779'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Secret of Spoons', 'imdb': 'tt5062946', 'tvdb': '6024171', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Come to Jesus', 'imdb': 'tt5017740', 'tvdb': '6083752', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}]}}}}
[INFO]: Cleaning Server 1 Watched
[INFO]: TV Shows and Shows not found in watched list 2
[INFO]: Cleaning Server 2 Watched
[INFO]: TV shows and None not found in watched list 2
[INFO]: server 1 watched that needs to be synced to server 2:
{'billybal7': {'TV Shows': {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Bone Orchard', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017734', 'tmdb': '1276153', 'tvdb': '5088686'}, {'title': 'The Secret of Spoons', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5062946', 'tmdb': '1304552', 'tvdb': '6024171'}, {'title': 'Head Full of Snow', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5280330', 'tmdb': '1304553', 'tvdb': '6082595'}, {'title': 'Git Gone', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665566', 'tmdb': '1304554', 'tvdb': '6082596'}, {'title': 'A Prayer for Mad Sweeney', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665584', 'tmdb': '1308220', 'tvdb': '6083751'}, {'title': 'Come to Jesus', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017740', 'tmdb': '1308221', 'tvdb': '6083752'}]}}}}
[INFO]: server 2 watched that needs to be synced to server 1:
{'swdwi2': {'TV shows': {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('tvrage', '28779'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Secret of Spoons', 'imdb': 'tt5062946', 'tvdb': '6024171', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}}, {'title': 'Come to Jesus', 'imdb': 'tt5017740', 'tvdb': '6083752', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}}]}}}}
[INFO]: Sync from emby -> plex is disabled
Syncing ubuntutest.mylocal: 1.40.2.8395-c67dce28e -> ubuntutest: 4.8.6.0
[INFO]: Emby: Updating for entry billybal7, {'TV Shows': {frozenset({('tvdb', '253573'), ('title', 'American Gods'), ('imdb', 'tt1898069'), ('tmdb', '46639'), ('locations', ('American Gods',))}): {1: [{'title': 'The Bone Orchard', 'locations': ('American Gods.S01E01.The Bone Orchard.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017734', 'tmdb': '1276153', 'tvdb': '5088686'}, {'title': 'The Secret of Spoons', 'locations': ('American Gods.S01E02.The Secret Of Spoons.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5062946', 'tmdb': '1304552', 'tvdb': '6024171'}, {'title': 'Head Full of Snow', 'locations': ('American Gods.S01E03.Head Full Of Snow.HDTV-720p Proper.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5280330', 'tmdb': '1304553', 'tvdb': '6082595'}, {'title': 'Git Gone', 'locations': ('American Gods.S01E04.Git Gone.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665566', 'tmdb': '1304554', 'tvdb': '6082596'}, {'title': 'A Prayer for Mad Sweeney', 'locations': ('American Gods.S01E07.A Prayer For Mad Sweeney.Bluray-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5665584', 'tmdb': '1308220', 'tvdb': '6083751'}, {'title': 'Come to Jesus', 'locations': ('American Gods.S01E08.Come To Jesus.WEBRip-720p.mkv',), 'status': {'completed': True, 'time': 0}, 'imdb': 'tt5017740', 'tmdb': '1308221', 'tvdb': '6083752'}]}}}
[INFO]: Sync from jellyfin -> emby is disabled
[INFO]: Sync from emby -> jellyfin is disabled
Average time: 2.47824029403273
Looping in 720.0
swdwi2 commented 2 months ago

Works fine Emby to Plex though

MRobi1 commented 2 months ago

Quick tip for posting settings and logs...

After you paste, highlight the text and click the icon that looks like <>. It will put it in a code box with original formatting and is so much easier to read.

swdwi2 commented 2 months ago

Quick tip for posting settings and logs...

After you paste, highlight the text and click the icon that looks like <>. It will put it in a code box with original formatting and is so much easier to read.

Thanks for the tip. Your right much better.

swdwi2 commented 1 month ago

hmm it should definetely pick it up if you marked it as played in plex manually, im not doing any checks to see if it was actually watched or not just that it was marked as watched. Is it a show? It might be an issue related to #167

Thanks, I've done extensive testing with the Emby version and can report that it works as expected. Was having some problems initially which I traced to finger trouble. I had changed the Emby port so it could co exist with jellyfin but neglected to change the remote port as well.

Many thanks for your effort writing this.

Do you intend to merge the Emby version with the main branch?

arcoast commented 1 month ago

New user here, I've just set up the emby branch to sync from Emby to Plex and all seems to be working as expected.

luigi311 commented 1 month ago

thats great to hear! Sorry been out on vacation and just got back. I merged it into dev since it seems to be working for you guys. Ill wait for #171 to be merged into dev and then create a new release that way you guys can swap back to latest afterwards.

luigi311 commented 1 month ago

This has been merged in to main so you guys can now swap back to latest!