Jump to content

Leaderboard

  1. Luke

    Luke

    Administrators


    • Points

      12

    • Posts

      268621


  2. softworkz

    softworkz

    Emby Dev's


    • Points

      11

    • Posts

      10506


  3. rbjtech

    rbjtech

    Top Contributor


    • Points

      9

    • Posts

      9140


  4. Happy2Play

    Happy2Play

    Top Contributor


    • Points

      8

    • Posts

      42985


Popular Content

Showing content with the highest reputation on 04/05/23 in all areas

  1. On linux, if you're running a LONG library scan and your curious where Emby is at in the process, the following is quite helpful. Hope some find it useful. g_str="Info MediaProbeManager: ProcessRun 'ffprobe' Execute: /opt/emby-server/bin/ffprobe -i file:" cat /var/lib/emby/logs/embyserver.txt |grep "$g_str" |tail -5 |awk -F'\"' '{print $2}' And if you want to chop off some of the path to make it display nicer, you can use something like this below. You'll have to adjust the $4 at the end to the directory of the path you want to cut. cat /var/lib/emby/logs/embyserver.txt |grep "$g_str" |tail -5 |awk -F'\"' '{print $2}'| awk -F'\/' '{print substr($0,index($0,$4))}'
    2 points
  2. Hi everyone! I'm looking to get some more support from Emby community on getting PMM (Plex Meta Manager) to support Emby. This is an Collection / Poster Tool that will auto-populate collections based on criteria, for example TMDB Collections List. IMDB Collections List. Trakt Lists Etc... You can also overlay things on top of the posters. They haven't started but I suspect its API related so anymore that whats to help then lets get this done Check it out and if you want to throw in some support, Sponsor! (This isn't me, i'm just plugging) https://metamanager.wiki/en/latest/ & https://github.com/sponsors/meisnate12 Discord is running: https://discord.gg/xwJ9kfaJ & Feature Request for Emby https://features.metamanager.wiki/features/p/emby-jellyfin-support
    1 point
  3. First crack at this... using powershell for now since it's my native language. Attempting to create a composite movie rating leveraging the standard set of ratings sources, while adding weighting measures to various community ratings. Definitely some more conditions and logic will be needed for scenarios where subsets of ratings sources are available, but the weighting math should hopefully mitigate a chunk of that. Feedback welcome! $moviename = "Monty Python and the Holy Grail" $rtaudiencerating = 95 $rtaudiencecount = 645107 $rtcriticrating = 98 $rtcriticcount = 82 $tmdbrating = 7.8 $tmdbcount = 5028 $traktrating = 8.3 $traktcount = 11089 $metacriticrating = 91 $imdbrating = 8.2 $imdbcount = 547137 $ratings = @{} $null = $ratings.Add('tomatometerallaudience',@{'MaxValue'=100;'rating'=$rtaudiencerating;'weight'=10;'votecount'=$rtaudiencecount } ) $null = $ratings.Add('tomatometerallcritics',@{'MaxValue'=100;'rating'=$rtcriticrating;'weight'=10;'votecount'=$rtcriticcount} ) $null = $ratings.Add('themoviedb',@{'MaxValue'=10;'rating'=$tmdbrating;'weight'=20;'votecount'=$tmdbcount} ) $null = $ratings.Add('trakt',@{'MaxValue'=10;'rating'=$traktrating;'weight'=20;'votecount'=$traktcount} ) $null = $ratings.Add('metacritic',@{'MaxValue'=100;'rating'=$metacriticrating;'weight'=20;'votecount'=0} ) $null = $ratings.Add('imdb',@{'MaxValue'=10;'rating'=$imdbrating;'weight'=20;'votecount'=$imdbcount} ) $community = @{} $totalcommunityvotes = $ratings['imdb'].votecount + $ratings['trakt'].votecount + $ratings['themoviedb'].votecount + $ratings['tomatometerallaudience'].votecount $imdbpercentvotes = [math]::Round( $ratings['imdb'].votecount / $totalcommunityvotes,3) $traktpercentvotes = [math]::Round( $ratings['trakt'].votecount / $totalcommunityvotes,3) $tmdbpercentvotes = [math]::Round( $ratings['themoviedb'].votecount / $totalcommunityvotes,3) $rtpercentvotes = [math]::Round( $ratings['tomatometerallaudience'].votecount / $totalcommunityvotes,3) $communitysum = $imdbpercentvotes + $traktpercentvotes + $tmdbpercentvotes + $rtpercentvotes if ( $communitysum -gt 1 ) { $rtpercentvotes = $rtpercentvotes - ($communitysum - 1) } elseif ( $communitysum -lt 1 ) { $imdbpercentvotes = $imdbpercentvotes + (1 - $communitysum) } $adjtraktcount = 1; if ( $traktpercentvotes -eq 0 -and $ratings['trakt'].votecount -ne 0 ) { $adjtraktcount = 100 } elseif ( $traktpercentvotes -lt 0.002 ) { $adjtraktcount = 100 } elseif ( $traktpercentvotes -lt 0.004 ) { $adjtraktcount = 80 } elseif ( $traktpercentvotes -lt 0.006 ) { $adjtraktcount = 60 } elseif ( $traktpercentvotes -lt 0.008 ) { $adjtraktcount = 50 } elseif ( $traktpercentvotes -lt 0.010 ) { $adjtraktcount = 30 } elseif ( $traktpercentvotes -lt 0.100 ) { $adjtraktcount = 10 } $adjtmdbcount = 1; if ( $tmdbpercentvotes -eq 0 -and $ratings['themoviedb'].votecount -ne 0 ) { $adjtmdbcount = 100 } elseif ( $tmdbpercentvotes -lt 0.002 ) { $adjtmdbcount = 100 } elseif ( $tmdbpercentvotes -lt 0.004 ) { $adjtmdbcount = 80 } elseif ( $tmdbpercentvotes -lt 0.006 ) { $adjtmdbcount = 60 } elseif ( $tmdbpercentvotes -lt 0.008 ) { $adjtmdbcount = 50 } elseif ( $tmdbpercentvotes -lt 0.010 ) { $adjtmdbcount = 30 } elseif ( $tmdbpercentvotes -lt 0.100 ) { $adjtmdbcount = 10 } $adjtotalcommunityvotes = $ratings['imdb'].votecount + ($ratings['trakt'].votecount*$adjtraktcount) + ($ratings['themoviedb'].votecount*$adjtmdbcount) + $ratings['tomatometerallaudience'].votecount $adjimdbpercentvotes = [math]::Round( $ratings['imdb'].votecount / $adjtotalcommunityvotes,3) $adjtraktpercentvotes = [math]::Round( ($ratings['trakt'].votecount * $adjtraktcount) / $adjtotalcommunityvotes,3) $adjtmdbpercentvotes = [math]::Round( ($ratings['themoviedb'].votecount * $adjtmdbcount) / $adjtotalcommunityvotes,3) $adjrtpercentvotes = [math]::Round( $ratings['tomatometerallaudience'].votecount / $adjtotalcommunityvotes,3) $adjcommunitysum = $adjimdbpercentvotes + $adjtraktpercentvotes + $adjtmdbpercentvotes + $adjrtpercentvotes if ( $adjcommunitysum -gt 1 ) { $adjrtpercentvotes = $adjrtpercentvotes - ($adjcommunitysum - 1) } elseif ( $adjcommunitysum -lt 1 ) { $adjimdbpercentvotes = $adjimdbpercentvotes + (1 - $adjcommunitysum) } $null = $community.Add('imdb',@{'votecount'=$ratings['imdb'].votecount;'percentage'=$imdbpercentvotes;'adjpercent'=$adjimdbpercentvotes } ) $null = $community.Add('trakt',@{'votecount'=$ratings['trakt'].votecount;'percentage'=$traktpercentvotes;'adjpercent'=$adjtraktpercentvotes } ) $null = $community.Add('themoviedb',@{'votecount'=$ratings['themoviedb'].votecount;'percentage'=$tmdbpercentvotes;'adjpercent'=$adjtmdbpercentvotes } ) $null = $community.Add('tomatometerallaudience',@{'votecount'=$ratings['tomatometerallaudience'].votecount;'percentage'=$rtpercentvotes;'adjpercent'=$adjrtpercentvotes } ) $communityweight = 70; if ( !$ratings.ContainsKey('metacritic') ) { $communityweight = $communityweight + 20 } if ( !$ratings.ContainsKey('tomatometerallcritics') ){ $communityweight = $communityweight + 10 } $scoring = @{}; $scoringtable = New-Object System.Collections.ArrayList $ratings.GetEnumerator() | ForEach-Object { $current = $_; $source = $current.Name $sourcetype = $null; if ( $source -in ('tomatometerallcritics','metacritic') ) { $sourcetype = "Critic" } else { $sourcetype = "Community" } $sourcerating = $current.Value.rating $sourcemax = $current.Value.MaxValue if ( $sourcemax -eq 5 ) { $adjustedmax = $sourcemax*20; $adjustedrating = $sourcerating*20 } elseif ( $sourcemax -eq 10 ) { $adjustedmax = $sourcemax*10; $adjustedrating = $sourcerating*10 } else { $adjustedmax = $sourcemax; $adjustedrating = $sourcerating } $sourcevotecount = $current.Value.votecount $communitylookup = $null; $communitylookup = $community[$source] $communityvotepercent = $communitylookup.percentage $communityadjvotepercent = $communitylookup.adjpercent $weighting = 0; if ( $sourcetype -eq "Community" ) { $weighting = $communityadjvotepercent * $communityweight } else { $weighting = $current.Value.weight } $newcompositerating = ($adjustedrating * ($weighting/100 ) ) $null = $scoring.Add($source,@{'SourceType'=$sourcetype;'SourceVoteCount'=$sourcevotecount;'SourceRating'=$sourcerating;'SourceMax'=$sourcemax;'AdjustedRating'=$adjustedrating;'AdjustedMax'=$adjustedmax;'CommunityVotePrc'=$communityvotepercent;'AdjCommunityVotePrc'=$communityadjvotepercent; 'Weight'=$weighting; 'NewRating'= $newcompositerating } ) $null = $scoringtable.Add([pscustomobject]@{'Source' =$source;'SourceType'=$sourcetype;'SourceVoteCount'=$sourcevotecount;'SourceRating'=$sourcerating;'SourceMax'=$sourcemax;'AdjustedRating'=$adjustedrating;'AdjustedMax'=$adjustedmax;'CommunityVotePrc'=$communityvotepercent;'AdjCommunityVotePrc'=$communityadjvotepercent; 'Weight'=$weighting; 'NewRating'= $newcompositerating } ) } #$highestweight = $scoringtable | Sort-Object Weight -Descending | Select-Object -First 1 if ( ($scoringtable.Weight | Measure-Object -Sum).Sum -gt 100.1 ) { Write-Warning "Weighting calculated over 100.1%" } elseif ( ($scoringtable.Weight | Measure-Object -Sum).Sum -lt 99.9 ) { Write-Warning "Weighting calculated under 99.9%" } $NewRating = [math]::Round( (($scoringtable.NewRating | Measure-Object -Sum).Sum/10),1) Write-Output "","" Write-Output "Current movie is $($moviename)." Write-Output "Rotten Tomatoes Critic rating is $($rtcriticrating) out of 100." Write-Output "Rotten Tomatoes Community rating is $($rtaudiencerating) out of 100." Write-Output "Metacritic rating is $($metacriticrating) out of 100." Write-Output "Trakt community rating is $($traktrating) out of 10." Write-Output "IMDB community rating is $($imdbrating) out of 10." Write-Output "The MovieDB rating is $($tmdbrating) out of 10." Write-Output "","New composite rating is $($NewRating) out of 10."
    1 point
  4. Dashnoard>three-dot menu next to your server name>View Server Info
    1 point
  5. My suggestion is related to this: Emby Theme Songs & Videos It'd be great if it would be possible to store them somewhere separately, possible in the same location, where the thumbnails, subtitles etc. are already stored. Reasons basically are, that I really don't want to mess up my media folder and that I'd rather not have the hard drives spin up each time I hover over a video, as the thumbnails are being stored separately on a faster SSD. I've recently bought the paid plugins, and it's unfortunate to see that they're useless for me, because of a feature that has fallen back over the years.
    1 point
  6. You need to manually delete Top Picks library from Settings>Library tab after plugin uninstall.
    1 point
  7. Thanks, I tend to only keep up with official release versions as beta is ever changing and often find myself chasing my tail. I'll take a look properly over the next week or so.
    1 point
  8. Using the standard Android app works perfectly. I can play PGS subs without having to transcode the video.
    1 point
  9. They want theme music/videos not to be saved/supported only in media folders/next to media, but in server metadata folder (or alternate location).
    1 point
  10. Du solltest die Theme Datei im entsprechenden Film Ordner finden. Sprich, wenn vorher keine theme da war und jetzt schon hat es funktioniert. Wegen den fehlenden Einträgen habe ich bereits etwas im Plugin Bereich geschrieben.
    1 point
  11. yes, everything its ok now , thank you
    1 point
  12. As denoted in the KB article: https://support.emby.media/support/solutions/articles/44001159102-movie-naming
    1 point
  13. everything seems to be back to normal after updates thank you so much both of you @Lukeand @quickmicfor your awesome work. much appreciated
    1 point
  14. thanks, will try and feedback in few days/weeks
    1 point
  15. 1 point
  16. Because you haven't told it to. Emby is only listening to 8096 and 8920 internally - SWAG is the one listening publicly on 80/443 but those are blocked so you opened 8920 to SWAG instead. I would look at seeing if your ISP can make an exception for 80/443 otherwise you will need to use other ports, but you'll always have to specify a port externally and adjust Emby's public ports accordingly.
    1 point
  17. Is your ISP possibly blocking something, do you get success on both ports 80 and 443 here: https://canyouseeme.org/ ?
    1 point
  18. doh! I'll have a play - thanks for the responses.
    1 point
  19. You would need /openapi /openapi.json /swagger /swagger.json /emby/openapi /emby/openapi.json /emby/swagger /emby/swagger.json But that's kind of pointless, because none of those URLs is needed to access your server via API and neither does it prevent your server from being recognized as Emby server.
    1 point
  20. No, this is separate. How do you "reject swagger"?
    1 point
  21. The reasons why this is a bit complicated are these: The swagger/openapi spec is intended to describe rest api services in the cloud that are reachable via a fixed defined URL, but in case of Emby, there are at multiple possible URLs how one might can access the server: localhost LAN IP LAN host/dns name (with or without SSL) Public IP Public host/dns name (with or without SSL) And for all these cases, there may be different ports in place. Usually Emby 'knows' all these from the network configuration where you can define this. But at the time when I had done all this, OpenAPI (Swagger 3.0) was just brand-new and Swagger (2.0) doesn't allow specifying multiple server URLs. Yet we wanted to support 2.0 as well, so I came to the "trick" of serving the swagger JSON document dynamically, which works in a way that the server uses the http(s) through which the swagger.json or openapi.json documents are requested, to build the server URL and put it into the json doc before it's being served. This way, the URL in the doc is (almost) always the right one. OpenAPI allow specifying multiple URLs (that's why you see a dropdown), but I chose not to populate them from the server configuration for two reasons: Security The swagger/openapi docs are accessible without authentication and adding all the server urls to the doc would reveal your internal ports and IP addresses Auto-Authorization The hosted swagger UI (https://swagger.emby.media/) has a few modifications. One of them is automatic authorization. When you go through the link from the dashboard page, it conveys an api_key with which you are authorized automatically and you're ready to try out the APIs. This wouldn't work when there would be multiple URLs I guess I made it all a bit too convenient. After all, it was just meant to be an API documentation for developers as we didn't have any at that time (until recently: https://dev.emby.media/reference/RestAPI.html), When it doesn't work perfectly in a few edge cases, then I wouldn't see that as a critical thing as there are multiple easy ways to deal with it: Just save the corrected URL somewhere and use it instead of the API link Download the OpenAPI document, enter the correct server url and save it wherever you want (on some web server, web storage, or even put it somewhere under 'dashboard-ui' in the Emby server installation, so you can access it through Emby) Save it locally and load it into any of the swagger.io tools or postman or whatever... For 2 and 3, you'll need to authorize manually by entering the api_key, but that's not really a big thing.
    1 point
  22. Agreed - if you add the https into the URL - swagger then using it ongoing (as the listed 'server').
    1 point
  23. Yep - that's what I said in a previous reply ... https://emby.media/community/index.php?/topic/110642-swagger-api-help/&do=findComment&comment=1241449
    1 point
  24. With the latest Beta update is the list of the downloaded videos and uploaded empty. When you call the plugin settings it spins only but the lists are staying empty.
    1 point
  25. Hmm. Das da nichts mehr auftaucht kann auch mit der aktuellen Beta zusammen hängen. Ist bei mir nämlich seit 4.8.0.25 auch so. Dachte erst, dass das wieder nur bei mir so ist. Ich werde mal einen treat dazu im Plugin Forum aufmachen. Wichtiger für Dein Problem ist ob es theme Dateien gibt. Sind welche bzw. neue vorhanden?
    1 point
  26. But not when you add the 's' here, right?
    1 point
  27. Refresh Search for Missing w/replace images
    1 point
  28. I just add 0.0.1.8 of the plugin to page 1. It fixes many bugs, including the problem using recursion on music libraries. Vic p.s. @MBSkiI will post a note tomorrow explaining how to filter and use recursion.
    1 point
  29. TheTVDB is the first, which matches Mr. Reaper's link, which has the correct episodes. I wonder how the recordings could get messed up like that. Next time don't take so long to respond!
    1 point
  30. There's no movie American Pie 1 (1999). Remove that "1", rescan. What are those ****? Do they stand for Year or?
    1 point
  31. Here's a good place to follow exoplayer development: https://github.com/google/ExoPlayer
    1 point
  32. I know three.js. (webgl) pretty well.
    1 point
  33. Right. I'm going to release a version. To the catalog today. Unfortunately, top picks currently will not run on beta server.
    1 point
  34. Yeah, tools I may use on Video includes Handbrake, ffmpeg, mkvtoolnix, Subtitle Editor, Audacity, TS Muxer, MediaInfo, makemkv, bd3d2mk3d, bdsup2sub++, dolby media encoder, adobe audition, vobsub2srt. Just depends what I am doing (like saving my 3d blurays to Emby take a number of these), for most things, likely just an encode. I decided long ago any idea of "losing quality" was all in my head, could never tell side by side. I used to use flac, but, wanted instead to use Apple standard formats as that's what I use. Thus, nothing seems to ever transcode (whether in player or via emby). But I don't have any 4k stuff yet (maybe 1).
    1 point
  35. There is no violence being promoted against trans & liberals. The only thing I see is those attacking the religious beliefs of others & calling them "stupid for praying to an imaginary sky god that doesn't exist". I see attacks on people promoting free speech & attempts to shut down the civil rights of people who have different opinion to remove their free speech rights simply for not agreeing with the mob. Is that going to what is supported here? Go with the mob & say yes people who are religious & those who have different opinions must have their speech shut down? If so that is just sad for US citizens to think that those who don't agree with them should have their civil rights of free speech removed which is what the USA was founded on, not to mention the right of freedom of religion to practice religion how they like. Sounds sad to me. If you don't like someone why not simply mute them & move on? If you don't like someone, why drag everyone else in to your drama of not liking the person?
    1 point
  36. Apologies for the delay. We are looking into this. Thanks.
    1 point
  37. We're on 4.7.9 and see this same issue. Forcing a full metadata update (with replace existing images) is the only way we can get chapter images. This task appears to do nothing other than generate these
    1 point
  38. @Luke it looks like there is no way of locking chapters to stop metadata refresh wiping all chapter info. Can we get a lock chapters option?
    1 point
  39. Is it? I have the same problem. But this trick needs to be done every time? Of so, it ain’t excellent at all. I hope I get trough all this kind of stuff/problems before my trial runs out. the plug-in is now useless…….
    0 points
×
×
  • Create New...