diff --git a/javadoc/allclasses-index.html b/javadoc/allclasses-index.html index 4099206e0..2b601b7cb 100644 --- a/javadoc/allclasses-index.html +++ b/javadoc/allclasses-index.html @@ -3,7 +3,7 @@ -All Classes (NewPipeExtractor v0.24.4) +All Classes (NewPipeExtractor v0.24.5) @@ -21,13 +21,13 @@ + + + + + + + + + +
+ +
+ +
+
+ +

Class InnertubeClientRequestInfo.ClientInfo

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    InnertubeClientRequestInfo
    +
    +
    +
    public static final class InnertubeClientRequestInfo.ClientInfo
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    + +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        clientName

        +
        @Nonnull
        +public java.lang.String clientName
        +
      • +
      + + + +
        +
      • +

        clientVersion

        +
        @Nonnull
        +public java.lang.String clientVersion
        +
      • +
      + + + +
        +
      • +

        clientScreen

        +
        @Nonnull
        +public java.lang.String clientScreen
        +
      • +
      + + + +
        +
      • +

        clientId

        +
        @Nullable
        +public java.lang.String clientId
        +
      • +
      + + + +
        +
      • +

        visitorData

        +
        @Nullable
        +public java.lang.String visitorData
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/javadoc/org/schabi/newpipe/extractor/services/youtube/InnertubeClientRequestInfo.DeviceInfo.html b/javadoc/org/schabi/newpipe/extractor/services/youtube/InnertubeClientRequestInfo.DeviceInfo.html new file mode 100644 index 000000000..c53cc589f --- /dev/null +++ b/javadoc/org/schabi/newpipe/extractor/services/youtube/InnertubeClientRequestInfo.DeviceInfo.html @@ -0,0 +1,347 @@ + + + + + +InnertubeClientRequestInfo.DeviceInfo (NewPipeExtractor v0.24.5) + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class InnertubeClientRequestInfo.DeviceInfo

+
+
+ +
+
    +
  • +
    +
    Enclosing class:
    +
    InnertubeClientRequestInfo
    +
    +
    +
    public static final class InnertubeClientRequestInfo.DeviceInfo
    +extends java.lang.Object
    +
  • +
+
+
+
    +
  • + +
    + +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        platform

        +
        @Nonnull
        +public java.lang.String platform
        +
      • +
      + + + +
        +
      • +

        deviceMake

        +
        @Nullable
        +public java.lang.String deviceMake
        +
      • +
      + + + +
        +
      • +

        deviceModel

        +
        @Nullable
        +public java.lang.String deviceModel
        +
      • +
      + + + +
        +
      • +

        osName

        +
        @Nullable
        +public java.lang.String osName
        +
      • +
      + + + +
        +
      • +

        osVersion

        +
        @Nullable
        +public java.lang.String osVersion
        +
      • +
      + + + +
        +
      • +

        androidSdkVersion

        +
        public int androidSdkVersion
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/javadoc/org/schabi/newpipe/extractor/services/youtube/InnertubeClientRequestInfo.html b/javadoc/org/schabi/newpipe/extractor/services/youtube/InnertubeClientRequestInfo.html new file mode 100644 index 000000000..25c535375 --- /dev/null +++ b/javadoc/org/schabi/newpipe/extractor/services/youtube/InnertubeClientRequestInfo.html @@ -0,0 +1,411 @@ + + + + + +InnertubeClientRequestInfo (NewPipeExtractor v0.24.5) + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class InnertubeClientRequestInfo

+
+
+ +
+
    +
  • +
    +
    public final class InnertubeClientRequestInfo
    +extends java.lang.Object
    +
  • +
+
+
+ +
+
+ +
+
+
+ + + + diff --git a/javadoc/org/schabi/newpipe/extractor/services/youtube/ItagItem.ItagType.html b/javadoc/org/schabi/newpipe/extractor/services/youtube/ItagItem.ItagType.html index 4a3728cef..4a3ecd84c 100644 --- a/javadoc/org/schabi/newpipe/extractor/services/youtube/ItagItem.ItagType.html +++ b/javadoc/org/schabi/newpipe/extractor/services/youtube/ItagItem.ItagType.html @@ -3,7 +3,7 @@ -ItagItem.ItagType (NewPipeExtractor v0.24.4) +ItagItem.ItagType (NewPipeExtractor v0.24.5) @@ -21,7 +21,7 @@ + + + + + + + + + +
+ +
+ +
+
+ +

