Greasy Fork

Streaming links on letterboxd

10/31/2023, 1:34:25 PM

// ==UserScript==
// @name        Streaming links on letterboxd
// @namespace   https://greasyfork.org/fr/users/829268
// @match       https://letterboxd.com/film/*
// @version     2.0
// @author      liliantdn: https://greasyfork.org/users/829268
// @description 10/31/2023, 1:34:25 PM
// @license     GPL-3.0-only
// ==/UserScript==
function getFirstGroup(regexp, str) {
  return Array.from(str.matchAll(regexp), m => m[1]);
}
const imdbRegex = /(?:https?:\/\/)?(?:www\.)?imdb\.com\/title\/(tt[0-9]*)\/?/g;
const imdbId = getFirstGroup(imdbRegex,$('.micro-button[data-track-action="IMDb"]').attr("href"));
const tmdbRegex = /(?:https?:\/\/)?(?:www\.)?themoviedb\.org\/movie\/([0-9]*)\/?/g;
const tmdbId = getFirstGroup(tmdbRegex,$('.micro-button[data-track-action="TMDb"]').attr("href"));
console.log("IMDB ID:"+imdbId);
$("head").append(`
<style>
  .stream-wrap{
    border-radius: 3px;
    gap:4px;
    display:flex;
    flex-wrap:wrap;
    position:relative;
    width:100%;
    margin-bottom:20px;
    margin-top:10px;
  }
  .stream-wrap .stream-link{
    width:100%;
    font-size:12px;
    padding:10px 15px;
    display:block;
  }
  .stream-wrap .stream-link + .stream-link {
    border-top: 1px solid #202830;
  }
</style>
`);
$('#userpanel').before(`
<span>Stream:</span><br>
<div class="stream-wrap">
  <a class="text-slug" href="stremio://detail/movie/${imdbId}/${imdbId}">Stremio</a>
  <a class="text-slug" href="https://web.stremio.com/#/detail/movie/${imdbId}/${imdbId}" target="_blank">Stremio web</a>
  <a class="text-slug" href="https://movie-web.app/media/tmdb-movie-${tmdbId}" target="_blank">Movie-web</a>
  <a class="text-slug" href="https://multiembed.mov/?video_id=${tmdbId}&tmdb=1" target="_blank">SuperEmbed</a>
  <a class="text-slug" href="https://vidsrc.me/embed/movie?tmdb=${tmdbId}" target="_blank">VidSrc</a>
  <a class="text-slug" href="https://blackvid.space/embed?tmdb=${tmdbId}" target="_blank">BlackVid</a>
</div>
`)