• normalexit@lemmy.world
    link
    fedilink
    arrow-up
    16
    ·
    3 days ago

    From the NewPipe FAQ:

    Does NewPipe use the YouTube API?

    No. NewPipe does not rely on the YouTube API, as using it requires an API key bringing with it specific regulations and restrictions. YouTube would then have more options of tracking your YouTube usage at their disposal. Therefore, NewPipe Extractor gets the information by parsing YouTube websites.

    • shrugal@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      3 days ago

      So that would mean it should be counted the same as a visit from a regular user, no? Unless YT tries to detect and filter out NP visits specifically.

      • normalexit@lemmy.world
        link
        fedilink
        arrow-up
        7
        ·
        edit-2
        3 days ago

        Using the API “correctly” is likely a requirement for the view to be counted. Their media extractor circumvents that by intentionally not using their API and instead parsing their website for content. Then it establishes a connection to the stream using an internal API.

        If you want a view to count you need to use an official client (or at least one with a legit API key). It not counting is a feature with NewPipe.

        (Google probably knows the content is being streamed, but if you could just create synthetic views with a third party project, that would be bad for YouTube stats)

        • rudyharrelson@lemmy.radio
          link
          fedilink
          arrow-up
          5
          ·
          edit-2
          3 days ago

          If you want a view to count you need to use an official client

          I would think that parsing the website would count the same as any browser-based page load, since parsing the website requires first fetching the page (probably using something like wget or curl under the hood). I dunno if non-logged-in page loads are generally counted toward the overall view count on a given video, though.

          • dan@upvote.au
            link
            fedilink
            arrow-up
            6
            ·
            3 days ago

            Page loads don’t count as a view though, because otherwise things like search engine indexing would count as a view. It’s only considered a view if the video is watched for at least 30 seconds.

            • shrugal@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              6 hours ago

              Search engines are easy to detect and filter out though, they have very distinct UA strings.

              • dan@upvote.au
                link
                fedilink
                arrow-up
                1
                ·
                6 hours ago

                That was just an example. There’s all sorts of automated traffic that shouldn’t count as a view. A human loading the page but not actually playing the video (like if they disable auto playing of videos) shouldn’t count as a view either.

          • normalexit@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            3 days ago

            They parse the website for feeds, search, etc. It is a java library and it looks like they are using jsoup to parse the dom.

            Using the website and actually establishing a connection to a video are separate things. The search side of things is essentially a headless browser that is just aimlessly looking for videos. As far as YouTube is concerned nothing is played during this process.

            When you decide to commit and watch a video, the NewPipe client establishes a connection to the video stream, which doesn’t count for YouTube stats.

            YouTube counts a view for long-form content when a viewer watches for at least 30 seconds, while Shorts views count each time a short begins to play or replay, with no minimum watchtime. Valid views must come from human users, with limitations on how often the same person can generate views within a short timeframe to prevent fraud from bots or artificial inflation.