Interface PoTokenProvider

+
+
+
+
    +
  • +
    +
    public interface PoTokenProvider
    +
    Interface to provide poTokens to YouTube player requests. + +

    + On some major clients, YouTube requires that the integrity of the device passes some checks to + allow playback. +

    + +

    + These checks involve running codes to verify the integrity and using their result to generate + one or multiple poToken(s) (which stands for proof of origin token(s)). +

    + +

    + These tokens may have a role in triggering the sign in requirement. +

    + +

    + If an implementation does not want to return a poToken for a specific client, it must + return null. +

    + +

    + Implementations of this interface are expected to be thread-safe, as they may be accessed by + multiple threads. +

    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getWebClientPoToken

        +
        @Nullable
        +PoTokenResult getWebClientPoToken​(java.lang.String videoId)
        +
        Get a PoTokenResult specific to the desktop website, a.k.a. the WEB InnerTube client. + +

        + To be generated and valid, poTokens from this client must be generated using Google's + BotGuard machine, which requires a JavaScript engine with a good DOM implementation. They + must be added to adaptive/DASH streaming URLs with the pot parameter. +

        + +

        + Note that YouTube desktop website generates two poTokens: + - one for the player requests poTokens, using the videoId as the minter value; + - one for the streaming URLs, using a visitor data for logged-out users as the minter value. +

        +
        +
        Returns:
        +
        a PoTokenResult specific to the WEB InnerTube client
        +
        +
      • +
      + + + +
        +
      • +

        getWebEmbedClientPoToken

        +
        @Nullable
        +PoTokenResult getWebEmbedClientPoToken​(java.lang.String videoId)
        +
        Get a PoTokenResult specific to the web embeds, a.k.a. the WEB_EMBEDDED_PLAYER + InnerTube client. + +

        + To be generated and valid, poTokens from this client must be generated using Google's + BotGuard machine, which requires a JavaScript engine with a good DOM implementation. They + should be added to adaptive/DASH streaming URLs with the pot parameter. +

        + +

        + As of writing, like the YouTube desktop website previously did, it generates only one + poToken, sent in player requests and streaming URLs, using a visitor data for + logged-out users. poTokens do not seem to be mandatory for now on this client. +

        +
        +
        Returns:
        +
        a PoTokenResult specific to the WEB_EMBEDDED_PLAYER InnerTube client
        +
        +
      • +
      + + + +
        +
      • +

        getAndroidClientPoToken

        +
        @Nullable
        +PoTokenResult getAndroidClientPoToken​(java.lang.String videoId)
        +
        Get a PoTokenResult specific to the Android app, a.k.a. the ANDROID InnerTube client. + +

        + Implementation details are not known, the app uses DroidGuard, a downloaded native virtual + machine ran by Google Play Services for which its code is updated pretty frequently. +

        + +

        + As of writing, DroidGuard seem to check for the Android app signature and package ID, as + non-rooted YouTube patched with reVanced doesn't work without spoofing another InnerTube + client while the rooted version works without any client spoofing. +

        + +

        + There should be only one poToken needed for the player requests, it shouldn't be + required for regular adaptive URLs (i.e. not server adaptive bitrate (SABR) URLs). HLS + formats returned (only for premieres and running and post-live livestreams) in the client's + HLS manifest URL should work without poTokens. +

        +
        +
        Returns:
        +
        a PoTokenResult specific to the ANDROID InnerTube client
        +
        +
      • +
      + + + +
        +
      • +

        getIosClientPoToken

        +
        @Nullable
        +PoTokenResult getIosClientPoToken​(java.lang.String videoId)
        +
        Get a PoTokenResult specific to the iOS app, a.k.a. the IOS InnerTube client. + +

        + Implementation details are not known, the app seem to use something called iosGuard which + should be similar to Android's DroidGuard. It may rely on Apple's attestation APIs. +

        + +

        + As of writing, there should be only one poToken needed for the player requests, it + shouldn't be required for regular adaptive URLs (i.e. not server adaptive bitrate (SABR) + URLs). HLS formats returned in the client's HLS manifest URL should also work without a + poToken. +

        +
        +
        Returns:
        +
        a PoTokenResult specific to the IOS InnerTube client
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/javadoc/org/schabi/newpipe/extractor/services/youtube/PoTokenResult.html b/javadoc/org/schabi/newpipe/extractor/services/youtube/PoTokenResult.html new file mode 100644 index 000000000..e0cc47d59 --- /dev/null +++ b/javadoc/org/schabi/newpipe/extractor/services/youtube/PoTokenResult.html @@ -0,0 +1,375 @@ + + + + + +PoTokenResult (NewPipeExtractor v0.24.5) + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Class PoTokenResult

