If you go to [email protected] and scroll you’ll see some of the posts have a youtube thumbnail image, but not all.

I wanna post YouTube videos, but no one seems to engage much without a thumbnail, which makes sense, but I’m not sure what would result in the post actually having a thumbnail

If anyone has advice or guidance I’d appreciate it :) Thanks!

EDIT: so far it seems like it’s potentially a combination of what version of lemmy the posters account is running, and how that instance is configured…

    • @[email protected]
      link
      fedilink
      English
      110 minutes ago

      Or shift+right click on the unplayed video and copy image link to get the thumbnail.

      I’ve been doing it manually because otherwise nobody watches it.

  • Andrew
    link
    fedilink
    English
    145 hours ago

    It depends on what youtube is willing to provide. It seems more likely to provide a thumbnail if you use a youtu.be link than a youtube.com link.

    Instances running Lemmy from 0.19.4 onwards (I think) provide the option of providing a separate thumbnail manually, which is useful, but your instance is on 0.19.3.

    • CrisOP
      link
      English
      34 hours ago

      I tried again with a youtu.be link and unfortunately no dice, so it seems it might be an instance issue, I’m gonna go take a look at the videos comm and see if there’s anyone on .world who posted and got a thumbnail. I might also try again from my .ee account

    • CrisOP
      link
      English
      2
      edit-2
      4 hours ago

      Okay so it seems like the only people getting thumbnails on [email protected] are from shitjustworks.

      No dice on using my .ee account though, that didn’t seem to result in a thumbnail either. But in the app I’m using, when on my .ee account there’s a field to put in a thumbnail URL which is interesting

    • CrisOP
      link
      English
      34 hours ago

      Interesting, so I guess maybe the reason shitjustsworks users posting on [email protected] are showing up as thumbnails for me is because their instance is getting the thumbnail and that’s federating to me on .world

  • @[email protected]
    link
    fedilink
    English
    95 hours ago

    It’s because Lemmy can’t fetch YouTube thumbnails. I swear it used to fetch thumbnail and title automatically before, hmm

    • flamingos-cant
      link
      fedilink
      English
      8
      edit-2
      4 hours ago

      It’s because YouTube puts a bunch of JavaScript at the start of the file (1MiB) before the opengraph tags and Lemmy only fetches the first 512 KiB (a fix was merged a couple days ago).

      • @[email protected]
        link
        fedilink
        English
        5
        edit-2
        4 hours ago

        If you don’t put a whopping 1MB of JavaScript in your website, you’re doing web development wrong.

        /s

        • Enoril
          link
          fedilink
          English
          218 minutes ago

          Don’t forget to add also the 2856 partners intrusive code lines and cookies to have a “better experience”

    • @TehBamski
      link
      English
      75 hours ago

      I can testify to this. I was there. I was there when Lemmy so valiantly fetched ye old YouTube thumbnails.

    • CrisOP
      link
      English
      14 hours ago

      deleted by creator

  • @[email protected]
    link
    fedilink
    English
    2
    edit-2
    4 hours ago

    So I take a peek at the Lemmy’s source code.

    When you see a thumbnail and title of a URL (including YouTube video links) on Lemmy, what happens is that Lemmy server fetched the website HTML file and get the og:title and og:image (this convention is called OpenGraph protocol [1]) located inside <head> HTML tag.

    For example, for this video https://www.youtube.com/watch?v=MbYuEEU5e50, the OpenGraph metadata inside the HTML looks like this:

    <meta property="og:title" content="Flume - Lose It feat. Vic Mensa">
    <meta property="og:image" content="https://i.ytimg.com/vi/MbYuEEU5e50/maxresdefault.jpg">
    

    Try opening the “Create Post” page, then enter URL of a YouTube video. You might notice that a loading spinner will appear. During this, the frontend of Lemmy is actually creating a request to /api/v3/post/site_metadata?url=[insert your URL]. When the backend side of Lemmy receives the request from front end, it will run this code [2] to fetch the HTML and parse it to find the OpenGraph metadata. If the metadata is found, the backend will return it to front end, and you willl see recommended title and the “Thumbnail URL” field should be filled.

    In theory, this should work fine, regardless of any website. I personally tried to view the HTML code of a YouTube video and the HTML file indeed contains OpenGraph metadata.

    But it doesn’t for YouTube videos in Lemmy somehow. And I’m not sure.

    I’m suspecting YouTube thought that Lemmy servers are bots and because of that instead of receiving the HTML file of a YouTube video, instead it received a HTML file of a captcha page. I think I’m gonna try contacting admins of my instance to see whether YouTube URL works or not.


    1. https://ogp.me/ ↩︎

    2. https://github.com/LemmyNet/lemmy/blob/a2a5cb091a2892793179760275cb56529891bcb6/crates/api_common/src/request.rs#L203 ↩︎

    • @[email protected]
      link
      fedilink
      English
      2
      edit-2
      4 hours ago

      Also, this is a good tip in general:

      You can’t fetch title and thumbnail for YouTube links that starts with youtu.be. This applies not only in Lemmy, but other websites too, for example Twitter (even before Elon’s era).

      This is, IMO due to the link doesn’t really contain HTML and OpenGraph metadata. It only redirects you. If you try cURL-ing the youtu.be link, you will see that it doesn’t have a response body, only some header including Location header that will tell you where to redirect. The response code itself is 301.

      • CrisOP
        link
        English
        14 hours ago

        There are people on shitjustworks posting youtu.be links on [email protected] that do have thumbnails, so whatever they’re doing doesn’t seem to have that problem

        My .ee account has a field to put in a thumbnail URL, so other comments in this thread are kinda leading me to believe it may be a combination of instance version, and how the instance is configured

          • CrisOP
            link
            English
            14 hours ago

            Thats a super helpful site, thank you! If nothing else now I can remake my post from my .ee account and add the thumbnail manually

    • CrisOP
      link
      English
      14 hours ago

      Thats a very helpful response, thank you!

      It seems like the only people getting thumbnails on [email protected] are from shitjustworks (how fitting lol)

      • @[email protected]
        link
        fedilink
        English
        2
        edit-2
        4 hours ago

        See the other reply: seems that it was caused by Lemmy backend only fetches the first 512kb of the HTML, meanwhile YouTube puts bunch of JavaScript in the beginning of the HTML

        Here’s the fix that was only merged couple days ago apparently, https://github.com/LemmyNet/lemmy/pull/5266

        Crazy, right

        • CrisOP
          link
          English
          14 hours ago

          Interesting…

    • CrisOP
      link
      English
      14 hours ago

      Interesting, I guess maybe boost separately fetches thumbnails for link posts that are missing them…

    • CrisOP
      link
      English
      3
      edit-2
      4 hours ago

      Most of them have it for me, but I just posted a video to the Souls-like comm and it doesn’t have one, which is really what I’m trying to fix :/