+
+
+ +
+
    +
  • +
    +
    public final class PoTokenResult
    +extends java.lang.Object
    +
    The result of a supported/successful poToken extraction request by a + PoTokenProvider.
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      java.lang.StringplayerRequestPoToken +
      The poToken of a player request, a Protobuf object encoded as a base 64 string.
      +
      java.lang.StringstreamingDataPoToken +
      The poToken to be appended to streaming URLs, a Protobuf object encoded as a base + 64 string.
      +
      java.lang.StringvisitorData +
      The visitor data associated with a poToken.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      PoTokenResult​(java.lang.String visitorData, + java.lang.String playerRequestPoToken, + java.lang.String streamingDataPoToken) +
      Construct a PoTokenResult instance.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        visitorData

        +
        @Nonnull
        +public final java.lang.String visitorData
        +
        The visitor data associated with a poToken.
        +
      • +
      + + + +
        +
      • +

        playerRequestPoToken

        +
        @Nonnull
        +public final java.lang.String playerRequestPoToken
        +
        The poToken of a player request, a Protobuf object encoded as a base 64 string.
        +
      • +
      + + + +
        +
      • +

        streamingDataPoToken

        +
        @Nullable
        +public final java.lang.String streamingDataPoToken
        +
        The poToken to be appended to streaming URLs, a Protobuf object encoded as a base + 64 string. + +

        + It may be required on some clients such as HTML5 ones and may also differ from the player + request poToken. +

        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        PoTokenResult

        +
        public PoTokenResult​(@Nonnull
        +                     java.lang.String visitorData,
        +                     @Nonnull
        +                     java.lang.String playerRequestPoToken,
        +                     @Nullable
        +                     java.lang.String streamingDataPoToken)
        +
        Construct a PoTokenResult instance.
        +
        +
        Parameters:
        +
        visitorData - see visitorData
        +
        playerRequestPoToken - see playerRequestPoToken
        +
        streamingDataPoToken - see streamingDataPoToken
        +
        Throws:
        +
        java.lang.NullPointerException - if a non-null parameter is null
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/javadoc/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelHelper.ChannelHeader.HeaderType.html b/javadoc/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelHelper.ChannelHeader.HeaderType.html index 8d72f91f0..222c23c4a 100644 --- a/javadoc/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelHelper.ChannelHeader.HeaderType.html +++ b/javadoc/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelHelper.ChannelHeader.HeaderType.html @@ -3,7 +3,7 @@ -YoutubeChannelHelper.ChannelHeader.HeaderType (NewPipeExtractor v0.24.4) +YoutubeChannelHelper.ChannelHeader.HeaderType (NewPipeExtractor v0.24.5) @@ -21,7 +21,7 @@ + + + + + + + + + +
+ +
+ +
+
+ +

Class YoutubeStreamHelper

+
+
+ +
+
    +
  • +
    +
    public final class YoutubeStreamHelper
    +extends java.lang.Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getWebMetadataPlayerResponse

        +
        @Nonnull
        +public static com.grack.nanojson.JsonObject getWebMetadataPlayerResponse​(@Nonnull
        +                                                                         Localization localization,
        +                                                                         @Nonnull
        +                                                                         ContentCountry contentCountry,
        +                                                                         @Nonnull
        +                                                                         java.lang.String videoId)
        +                                                                  throws java.io.IOException,
        +                                                                         ExtractionException
        +
        +
        Throws:
        +
        java.io.IOException
        +
        ExtractionException
        +
        +
      • +
      + + + +
        +
      • +

        getTvHtml5PlayerResponse

        +
        @Nonnull
        +public static com.grack.nanojson.JsonObject getTvHtml5PlayerResponse​(@Nonnull
        +                                                                     Localization localization,
        +                                                                     @Nonnull
        +                                                                     ContentCountry contentCountry,
        +                                                                     @Nonnull
        +                                                                     java.lang.String videoId,
        +                                                                     @Nonnull
        +                                                                     java.lang.String cpn,
        +                                                                     int signatureTimestamp)
        +                                                              throws java.io.IOException,
        +                                                                     ExtractionException
        +
        +
        Throws:
        +
        java.io.IOException
        +
        ExtractionException
        +
        +
      • +
      + + + +
        +
      • +

        getWebFullPlayerResponse

        +
        @Nonnull
        +public static com.grack.nanojson.JsonObject getWebFullPlayerResponse​(@Nonnull
        +                                                                     Localization localization,
        +                                                                     @Nonnull
        +                                                                     ContentCountry contentCountry,
        +                                                                     @Nonnull
        +                                                                     java.lang.String videoId,
        +                                                                     @Nonnull
        +                                                                     java.lang.String cpn,
        +                                                                     @Nonnull
        +                                                                     PoTokenResult webPoTokenResult,
        +                                                                     int signatureTimestamp)
        +                                                              throws java.io.IOException,
        +                                                                     ExtractionException
        +
        +
        Throws:
        +
        java.io.IOException
        +
        ExtractionException
        +
        +
      • +
      + + + +
        +
      • +

        getWebEmbeddedPlayerResponse

        +
        @Nonnull
        +public static com.grack.nanojson.JsonObject getWebEmbeddedPlayerResponse​(@Nonnull
        +                                                                         Localization localization,
        +                                                                         @Nonnull
        +                                                                         ContentCountry contentCountry,
        +                                                                         @Nonnull
        +                                                                         java.lang.String videoId,
        +                                                                         @Nonnull
        +                                                                         java.lang.String cpn,
        +                                                                         @Nullable
        +                                                                         PoTokenResult webEmbeddedPoTokenResult,
        +                                                                         int signatureTimestamp)
        +                                                                  throws java.io.IOException,
        +                                                                         ExtractionException
        +
        +
        Throws:
        +
        java.io.IOException
        +
        ExtractionException
        +
        +
      • +
      + + + +
        +
      • +

        getAndroidPlayerResponse

        +
        public static com.grack.nanojson.JsonObject getAndroidPlayerResponse​(@Nonnull
        +                                                                     ContentCountry contentCountry,
        +                                                                     @Nonnull
        +                                                                     Localization localization,
        +                                                                     @Nonnull
        +                                                                     java.lang.String videoId,
        +                                                                     @Nonnull
        +                                                                     java.lang.String cpn,
        +                                                                     @Nonnull
        +                                                                     PoTokenResult androidPoTokenResult)
        +                                                              throws java.io.IOException,
        +                                                                     ExtractionException
        +
        +
        Throws:
        +
        java.io.IOException
        +
        ExtractionException
        +
        +
      • +
      + + + +
        +
      • +

        getAndroidReelPlayerResponse

        +
        public static com.grack.nanojson.JsonObject getAndroidReelPlayerResponse​(@Nonnull
        +                                                                         ContentCountry contentCountry,
        +                                                                         @Nonnull
        +                                                                         Localization localization,
        +                                                                         @Nonnull
        +                                                                         java.lang.String videoId,
        +                                                                         @Nonnull
        +                                                                         java.lang.String cpn)
        +                                                                  throws java.io.IOException,
        +                                                                         ExtractionException
        +
        +
        Throws:
        +
        java.io.IOException
        +
        ExtractionException
        +
        +
      • +
      + + + +
        +
      • +

        getIosPlayerResponse

        +
        public static com.grack.nanojson.JsonObject getIosPlayerResponse​(@Nonnull
        +                                                                 ContentCountry contentCountry,
        +                                                                 @Nonnull
        +                                                                 Localization localization,
        +                                                                 @Nonnull
        +                                                                 java.lang.String videoId,
        +                                                                 @Nonnull
        +                                                                 java.lang.String cpn,
        +                                                                 @Nullable
        +                                                                 PoTokenResult iosPoTokenResult)
        +                                                          throws java.io.IOException,
        +                                                                 ExtractionException
        +
        +
        Throws:
        +
        java.io.IOException
        +
        ExtractionException
        +
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + + diff --git a/javadoc/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/CreationException.html b/javadoc/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/CreationException.html index 449685c21..8c218e24f 100644 --- a/javadoc/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/CreationException.html +++ b/javadoc/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/CreationException.html @@ -3,7 +3,7 @@ -CreationException (NewPipeExtractor v0.24.4) +CreationException (NewPipeExtractor v0.24.5) @@ -21,7 +21,7 @@