├── .gitattributes ├── .gitignore ├── ASCellNode.h ├── ASCollectionElement.h ├── ASCollectionNode.h ├── ASCollectionView.h ├── ASControlNode.h ├── ASDimension.h ├── ASDisplayNode.h ├── ASImageNodeDrawParameters.h ├── ASLayoutElementStyleYoga.h ├── ASNodeContext.h ├── ASNodeController.h ├── ASTextNode.h ├── Debug.h ├── ELMCellNode.h ├── ELMCollectionNode.h ├── ELMComponent.h ├── ELMContainerNode.h ├── ELMController.h ├── ELMElement.h ├── ELMNodeController.h ├── ELMNodeFactory.h ├── ELMPBElement.h ├── ELMPBIdentifierProperties.h ├── ELMPBProperties.h ├── ELMPBShowActionSheetCommand.h ├── ELMTextNode.h ├── ELMTouchCommandPropertiesHandler.h ├── ELMView.h ├── GCKNNetworkReachability.h ├── GIMBindingBuilder.h ├── GIMMe.h ├── GOOAlertView.h ├── GOODialogView.h ├── GOODialogViewAction.h ├── GOOHUDManagerInternal.h ├── GOOHUDMessage.h ├── GOOHeaderViewController.h ├── GOOModalView.h ├── GOOMultiLineView.h ├── GPBDescriptor.h ├── GPBExtensionDescriptor.h ├── GPBExtensionRegistry.h ├── GPBMessage.h ├── GPBUInt64Array.h ├── GPBUnknownField.h ├── GPBUnknownFieldSet.h ├── GPBUnknownFields.h ├── HAMAsyncVTVideoDecoder.h ├── HAMBaseComponent.h ├── HAMBuildableObject.h ├── HAMChunk.h ├── HAMDefaultABRPolicy.h ├── HAMDefaultABRPolicyConfig.h ├── HAMEvent.h ├── HAMFormat.h ├── HAMFormatDescription.h ├── HAMFormatSelection.h ├── HAMFormatSelectionEvent.h ├── HAMMIMEType.h ├── HAMMediaChunk.h ├── HAMPixelBufferRenderingView.h ├── HAMPlayer.h ├── HAMSBDLSampleBufferRenderingView.h ├── HAMSampleBufferDisplayLayerView.h ├── HAMSoftwareStreamFilter.h ├── ICNClientFile.h ├── ICNClientFileGroup.h ├── LICENSE ├── MDCButton.h ├── MDCSlider.h ├── MDXScreenDiscoveryManager.h ├── MDXSessionManager.h ├── MLABRPolicy.h ├── MLABRPolicyFormatData.h ├── MLABRPolicyNew.h ├── MLABRPolicyOld.h ├── MLAVAssetPlayer.h ├── MLAVAssetPlayerDelegate.h ├── MLAVPIPPlayerLayerView.h ├── MLAVPlayer.h ├── MLAVPlayerLayerView.h ├── MLAVPlayerViewDelegate.h ├── MLDefaultPlayerViewFactory.h ├── MLFormat.h ├── MLHAMPlayer.h ├── MLHAMPlayerItem.h ├── MLHAMPlayerItemSegment.h ├── MLHAMPlayerViewProtocol.h ├── MLHAMQueuePlayer.h ├── MLHAMSBDLSampleBufferRenderingView.h ├── MLHLSMasterPlaylist.h ├── MLHLSRemotePlaylist.h ├── MLHLSStreamSelector.h ├── MLInnerTubePlayerConfig.h ├── MLOnesieVideoData.h ├── MLPIPController.h ├── MLPlatypusABRLoader.h ├── MLPlayerDelegate.h ├── MLPlayerEventCenter.h ├── MLPlayerPool.h ├── MLPlayerPoolImpl.h ├── MLPlayerStickySettings.h ├── MLPlayerViewProtocol.h ├── MLQOEPingController.h ├── MLQueuePlayerDelegate.h ├── MLQuickMenuVideoQualitySettingFormatConstraint.h ├── MLRemoteStream.h ├── MLServerABRFormatAssociatedData.h ├── MLStreamSelector.h ├── MLStreamSelectorDelegate.h ├── MLStreamingData.h ├── MLVideo.h ├── MLVideoDecoderFactory.h ├── MLVideoFormatConstraint.h ├── NSArray+YouTube.h ├── QTMIcon.h ├── README.md ├── SRLRegistry.h ├── UIColor+YouTube.h ├── UIDevice+YouTube.h ├── UIImage+YouTube.h ├── UIView+AsyncDisplayKit.h ├── UIView+YouTube.h ├── YTAccountScopedInnerTubeContextFactory.h ├── YTActionSheetAction.h ├── YTActionSheetController.h ├── YTActionSheetDialogViewController.h ├── YTActionSheetDialogViewControllerDelegate.h ├── YTAdjustableAccessibilityProtocol.h ├── YTAlertView.h ├── YTAppCollectionViewController.h ├── YTAppDelegate.h ├── YTAppSettingsSectionItemActionController.h ├── YTAppSettingsStore.h ├── YTAppViewController.h ├── YTAppViewControllerImpl.h ├── YTApplicationNotificationsObserver.h ├── YTAssetLoader.h ├── YTAsyncCollectionView.h ├── YTAttributedLabel.h ├── YTAttributedLabelFactory.h ├── YTAutonavEndscreenController.h ├── YTAutoplayController.h ├── YTBackgroundabilityPolicy.h ├── YTBackgroundabilityPolicyImpl.h ├── YTBaseFeedController.h ├── YTBaseInnerTubeViewController.h ├── YTCellController.h ├── YTCoWatchWatchEndpointWrapperCommandHandler.h ├── YTColdConfig.h ├── YTCollectionViewCell.h ├── YTCollectionViewCellProtocol.h ├── YTCollectionViewController.h ├── YTColor.h ├── YTColorPalette.h ├── YTCommandResponderEvent.h ├── YTCommonButton.h ├── YTCommonColorPalette.h ├── YTCommonUtils.h ├── YTContentVideoPlayerOverlayView.h ├── YTDefaultSheetController.h ├── YTDefaultTypeStyle.h ├── YTELMContext.h ├── YTELMView.h ├── YTEditResources.h ├── YTElementsCellController.h ├── YTEngagementPanelContainerViewController.h ├── YTFeedSectionController.h ├── YTFontAttributes.h ├── YTFullscreenEngagementActionBarButtonRenderer.h ├── YTFullscreenEngagementActionBarButtonView.h ├── YTGlassContainerView.h ├── YTGlobalConfig.h ├── YTHUDMessage.h ├── YTHUDSnackbarMessage.h ├── YTHotConfig.h ├── YTIAccessibilityData.h ├── YTIAdLoggingDataContainer.h ├── YTIAdSlotLoggingData.h ├── YTIAudioTrack.h ├── YTIBrowseEndpoint.h ├── YTIBrowseRequest.h ├── YTIButtonRenderer.h ├── YTIButtonSupportedRenderers.h ├── YTIChapterRenderer.h ├── YTICoWatchWatchEndpointWrapperCommand.h ├── YTIColorInfo.h ├── YTICommand.h ├── YTICommandExecutorCommand.h ├── YTICompactLinkRenderer.h ├── YTICompactVideoRenderer.h ├── YTIElementRenderer.h ├── YTIElementRendererCompatibilityOptions.h ├── YTIEmbeddedFileGroupSchema.h ├── YTIEngagementPanelIdentifier.h ├── YTIFormatStream.h ├── YTIFormattedString.h ├── YTIFormattedStringLabel.h ├── YTIFormattedStringSupportedAccessibilityDatas.h ├── YTIGuideResponse.h ├── YTIGuideResponseSupportedRenderers.h ├── YTIHamplayerABRConfig.h ├── YTIHamplayerConfig.h ├── YTIHamplayerHotConfig.h ├── YTIHamplayerSABRAudioTrackRendererConfig.h ├── YTIHamplayerSoftwareStreamFilter.h ├── YTIHamplayerStreamFilter.h ├── YTIHorizontalListRenderer.h ├── YTIHorizontalListSupportedRenderers.h ├── YTIHotConfigGroup.h ├── YTIIcon.h ├── YTIInlinePlaybackRenderer.h ├── YTIIosMediaHotConfig.h ├── YTIIosOnesieHotConfig.h ├── YTIItemSectionRenderer.h ├── YTIItemSectionSupportedRenderers.h ├── YTILikeButtonRenderer.h ├── YTILikeButtonSupportedRenderers.h ├── YTILikeTarget.h ├── YTILoggingURLRoot.h ├── YTIMediaCommonConfig.h ├── YTIMediaHotConfig.h ├── YTIMediaQualitySettingsHotConfig.h ├── YTIMenuConditionalServiceItemRenderer.h ├── YTIMenuItemSupportedRenderers.h ├── YTIMenuItemSupportedRenderersElementRendererCompatibilityOptionsExtension.h ├── YTIMenuNavigationItemRenderer.h ├── YTIMenuRenderer.h ├── YTIModalClientThrottlingRules.h ├── YTIModularPlayerBarModel.h ├── YTINavigationEndpointInteractionLoggingExtension.h ├── YTIOfflinePromoRenderer.h ├── YTIOfflineabilityRenderer.h ├── YTIOfflineabilitySupportedRenderers.h ├── YTIOnesieHotConfig.h ├── YTIPaygatedQualityDetails.h ├── YTIPictureInPictureRendererRoot.h ├── YTIPivotBarIconOnlyItemRenderer.h ├── YTIPivotBarItemRenderer.h ├── YTIPivotBarRenderer.h ├── YTIPivotBarSupportedRenderers.h ├── YTIPlayerBarDecorationModel.h ├── YTIPlayerBarDecorationStyle.h ├── YTIPlayerBarGradientColor.h ├── YTIPlayerBarPlayingState.h ├── YTIPlayerResponse.h ├── YTIPlaylistPanelRenderer.h ├── YTIPlaylistPanelRenderer_PlaylistPanelVideoSupportedRenderers.h ├── YTIPlaylistPanelVideoRenderer.h ├── YTIPlaylistVideoRenderer.h ├── YTIReelItemWatchResponse.h ├── YTIReelPlayerOverlayRenderer.h ├── YTIReelWatchEndpoint.h ├── YTISectionListRenderer.h ├── YTISectionListSupportedRenderers.h ├── YTIShelfRenderer.h ├── YTIShelfSupportedRenderers.h ├── YTIShowEngagementPanelEndpoint.h ├── YTIShowFullscreenInterstitialCommand.h ├── YTISlimMetadataButtonRenderer.h ├── YTISlimMetadataButtonSupportedRenderers.h ├── YTISlimMetadataToggleButtonRenderer.h ├── YTISlotData.h ├── YTIStringRun.h ├── YTIThumbnailDetails.h ├── YTIThumbnailDetails_Thumbnail.h ├── YTIToggleButtonRenderer.h ├── YTIVideoDetails.h ├── YTIVideoQualityPickerEndpoint.h ├── YTIWatchEndpoint.h ├── YTIWatchNextResponse.h ├── YTIcon.h ├── YTImageView.h ├── YTInlineMutedPlaybackScrubberView.h ├── YTInlineMutedPlaybackScrubbingSlider.h ├── YTInlinePlayerBarContainerView.h ├── YTInlinePlayerBarView.h ├── YTInnerTubeCellController.h ├── YTInnerTubeCollectionViewController.h ├── YTInnerTubeContextFactory.h ├── YTInnerTubeSectionController.h ├── YTLabel.h ├── YTLightweightQTMButton.h ├── YTLikeStatus.h ├── YTLiveWatchPlaybackOverlayView.h ├── YTLocalPlaybackController.h ├── YTMainAppControlsOverlayView.h ├── YTMainAppEngagementPanelViewController.h ├── YTMainAppPlayerOverlayView.h ├── YTMainAppVideoPlayerOverlayView.h ├── YTMainAppVideoPlayerOverlayViewController.h ├── YTMainWindow.h ├── YTModularPlayerBarController.h ├── YTModularPlayerBarView.h ├── YTModuleEngagementPanelViewController.h ├── YTMultiSizeViewController.h ├── YTNGWatchController.h ├── YTNGWatchLayerViewController.h ├── YTNGWatchMiniBarView.h ├── YTNewFormattedLabel.h ├── YTNewLabel.h ├── YTNonCriticalStartupTelemetricSmartScheduler.h ├── YTOfflineButtonPressedResponderEvent.h ├── YTOfflineCapableVideoCellController.h ├── YTPageStyleController.h ├── YTPageStyleControllerImpl.h ├── YTPageStyling.h ├── YTPivotBarItemView.h ├── YTPlainLabel.h ├── YTPlaybackController.h ├── YTPlaybackControllerUIWrapper.h ├── YTPlaybackData.h ├── YTPlaybackStrippedWatchController.h ├── YTPlayerBarController.h ├── YTPlayerBarProtocol.h ├── YTPlayerBarRectangleDecorationView.h ├── YTPlayerBarSegmentMarkerView.h ├── YTPlayerBarSegmentView.h ├── YTPlayerBarSegmentedProgressView.h ├── YTPlayerOverlay.h ├── YTPlayerOverlayManager.h ├── YTPlayerOverlayProvider.h ├── YTPlayerPIPController.h ├── YTPlayerResources.h ├── YTPlayerResponse.h ├── YTPlayerScrubberProtocol.h ├── YTPlayerStatus.h ├── YTPlayerTapToRetryResponderEvent.h ├── YTPlayerView.h ├── YTPlayerViewController.h ├── YTPlayerViewControllerConfig.h ├── YTPlayerViewControllerUIDelegate.h ├── YTPlaylistPanelProminentThumbnailVideoCell.h ├── YTPlaylistPanelProminentThumbnailVideoCellController.h ├── YTPlaylistPanelSectionController.h ├── YTQTMButton.h ├── YTReelContentModel.h ├── YTReelContentView.h ├── YTReelDataSource.h ├── YTReelElementAsyncComponentView.h ├── YTReelLikeModel.h ├── YTReelModel.h ├── YTReelPlayerBottomButton.h ├── YTReelPlayerViewController.h ├── YTReelPlayerViewControllerSub.h ├── YTReelWatchLikesController.h ├── YTReelWatchPlaybackOverlayView.h ├── YTRendererForOfflineVideo.h ├── YTResponder.h ├── YTResponderEvent.h ├── YTRightNavigationButtons.h ├── YTRollingDigit.h ├── YTRollingDigitView.h ├── YTRollingNumberNode.h ├── YTRollingNumberView.h ├── YTSearchableSettingsViewController.h ├── YTSectionController.h ├── YTSectionListGhostCardCell.h ├── YTSectionListGhostCardVideoWithContextCell.h ├── YTSectionListViewController.h ├── YTSegmentableInlinePlayerBarView.h ├── YTServiceSectionController.h ├── YTSettingsCell.h ├── YTSettingsGroupData.h ├── YTSettingsPickerViewController.h ├── YTSettingsSectionController.h ├── YTSettingsSectionItem.h ├── YTSettingsSectionItemManager.h ├── YTSettingsViewController.h ├── YTShortsPlayerViewController.h ├── YTSingleVideo.h ├── YTSingleVideoController.h ├── YTSingleVideoControllerDelegate.h ├── YTSingleVideoSequencer.h ├── YTSingleVideoTime.h ├── YTSlideForActionsView.h ├── YTSlimVideoDetailsActionView.h ├── YTSlimVideoDetailsActionViewDelegate.h ├── YTSlimVideoDetailsActionsView.h ├── YTSlimVideoMetadataExpandingBehavior.h ├── YTSlimVideoScrollableActionBarCell.h ├── YTSlimVideoScrollableActionBarCellController.h ├── YTSlimVideoScrollableActionBarCellControllerDelegate.h ├── YTSlimVideoScrollableDetailsActionsProtocol.h ├── YTSlimVideoScrollableDetailsActionsView.h ├── YTStyledViewController.h ├── YTSystemNotifications.h ├── YTSystemNotificationsObserver.h ├── YTToastResponderEvent.h ├── YTTouchFeedbackController.h ├── YTTouchFeedbackView.h ├── YTTypeStyle.h ├── YTUIResources.h ├── YTUIUtils.h ├── YTVarispeedSwitchController.h ├── YTVarispeedSwitchControllerDelegate.h ├── YTVarispeedSwitchControllerOption.h ├── YTVersionUtils.h ├── YTVideoCellController.h ├── YTVideoElementCellController.h ├── YTVideoNode.h ├── YTVideoPlayerOverlayDelegate.h ├── YTVideoQualitySwitchOriginalController.h ├── YTVideoQualitySwitchRedesignedController.h ├── YTVideoWithContextNode.h ├── YTWatchController.h ├── YTWatchLayerViewController.h ├── YTWatchMetadataPanelStateResponderProvider.h ├── YTWatchMiniBarViewController.h ├── YTWatchNextResultsViewController.h ├── YTWatchPlaybackController.h ├── YTWatchPlayerViewLayoutSource.h ├── YTWatchPullToFullController.h ├── YTWatchTransition.h ├── YTWatchViewController.h ├── _ASCollectionViewCell.h └── _ASDisplayView.h /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /ASCellNode.h: -------------------------------------------------------------------------------- 1 | #import "ASDisplayNode.h" 2 | 3 | @interface ASCellNode : ASDisplayNode 4 | @property (nonatomic, copy, readwrite) UICollectionViewLayoutAttributes *layoutAttributes; 5 | @end 6 | -------------------------------------------------------------------------------- /ASCollectionElement.h: -------------------------------------------------------------------------------- 1 | #import "ASCellNode.h" 2 | #import "ASDimension.h" 3 | 4 | @interface ASCollectionElement : NSObject 5 | @property (nonatomic, assign) ASSizeRange constrainedSize; 6 | - (ASCellNode *)node; 7 | @end 8 | -------------------------------------------------------------------------------- /ASCollectionNode.h: -------------------------------------------------------------------------------- 1 | #import "ASDisplayNode.h" 2 | 3 | @interface ASCollectionNode : ASDisplayNode 4 | @end -------------------------------------------------------------------------------- /ASCollectionView.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "ASCollectionNode.h" 3 | 4 | @interface ASCollectionView : UICollectionView 5 | @property (nonatomic, weak, readwrite) ASCollectionNode *collectionNode; 6 | @end 7 | -------------------------------------------------------------------------------- /ASControlNode.h: -------------------------------------------------------------------------------- 1 | #import "ASDisplayNode.h" 2 | 3 | @interface ASControlNode : ASDisplayNode 4 | @end 5 | -------------------------------------------------------------------------------- /ASDimension.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | typedef struct { 4 | CGSize min; 5 | CGSize max; 6 | } ASSizeRange; 7 | -------------------------------------------------------------------------------- /ASDisplayNode.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "ASLayoutElementStyleYoga.h" 3 | 4 | @interface ASDisplayNode : NSObject 5 | @property (atomic, copy, readwrite) NSArray *yogaChildren; 6 | @property (atomic, copy, readwrite) NSString *accessibilityIdentifier; 7 | @property (atomic, copy, readwrite) UIColor *backgroundColor; 8 | @property (atomic, weak) ASDisplayNode *yogaParent; 9 | @property (atomic, strong, readwrite) id contents; 10 | @property (atomic, assign, readwrite) CGFloat alpha; 11 | @property (atomic, assign, readwrite) CGRect frame; 12 | @property (atomic, assign, readwrite) CGRect bounds; 13 | @property (atomic, assign, readonly) CGSize calculatedSize; 14 | @property (atomic, assign, readonly) unsigned char interfaceState; 15 | @property (atomic, assign, readwrite, getter=isHidden) BOOL hidden; 16 | @property (atomic, assign, readwrite, getter=isLayerBacked) BOOL layerBacked; 17 | @property (atomic, assign, readwrite) BOOL automaticallyManagesSubnodes; 18 | - (id)controller; // Usually ELMNodeController 19 | - (ASLayoutElementStyleYoga *)style; 20 | - (UIViewController *)closestViewController; 21 | - (UIView *)view; 22 | - (BOOL)isNodeLoaded; 23 | - (void)setNeedsLayout; 24 | - (void)addSubnode:(id)subnode; 25 | - (void)addYogaChild:(id)child; 26 | @end 27 | -------------------------------------------------------------------------------- /ASImageNodeDrawParameters.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface ASImageNodeDrawParameters : NSObject 5 | - (CGRect)drawRect; 6 | - (CGFloat)renderScale; 7 | @end 8 | -------------------------------------------------------------------------------- /ASLayoutElementStyleYoga.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ASLayoutElementStyleYoga : NSObject 4 | @property (nonatomic, assign, readwrite) CGFloat spacingBefore; 5 | @property (nonatomic, assign, readwrite) CGFloat spacingAfter; 6 | @property (nonatomic, assign, readwrite) CGFloat flexGrow; 7 | @property (nonatomic, assign, readwrite) CGFloat flexShrink; 8 | @end 9 | -------------------------------------------------------------------------------- /ASNodeContext.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ASNodeContext : NSObject 4 | - (instancetype)initWithOptions:(unsigned char)options; 5 | - (unsigned char)options; 6 | @end 7 | -------------------------------------------------------------------------------- /ASNodeController.h: -------------------------------------------------------------------------------- 1 | #import "ASDisplayNode.h" 2 | 3 | @interface ASNodeController : NSObject 4 | @property (nonatomic, strong, readwrite) ASDisplayNode *node; 5 | - (NSArray *)children; 6 | @end 7 | -------------------------------------------------------------------------------- /ASTextNode.h: -------------------------------------------------------------------------------- 1 | #import "ASControlNode.h" 2 | 3 | @interface ASTextNode : ASControlNode 4 | @property (atomic, copy, readwrite) NSAttributedString *attributedText; 5 | @end 6 | -------------------------------------------------------------------------------- /Debug.h: -------------------------------------------------------------------------------- 1 | #import "YTAlertView.h" 2 | 3 | #define showAlertInfo(message) \ 4 | do { \ 5 | YTAlertView *alert = [NSClassFromString(@"YTAlertView") infoDialog]; \ 6 | alert.title = @"Alert"; \ 7 | alert.subtitle = message; \ 8 | dispatch_async(dispatch_get_main_queue(), ^{ \ 9 | [alert show]; \ 10 | }); \ 11 | } while (0) 12 | 13 | #if DEBUG 14 | #define showAlertDebug(message) showAlertInfo(message) 15 | #else 16 | #define showAlertDebug(message) 17 | #endif 18 | -------------------------------------------------------------------------------- /ELMCellNode.h: -------------------------------------------------------------------------------- 1 | #import "ASCellNode.h" 2 | #import "ELMElement.h" 3 | 4 | @interface ELMCellNode : ASCellNode 5 | @property (atomic, strong, readwrite) ELMElement *element; 6 | @end 7 | -------------------------------------------------------------------------------- /ELMCollectionNode.h: -------------------------------------------------------------------------------- 1 | #import "ASCollectionNode.h" 2 | 3 | @interface ELMCollectionNode : ASCollectionNode 4 | @end 5 | -------------------------------------------------------------------------------- /ELMComponent.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @class ELMNodeController; 4 | 5 | @interface ELMComponent : NSObject 6 | - (ELMNodeController *)materializedInstance; 7 | - (ELMComponent *)owningComponent; 8 | - (NSString *)templateURI; 9 | @end 10 | -------------------------------------------------------------------------------- /ELMContainerNode.h: -------------------------------------------------------------------------------- 1 | #import "ELMElement.h" 2 | #import "ASDisplayNode.h" 3 | 4 | @interface ELMContainerNode : ASDisplayNode 5 | @property (atomic, strong, readwrite) ELMElement *element; 6 | @end 7 | -------------------------------------------------------------------------------- /ELMController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol ELMController 4 | - (id )materializedInstance; 5 | @end 6 | -------------------------------------------------------------------------------- /ELMElement.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ELMElement : NSObject 4 | - (id)newChildElementWithInstance:(const void *)instance; 5 | - (const void *)instance; 6 | @end 7 | -------------------------------------------------------------------------------- /ELMNodeController.h: -------------------------------------------------------------------------------- 1 | #import "ASNodeController.h" 2 | #import "ELMComponent.h" 3 | #import "ELMController.h" 4 | 5 | @interface ELMNodeController : ASNodeController 6 | @property (nonatomic, weak, readwrite) id parent; 7 | - (const void *)materializationContext; 8 | - (ELMComponent *)owningComponent; 9 | - (NSString *)key; 10 | - (NSArray *)children; 11 | @end 12 | -------------------------------------------------------------------------------- /ELMNodeFactory.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ELMNodeFactory : NSObject 4 | + (instancetype)sharedInstance; 5 | - (id)nodeWithElement:(id)element materializationContext:(const void *)context; 6 | - (void)registerNodeClass:(Class)cls forTypeExtension:(unsigned int)typeExtension; 7 | @end 8 | -------------------------------------------------------------------------------- /ELMPBElement.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ELMPBElement : NSObject 4 | - (id)properties; 5 | @end -------------------------------------------------------------------------------- /ELMPBIdentifierProperties.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ELMPBIdentifierProperties : NSObject 4 | - (id)identifier; 5 | @end -------------------------------------------------------------------------------- /ELMPBProperties.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ELMPBProperties : NSObject 4 | - (id)firstSubmessage; 5 | @end -------------------------------------------------------------------------------- /ELMPBShowActionSheetCommand.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ELMPBShowActionSheetCommand : NSObject 4 | - (id)listOptionArray; 5 | @end -------------------------------------------------------------------------------- /ELMTextNode.h: -------------------------------------------------------------------------------- 1 | #import "ASTextNode.h" 2 | #import "ELMElement.h" 3 | 4 | @interface ELMTextNode : ASTextNode 5 | @property (atomic, strong, readwrite) ELMElement *element; 6 | - (instancetype)initWithElement:(ELMElement *)element context:(id)context; 7 | @end 8 | -------------------------------------------------------------------------------- /ELMTouchCommandPropertiesHandler.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ELMTouchCommandPropertiesHandler : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /ELMView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface ELMView : UIView 4 | @end 5 | -------------------------------------------------------------------------------- /GCKNNetworkReachability.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GCKNNetworkReachability : NSObject 4 | + (instancetype)sharedInstance; 5 | - (NSInteger)currentStatus; 6 | @end 7 | -------------------------------------------------------------------------------- /GIMBindingBuilder.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GIMBindingBuilder : NSObject 4 | - (instancetype)bindType:(Class)typeClass; 5 | - (instancetype)initializedWith:(id (^)(id))block; 6 | @end -------------------------------------------------------------------------------- /GIMMe.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GIMMe : NSObject 4 | + (instancetype)gimme; 5 | - (instancetype)allocOf:(Class)cls; 6 | - (id)nullableInstanceForType:(id)type; 7 | - (id)instanceForType:(id)type; 8 | @end -------------------------------------------------------------------------------- /GOOAlertView.h: -------------------------------------------------------------------------------- 1 | #import "GOOModalView.h" 2 | 3 | @interface GOOAlertView : GOOModalView 4 | @property (nonatomic, copy, readwrite) NSString *title; 5 | @property (nonatomic, readonly, strong) UILabel *titleLabel; 6 | @property (nonatomic, copy, readwrite) NSString *subtitle; 7 | @property (nonatomic, readonly, strong) UILabel *subtitleLabel; 8 | @property (nonatomic, readwrite, copy) UIImage *icon; 9 | @property (nonatomic, strong, readwrite) UIView *customContentView; 10 | @property (nonatomic, assign, readwrite) UIEdgeInsets customContentViewInsets; 11 | + (instancetype)dialog; 12 | + (instancetype)infoDialog; 13 | + (instancetype)confirmationDialog; 14 | + (instancetype)confirmationDialogWithAction:(void (^)(void))action actionTitle:(NSString *)actionTitle; 15 | + (instancetype)confirmationDialogWithAction:(void (^)(void))action actionTitle:(NSString *)actionTitle cancelTitle:(NSString *)cancelTitle; 16 | + (instancetype)confirmationDialogWithAction:(void (^)(void))action actionTitle:(NSString *)actionTitle cancelAction:(void (^)(void))cancelAction cancelTitle:(NSString *)cancelTitle; 17 | + (instancetype)confirmationDialogWithSelector:(SEL)selector actionTitle:(NSString *)actionTitle; 18 | + (instancetype)confirmationDialogWithSelector:(SEL)selector actionTitle:(NSString *)actionTitle showsCancelButton:(BOOL)showsCancelButton; 19 | - (void)addCancelButton:(SEL)selector; 20 | - (void)addCancelButtonWithAction:(void (^)(void))action; 21 | - (void)dismiss; 22 | - (void)dismissWithCancelAction:(BOOL)cancelAction; 23 | @end 24 | -------------------------------------------------------------------------------- /GOODialogView.h: -------------------------------------------------------------------------------- 1 | #import "GOOMultiLineView.h" 2 | #import "GOODialogViewAction.h" 3 | 4 | @interface GOODialogView : GOOMultiLineView 5 | - (NSMutableArray *)actions; 6 | - (UILabel *)titleLabel; 7 | @end 8 | -------------------------------------------------------------------------------- /GOODialogViewAction.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GOODialogViewAction : NSObject 4 | @property (nonatomic, copy, readwrite) id block; 5 | @end 6 | -------------------------------------------------------------------------------- /GOOHUDManagerInternal.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTHUDMessage.h" 3 | 4 | @interface GOOHUDManagerInternal : NSObject 5 | - (void)showMessageMainThread:(YTHUDMessage *)message; 6 | + (instancetype)sharedInstance; 7 | @end -------------------------------------------------------------------------------- /GOOHUDMessage.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GOOHUDMessage : NSObject 4 | + (instancetype)messageWithText:(NSString *)text; 5 | @end 6 | -------------------------------------------------------------------------------- /GOOHeaderViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GOOHeaderViewController : UIViewController 4 | @end 5 | -------------------------------------------------------------------------------- /GOOModalView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GOOModalView : UIView 4 | @property (nonatomic, readwrite, weak) id target; 5 | @property (nonatomic, readwrite, assign) BOOL shouldDismissOnBackgroundTap; 6 | @property (nonatomic, readwrite, assign) BOOL shouldDismissOnApplicationBackground; 7 | - (instancetype)initWithTarget:(id)target; 8 | - (void)addTitle:(NSString *)title withAction:(void (^)(void))action; 9 | - (void)addTitle:(NSString *)title withCancelAction:(void (^)(void))action; 10 | - (void)addTitle:(NSString *)title withDestructiveAction:(void (^)(void))action; 11 | - (void)addTitle:(NSString *)title withSelector:(SEL)selector; 12 | - (void)addTitle:(NSString *)title withCancelSelector:(SEL)cancelSelector; 13 | - (void)addTitle:(NSString *)title withDestructiveSelector:(SEL)cancelSelector; 14 | - (void)addTitle:(NSString *)title iconImage:(UIImage *)iconImage withAction:(void (^)(void))action; 15 | - (void)addTitle:(NSString *)title iconImage:(UIImage *)iconImage withSelector:(SEL)selector; 16 | - (void)show; 17 | - (void)cancel; 18 | - (void)dismiss; 19 | @end 20 | -------------------------------------------------------------------------------- /GOOMultiLineView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GOOMultiLineView : UIView 4 | @end 5 | -------------------------------------------------------------------------------- /GPBDescriptor.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GPBDescriptor : NSObject 4 | - (void)setupOneofs:(const char **)oneofNames count:(uint32_t)count firstHasIndex:(int32_t)firstHasIndex; 5 | @end 6 | -------------------------------------------------------------------------------- /GPBExtensionDescriptor.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GPBExtensionDescriptor : NSObject 4 | - (Class)msgClass; 5 | @end 6 | -------------------------------------------------------------------------------- /GPBExtensionRegistry.h: -------------------------------------------------------------------------------- 1 | #import "GPBExtensionDescriptor.h" 2 | 3 | @interface GPBExtensionRegistry : NSObject 4 | - (void)addExtension:(GPBExtensionDescriptor *)extension; 5 | - (void)addExtensions:(GPBExtensionRegistry *)registry; 6 | @end 7 | -------------------------------------------------------------------------------- /GPBMessage.h: -------------------------------------------------------------------------------- 1 | #import "GPBExtensionDescriptor.h" 2 | #import "GPBUnknownFieldSet.h" 3 | 4 | @interface GPBMessage : NSObject 5 | @property (nonatomic, copy, readwrite) GPBUnknownFieldSet *unknownFields; 6 | + (instancetype)parseFromData:(NSData *)data; 7 | + (instancetype)parseFromData:(NSData *)data error:(NSError **)error; 8 | + (instancetype)deserializeFromString:(NSString *)str; 9 | + (GPBExtensionDescriptor *)descriptor; 10 | - (instancetype)messageForFieldNumber:(NSUInteger)fieldNumber; 11 | - (instancetype)messageForFieldNumber:(NSUInteger)fieldNumber messageClass:(Class)messageClass; 12 | - (id)firstSubmessage; 13 | - (id)getExtension:(GPBExtensionDescriptor *)extension; 14 | - (BOOL)hasExtension:(GPBExtensionDescriptor *)extension; 15 | - (void)clear; 16 | - (void)setExtension:(GPBExtensionDescriptor *)extension value:(id)value; 17 | - (void)mergeFrom:(GPBMessage *)other; 18 | @end 19 | -------------------------------------------------------------------------------- /GPBUInt64Array.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface GPBUInt64Array : NSObject 4 | - (NSNumber *)yt_numberAtIndex:(NSUInteger)index; 5 | @end 6 | -------------------------------------------------------------------------------- /GPBUnknownField.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "GPBUInt64Array.h" 4 | 5 | typedef NS_ENUM(uint8_t, GPBUnknownFieldType) { 6 | GPBUnknownFieldTypeVarint, 7 | GPBUnknownFieldTypeFixed32, 8 | GPBUnknownFieldTypeFixed64, 9 | GPBUnknownFieldTypeLengthDelimited, 10 | GPBUnknownFieldTypeGroup, 11 | }; 12 | 13 | @interface GPBUnknownField : NSObject 14 | @property (nonatomic, readonly, assign) int32_t number; 15 | @property (nonatomic, readonly, assign) GPBUnknownFieldType type; 16 | @property (nonatomic, readonly, strong) NSData *lengthDelimited; 17 | @property (nonatomic, readonly, strong) NSArray *lengthDelimitedList; 18 | @property (nonatomic, readonly, strong) GPBUInt64Array *varintList; 19 | @end 20 | -------------------------------------------------------------------------------- /GPBUnknownFieldSet.h: -------------------------------------------------------------------------------- 1 | #import "GPBUnknownField.h" 2 | 3 | @interface GPBUnknownFieldSet : NSObject 4 | - (GPBUnknownField *)getField:(int32_t)number; 5 | @end 6 | -------------------------------------------------------------------------------- /GPBUnknownFields.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "GPBMessage.h" 3 | #import "GPBUnknownField.h" 4 | 5 | @interface GPBUnknownFields : NSObject 6 | - (instancetype)initFromMessage:(GPBMessage *)message; 7 | - (NSArray *)fields:(int32_t)fieldNumber; 8 | - (void)addFieldNumber:(int32_t)fieldNumber fixed32:(uint32_t)value; 9 | - (void)addFieldNumber:(int32_t)fieldNumber fixed64:(uint64_t)value; 10 | - (void)addFieldNumber:(int32_t)fieldNumber lengthDelimited:(NSData *)value; 11 | @end 12 | -------------------------------------------------------------------------------- /HAMAsyncVTVideoDecoder.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface HAMAsyncVTVideoDecoder : NSObject 4 | - (instancetype)initWithDelegate:(id)delegate delegateQueue:(id)delegateQueue decodeQueue:(id)decodeQueue formatDescription:(id)formatDescription pixelBufferAttributes:(id)pixelBufferAttributes; 5 | @end 6 | -------------------------------------------------------------------------------- /HAMBaseComponent.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface HAMBaseComponent : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /HAMBuildableObject.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface HAMBuildableObject : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /HAMChunk.h: -------------------------------------------------------------------------------- 1 | #import "HAMFormat.h" 2 | 3 | @interface HAMChunk : NSObject 4 | @property (nonatomic, assign, readonly) NSInteger loadStatus; 5 | - (id )format; 6 | @end 7 | -------------------------------------------------------------------------------- /HAMDefaultABRPolicy.h: -------------------------------------------------------------------------------- 1 | #import "HAMBaseComponent.h" 2 | #import "MLFormat.h" 3 | 4 | @interface HAMDefaultABRPolicy : HAMBaseComponent 5 | - (void)setFormats:(NSArray *)formats; 6 | @end 7 | -------------------------------------------------------------------------------- /HAMDefaultABRPolicyConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "HAMSoftwareStreamFilter.h" 3 | 4 | typedef struct HAMDefaultABRPolicyConfig { 5 | double maxMediaSecondsPerRequest; 6 | float downshiftScalar; 7 | float downshiftConstant; 8 | float upshiftScalar; 9 | float upshiftConstant; 10 | double maxDownshiftReadahead; 11 | double localMaxBitrateReadahead; 12 | double minReadaheadForAverageBitrate; 13 | double syncReadahead; 14 | double stunDuration; 15 | bool useHighReplicationFormatsWhileStunned; 16 | bool disableHDRInLowPowerMode; 17 | bool padByte; 18 | bool padByte2; 19 | int maxConsecutiveErrors; 20 | double minUpshiftReplaceChunksReadahead; 21 | double bufferTrimBefore; 22 | double bufferTrimAfter; 23 | float oversendFactor; 24 | float higherPictureQualityOversendFactor; 25 | NSInteger bufferMaxSizeBytes; 26 | NSInteger lowMemoryWarnBufferSizeBytes; 27 | NSInteger lowMemoryCriticalBufferSizeBytes; 28 | double lowMemoryBufferSizeCoolDown; 29 | double stallMaxBufferReadahead; 30 | double stallMinBufferReadahead; 31 | float stallBandwidthTweakScalar; 32 | int stallBandwidthTweakConstant; 33 | HAMSoftwareStreamFilter softwareAV1Filter; 34 | HAMSoftwareStreamFilter softwareVP9Filter; 35 | bool failIfAllFormatsAreFiltered; 36 | } HAMDefaultABRPolicyConfig; 37 | -------------------------------------------------------------------------------- /HAMEvent.h: -------------------------------------------------------------------------------- 1 | #import "HAMPlayer.h" 2 | 3 | @interface HAMEvent : NSObject 4 | @property (nonatomic, readonly, strong) HAMPlayer *player; 5 | @end 6 | -------------------------------------------------------------------------------- /HAMFormat.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol HAMFormat 4 | @end 5 | -------------------------------------------------------------------------------- /HAMFormatDescription.h: -------------------------------------------------------------------------------- 1 | #import "HAMBuildableObject.h" 2 | #import "HAMFormat.h" 3 | 4 | @interface HAMFormatDescription : HAMBuildableObject 5 | @property (nonatomic, assign, readonly) id format; 6 | @end 7 | -------------------------------------------------------------------------------- /HAMFormatSelection.h: -------------------------------------------------------------------------------- 1 | #import "MLFormat.h" 2 | 3 | @interface HAMFormatSelection : NSObject 4 | - (MLFormat *)format; 5 | @end 6 | -------------------------------------------------------------------------------- /HAMFormatSelectionEvent.h: -------------------------------------------------------------------------------- 1 | #import "HAMEvent.h" 2 | #import "HAMFormatSelection.h" 3 | 4 | @interface HAMFormatSelectionEvent : HAMEvent 5 | @property (nonatomic, readonly, strong) HAMFormatSelection *formatSelection; 6 | @end 7 | -------------------------------------------------------------------------------- /HAMMIMEType.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface HAMMIMEType : NSObject 4 | - (unsigned int)audioCodec; 5 | - (unsigned int)videoCodec; 6 | @end 7 | -------------------------------------------------------------------------------- /HAMMediaChunk.h: -------------------------------------------------------------------------------- 1 | #import "HAMChunk.h" 2 | #import "HAMFormatSelection.h" 3 | 4 | @interface HAMMediaChunk : HAMChunk 5 | @property (nonatomic, assign, readonly) HAMFormatSelection *formatSelection; 6 | @end 7 | -------------------------------------------------------------------------------- /HAMPixelBufferRenderingView.h: -------------------------------------------------------------------------------- 1 | @protocol HAMPixelBufferRenderingView 2 | @end -------------------------------------------------------------------------------- /HAMPlayer.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface HAMPlayer : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /HAMSBDLSampleBufferRenderingView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface HAMSBDLSampleBufferRenderingView : UIView 4 | @property (retain, nonatomic, readonly) AVSampleBufferDisplayLayer *displayLayer; 5 | @end -------------------------------------------------------------------------------- /HAMSampleBufferDisplayLayerView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface HAMSampleBufferDisplayLayerView : UIView 4 | @end -------------------------------------------------------------------------------- /HAMSoftwareStreamFilter.h: -------------------------------------------------------------------------------- 1 | typedef struct HAMSoftwareStreamFilter { 2 | int maxFPS; 3 | int maxArea; 4 | } HAMSoftwareStreamFilter; 5 | -------------------------------------------------------------------------------- /ICNClientFile.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface ICNClientFile : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *fileId; 5 | @property (nonatomic, copy, readwrite) NSString *fileUri; 6 | @end 7 | -------------------------------------------------------------------------------- /ICNClientFileGroup.h: -------------------------------------------------------------------------------- 1 | #import "ICNClientFile.h" 2 | 3 | @interface ICNClientFileGroup : GPBMessage 4 | @property (nonatomic, strong, readwrite) NSMutableArray *fileArray; 5 | @end 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 - 2025 PoomSmart 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MDCButton.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MDCButton : UIButton 4 | @end 5 | -------------------------------------------------------------------------------- /MDCSlider.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol MDCSliderDelegate 4 | @end 5 | 6 | @interface MDCSlider : UIControl 7 | @property (nonatomic, assign, getter=isStatefulAPIEnabled) BOOL statefulAPIEnabled; 8 | @property (nonatomic, assign, getter=isThumbHollowAtStart) BOOL thumbHollowAtStart; 9 | @property (nonatomic, weak) id delegate; 10 | @property (nonatomic, assign) CGFloat thumbRadius; 11 | @property (nonatomic, assign) CGFloat value; 12 | @property (nonatomic, assign) CGFloat minimumValue; 13 | @property (nonatomic, assign) CGFloat maximumValue; 14 | @property (nonatomic, assign, getter=isContinuous) BOOL continuous; 15 | @property (nonatomic, strong) UIColor *color; 16 | @property (nonatomic, strong) UIColor *valueLabelTextColor; 17 | - (void)setThumbColor:(UIColor *)thumbColor forState:(UIControlState)state; 18 | - (void)setTrackFillColor:(UIColor *)fillColor forState:(UIControlState)state; 19 | - (void)setTrackBackgroundColor:(UIColor *)backgroundColor forState:(UIControlState)state; 20 | - (void)setValue:(CGFloat)value animated:(BOOL)animated; 21 | @end 22 | -------------------------------------------------------------------------------- /MDXScreenDiscoveryManager.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MDXScreenDiscoveryManager : NSObject\ 4 | + (instancetype)sharedInstance; 5 | + (void)setSharedInstance:(MDXScreenDiscoveryManager *)instance; 6 | @end 7 | -------------------------------------------------------------------------------- /MDXSessionManager.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MDXSessionManager : NSObject 4 | + (instancetype)sharedInstance; 5 | - (BOOL)hasActiveMDXOrAirPlaySession; 6 | @end 7 | -------------------------------------------------------------------------------- /MLABRPolicy.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MLABRPolicy : NSObject 4 | - (void)requestFormatReselection; 5 | @end -------------------------------------------------------------------------------- /MLABRPolicyFormatData.h: -------------------------------------------------------------------------------- 1 | #import "MLFormat.h" 2 | 3 | @interface MLABRPolicyFormatData : NSObject 4 | - (instancetype)initWithFormat:(MLFormat *)format; 5 | @end -------------------------------------------------------------------------------- /MLABRPolicyNew.h: -------------------------------------------------------------------------------- 1 | #import "MLABRPolicy.h" 2 | 3 | // YouTube 17.30.3 and higher 4 | @interface MLABRPolicyNew : MLABRPolicy 5 | @end 6 | -------------------------------------------------------------------------------- /MLABRPolicyOld.h: -------------------------------------------------------------------------------- 1 | #import "MLABRPolicy.h" 2 | 3 | // YouTube 17.30.3 and higher 4 | @interface MLABRPolicyOld : MLABRPolicy 5 | @end 6 | -------------------------------------------------------------------------------- /MLAVAssetPlayer.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "MLAVAssetPlayerDelegate.h" 3 | 4 | @interface MLAVAssetPlayer : NSObject 5 | @property (nonatomic, assign, readwrite) float rate; 6 | @property (nonatomic, weak, readwrite) id delegate; 7 | - (AVPlayerItem *)playerItem; 8 | @end -------------------------------------------------------------------------------- /MLAVAssetPlayerDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol MLAVAssetPlayerDelegate 4 | @end 5 | -------------------------------------------------------------------------------- /MLAVPIPPlayerLayerView.h: -------------------------------------------------------------------------------- 1 | #import "MLAVPlayerLayerView.h" 2 | #import "MLAVPlayer.h" 3 | #import "MLAVPlayerViewDelegate.h" 4 | 5 | @interface MLAVPIPPlayerLayerView : MLAVPlayerLayerView 6 | @property (nonatomic, readonly, strong) AVPlayerLayer *playerLayer; 7 | @property (nonatomic, readwrite, weak) NSObject *delegate; 8 | @end -------------------------------------------------------------------------------- /MLAVPlayer.h: -------------------------------------------------------------------------------- 1 | #import "MLAVAssetPlayer.h" 2 | #import "MLAVAssetPlayerDelegate.h" 3 | #import "MLInnerTubePlayerConfig.h" 4 | #import "MLPlayerEventCenter.h" 5 | #import "MLPlayerStickySettings.h" 6 | #import "MLPlayerViewProtocol.h" 7 | #import "MLQueuePlayerDelegate.h" 8 | #import "MLStreamSelectorDelegate.h" 9 | #import "MLVideoFormatConstraint.h" 10 | 11 | @interface MLAVPlayer : NSObject 12 | @property (nonatomic, readwrite, assign) BOOL active; 13 | @property (nonatomic, readonly, assign) BOOL externalPlaybackActive; 14 | @property (nonatomic, readwrite, assign) float rate; 15 | @property (nonatomic, strong, readwrite) NSObject *videoFormatConstraint; 16 | @property (nonatomic, readonly, strong) MLVideo *video; 17 | @property (nonatomic, readonly, strong) MLInnerTubePlayerConfig *config; 18 | @property (nonatomic, readonly, strong) MLAVAssetPlayer *assetPlayer; 19 | @property (nonatomic, readonly, strong) MLPlayerEventCenter *playerEventCenter; 20 | @property (nonatomic, readwrite, strong) UIView *renderingView; 21 | @property (nonatomic, weak, readwrite) id delegate; 22 | - (instancetype)initWithVideo:(MLVideo *)video playerConfig:(MLInnerTubePlayerConfig *)playerConfig stickySettings:(MLPlayerStickySettings *)stickySettings externalPlaybackActive:(BOOL)externalPlaybackActive; 23 | - (NSArray *)selectableVideoFormats; 24 | @end -------------------------------------------------------------------------------- /MLAVPlayerLayerView.h: -------------------------------------------------------------------------------- 1 | #import "MLPlayerViewProtocol.h" 2 | #import "HAMPixelBufferRenderingView.h" 3 | 4 | @interface MLAVPlayerLayerView : UIView 5 | @end -------------------------------------------------------------------------------- /MLAVPlayerViewDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol MLAVPlayerViewDelegate 4 | @required 5 | - (void)playerViewErrorDidOccur:(id)arg1; 6 | @end 7 | -------------------------------------------------------------------------------- /MLDefaultPlayerViewFactory.h: -------------------------------------------------------------------------------- 1 | #include "GIMMe.h" 2 | #import "MLVideo.h" 3 | #import "MLInnerTubePlayerConfig.h" 4 | #import "MLAVPlayerLayerView.h" 5 | 6 | @interface MLDefaultPlayerViewFactory : NSObject 7 | @property (nonatomic, weak, readwrite) GIMMe *gimme; 8 | - (BOOL)canUsePlayerView:(UIView *)playerView forVideo:(MLVideo *)video playerConfig:(MLInnerTubePlayerConfig *)config; 9 | - (MLAVPlayerLayerView *)AVPlayerViewForVideo:(MLVideo *)video playerConfig:(MLInnerTubePlayerConfig *)config; 10 | @end -------------------------------------------------------------------------------- /MLFormat.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "HAMFormat.h" 3 | #import "HAMMIMEType.h" 4 | #import "YTIAudioTrack.h" 5 | #import "YTIFormatStream.h" 6 | 7 | @interface MLFormat : NSObject 8 | @property (nonatomic, readonly, strong) YTIAudioTrack *audioTrack; 9 | - (instancetype)initWithFormatStream:(YTIFormatStream *)formatStream; 10 | - (HAMMIMEType *)MIMEType; 11 | - (YTIFormatStream *)formatStream; 12 | - (NSURL *)URL; 13 | - (NSString *)qualityLabel; 14 | - (int)itag; 15 | - (int)width; 16 | - (int)height; 17 | - (int)singleDimensionResolution; 18 | - (CGFloat)FPS; 19 | - (BOOL)isAudio; 20 | - (BOOL)isVideo; 21 | - (BOOL)isText; 22 | - (NSInteger)compareByQuality:(MLFormat *)format; 23 | - (NSInteger)bitrate; 24 | @end 25 | -------------------------------------------------------------------------------- /MLHAMPlayer.h: -------------------------------------------------------------------------------- 1 | #import "MLVideo.h" 2 | #import "MLInnerTubePlayerConfig.h" 3 | #import "MLPlayerStickySettings.h" 4 | 5 | @interface MLHAMPlayer : NSObject 6 | - (instancetype)initWithVideo:(MLVideo *)video playerConfig:(MLInnerTubePlayerConfig *)playerConfig stickySettings:(MLPlayerStickySettings *)stickySettings playerViewProvider:(id)playerViewProvider; 7 | @end -------------------------------------------------------------------------------- /MLHAMPlayerItem.h: -------------------------------------------------------------------------------- 1 | #import "MLABRPolicy.h" 2 | #import "MLFormat.h" 3 | #import "MLInnerTubePlayerConfig.h" 4 | #import "MLVideoFormatConstraint.h" 5 | 6 | @interface MLHAMPlayerItem : NSObject 7 | @property (nonatomic, assign, readwrite) BOOL peggedToLive; 8 | @property (nonatomic, readonly, strong) MLInnerTubePlayerConfig *config; 9 | @property (nonatomic, strong, readwrite) id videoFormatConstraint; 10 | - (void)ABRPolicy:(MLABRPolicy *)policy selectableFormatsDidChange:(NSArray *)formats; 11 | - (NSArray *)selectableVideoFormats; 12 | @end -------------------------------------------------------------------------------- /MLHAMPlayerItemSegment.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MLHAMPlayerItemSegment : NSObject 4 | - (MLHAMPlayerItem *)playerItem; 5 | @end 6 | -------------------------------------------------------------------------------- /MLHAMPlayerViewProtocol.h: -------------------------------------------------------------------------------- 1 | #import "MLVideo.h" 2 | #import "MLInnerTubePlayerConfig.h" 3 | 4 | @protocol MLHAMPlayerViewProtocol 5 | - (void)makeActivePlayer; 6 | - (void)setVideo:(MLVideo *)video playerConfig:(MLInnerTubePlayerConfig *)playerConfig; 7 | @end -------------------------------------------------------------------------------- /MLHAMQueuePlayer.h: -------------------------------------------------------------------------------- 1 | #import "MLHAMPlayer.h" 2 | #import "MLPlayerDelegate.h" 3 | 4 | @interface MLHAMQueuePlayer : MLHAMPlayer 5 | @property (nonatomic, weak, readwrite) id delegate; 6 | - (void)internalSetRate; 7 | @end -------------------------------------------------------------------------------- /MLHAMSBDLSampleBufferRenderingView.h: -------------------------------------------------------------------------------- 1 | #import "HAMSBDLSampleBufferRenderingView.h" 2 | 3 | @interface MLHAMSBDLSampleBufferRenderingView : HAMSBDLSampleBufferRenderingView 4 | @end -------------------------------------------------------------------------------- /MLHLSMasterPlaylist.h: -------------------------------------------------------------------------------- 1 | #import "MLHLSRemotePlaylist.h" 2 | 3 | @interface MLHLSMasterPlaylist : NSObject 4 | - (NSArray *)remotePlaylists; 5 | @end 6 | -------------------------------------------------------------------------------- /MLHLSRemotePlaylist.h: -------------------------------------------------------------------------------- 1 | #import "MLRemoteStream.h" 2 | 3 | @interface MLHLSRemotePlaylist : MLRemoteStream 4 | @end 5 | -------------------------------------------------------------------------------- /MLHLSStreamSelector.h: -------------------------------------------------------------------------------- 1 | #import "MLStreamSelector.h" 2 | 3 | @interface MLHLSStreamSelector : MLStreamSelector 4 | @end 5 | -------------------------------------------------------------------------------- /MLInnerTubePlayerConfig.h: -------------------------------------------------------------------------------- 1 | #import "YTIMediaCommonConfig.h" 2 | #import "YTIHamplayerConfig.h" 3 | 4 | @interface MLInnerTubePlayerConfig : NSObject 5 | @property (nonatomic, readonly, strong) YTIMediaCommonConfig *mediaCommonConfig; 6 | @property (nonatomic, readonly, strong) YTIHamplayerConfig *hamplayerConfig; 7 | - (BOOL)varispeedAllowed; 8 | @end -------------------------------------------------------------------------------- /MLOnesieVideoData.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MLOnesieVideoData : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /MLPIPController.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "MLAVPIPPlayerLayerView.h" 3 | #import "MLHAMSBDLSampleBufferRenderingView.h" 4 | 5 | @interface MLPIPController : NSObject 6 | @property (nonatomic, strong, readwrite) MLAVPIPPlayerLayerView *AVPlayerView; 7 | @property (nonatomic, strong, readwrite) MLHAMSBDLSampleBufferRenderingView *HAMPlayerView; 8 | - (instancetype)initWithPlaceholderPlayerItem:(AVPlayerItem *)playerItem; // Deprecated 9 | - (instancetype)initWithPlaceholderPlayerItemResourcePath:(NSString *)placeholderPath; // Deprecated 10 | - (AVPictureInPictureControllerContentSource *)newContentSource API_AVAILABLE(ios(15.0)); 11 | - (BOOL)isPictureInPictureSupported; 12 | - (BOOL)isPictureInPictureActive; // Deprecated 13 | - (BOOL)pictureInPictureActive; 14 | - (BOOL)contentSourceNeedsRefresh; 15 | - (CGSize)renderSizeForView:(UIView *)view; 16 | - (BOOL)startPictureInPicture; // Deprecated 17 | - (void)stopPictureInPicture; // Deprecated 18 | - (void)addPIPControllerObserver:(id)observer; 19 | - (void)activatePiPController; 20 | - (void)deactivatePiPController; 21 | - (void)pictureInPictureControllerStartPlayback; 22 | - (void)pictureInPictureControllerStopPlayback; 23 | - (void)pause; 24 | @end -------------------------------------------------------------------------------- /MLPlatypusABRLoader.h: -------------------------------------------------------------------------------- 1 | #import "MLFormat.h" 2 | 3 | @interface MLPlatypusABRLoader : NSObject 4 | - (NSArray *)formatsForFormatIDs:(const void *)formatIDs; 5 | @end 6 | -------------------------------------------------------------------------------- /MLPlayerDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol MLPlayerDelegate 4 | - (void)playerRateDidChange:(float)rate; 5 | @end 6 | -------------------------------------------------------------------------------- /MLPlayerEventCenter.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MLPlayerEventCenter : NSObject 4 | - (void)broadcastRateChange:(float)rate; 5 | @end 6 | -------------------------------------------------------------------------------- /MLPlayerPool.h: -------------------------------------------------------------------------------- 1 | #import "GIMMe.h" 2 | #import "MLVideo.h" 3 | #import "MLInnerTubePlayerConfig.h" 4 | 5 | @interface MLPlayerPool : NSObject 6 | @property (nonatomic, weak, readwrite) GIMMe *gimme; 7 | - (void)createHamResourcesForVideo:(MLVideo *)video playerConfig:(MLInnerTubePlayerConfig *)playerConfig; 8 | @end -------------------------------------------------------------------------------- /MLPlayerPoolImpl.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MLPlayerPoolImpl : NSObject 4 | @end -------------------------------------------------------------------------------- /MLPlayerStickySettings.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MLPlayerStickySettings : NSObject 4 | @property (nonatomic, assign, readwrite) float rate; 5 | @property (nonatomic, assign, readwrite) int videoQualitySetting; 6 | @end -------------------------------------------------------------------------------- /MLPlayerViewProtocol.h: -------------------------------------------------------------------------------- 1 | #import "MLVideo.h" 2 | #import "MLInnerTubePlayerConfig.h" 3 | 4 | @protocol MLPlayerViewProtocol 5 | - (void)makeActivePlayer; 6 | - (void)setVideo:(MLVideo *)video playerConfig:(MLInnerTubePlayerConfig *)playerConfig; 7 | @end -------------------------------------------------------------------------------- /MLQOEPingController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MLQOEPingController : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /MLQueuePlayerDelegate.h: -------------------------------------------------------------------------------- 1 | #import "MLPlayerDelegate.h" 2 | 3 | @protocol MLQueuePlayerDelegate 4 | @end 5 | -------------------------------------------------------------------------------- /MLQuickMenuVideoQualitySettingFormatConstraint.h: -------------------------------------------------------------------------------- 1 | #import "MLVideoFormatConstraint.h" 2 | 3 | @interface MLQuickMenuVideoQualitySettingFormatConstraint : NSObject 4 | @property (nonatomic, readonly, assign) int formatSelectionReason; 5 | @property (nonatomic, readonly, assign) BOOL disableTrack; 6 | - (instancetype)initWithVideoQualitySetting:(int)videoQualitySetting formatSelectionReason:(NSInteger)formatSelectionReason qualityLabel:(NSString *)qualityLabel; 7 | - (instancetype)initWithVideoQualitySetting:(int)videoQualitySetting formatSelectionReason:(NSInteger)formatSelectionReason qualityLabel:(NSString *)qualityLabel resolutionCap:(int)resolutionCap; 8 | @end 9 | -------------------------------------------------------------------------------- /MLRemoteStream.h: -------------------------------------------------------------------------------- 1 | #import "YTIFormatStream.h" 2 | #import "MLFormat.h" 3 | 4 | @interface MLRemoteStream : MLFormat 5 | + (instancetype)streamWithFormatStream:(YTIFormatStream *)formatStream; 6 | @end 7 | -------------------------------------------------------------------------------- /MLServerABRFormatAssociatedData.h: -------------------------------------------------------------------------------- 1 | #import "HAMFormatDescription.h" 2 | 3 | @interface MLServerABRFormatAssociatedData : NSObject 4 | @property (nonatomic, strong, readwrite) HAMFormatDescription *formatDescription; 5 | @end 6 | -------------------------------------------------------------------------------- /MLStreamSelector.h: -------------------------------------------------------------------------------- 1 | #import "MLStreamSelectorDelegate.h" 2 | 3 | @interface MLStreamSelector : NSObject 4 | @property (nonatomic, weak, readwrite) id delegate; 5 | @end 6 | -------------------------------------------------------------------------------- /MLStreamSelectorDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol MLStreamSelectorDelegate 4 | @required 5 | - (void)streamSelectorHasSelectableAudioFormats:(NSArray *)formats; 6 | - (void)streamSelectorHasSelectableVideoFormats:(NSArray *)formats; 7 | @end 8 | -------------------------------------------------------------------------------- /MLStreamingData.h: -------------------------------------------------------------------------------- 1 | #import "MLRemoteStream.h" 2 | 3 | @interface MLStreamingData : NSObject 4 | - (NSArray *)adaptiveStreams; 5 | @end -------------------------------------------------------------------------------- /MLVideo.h: -------------------------------------------------------------------------------- 1 | #import "MLStreamingData.h" 2 | #import "YTIVideoDetails.h" 3 | 4 | @interface MLVideo : NSObject 5 | - (MLStreamingData *)streamingData; 6 | - (YTIVideoDetails *)videoDetails; 7 | @end 8 | -------------------------------------------------------------------------------- /MLVideoDecoderFactory.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MLVideoDecoderFactory : NSObject 4 | @end -------------------------------------------------------------------------------- /MLVideoFormatConstraint.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol MLVideoFormatConstraint 4 | - (int)videoQualitySetting; 5 | - (int)stickyResolutionCap; 6 | @end 7 | -------------------------------------------------------------------------------- /NSArray+YouTube.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface NSArray (YouTube) 4 | - (id)yt_objectAtIndexOrNil:(NSInteger)index; 5 | @end 6 | -------------------------------------------------------------------------------- /QTMIcon.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface QTMIcon : NSObject 4 | + (UIImage *)imageWithName:(NSString *)name color:(UIColor *)color; 5 | + (UIImage *)tintImage:(UIImage *)image color:(UIColor *)color; 6 | @end 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # YouTubeHeader 2 | 3 | Headers for iOS YouTube app. 4 | 5 | To use this, clone the repository to `$THEOS/include/YouTubeHeader`. 6 | -------------------------------------------------------------------------------- /SRLRegistry.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | struct _SRLAPIRegistrationData { 4 | char *name; 5 | // ... 6 | }; 7 | 8 | struct SRLScopeTagSet { 9 | void *_field1[4]; 10 | }; 11 | 12 | @interface SRLRegistry : NSObject 13 | - (id)internalService:(struct _SRLAPIRegistrationData *)service scopeTags:(struct SRLScopeTagSet)tags; 14 | @end 15 | -------------------------------------------------------------------------------- /UIColor+YouTube.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface UIColor (YouTube) 4 | + (instancetype)gid_colorWithRGBHex:(NSUInteger)hex; 5 | + (instancetype)LOT_colorWithHexString:(NSString *)hexString; 6 | - (unsigned int)rgbHex; 7 | - (NSString *)LOT_hexStringValue; 8 | @end 9 | -------------------------------------------------------------------------------- /UIDevice+YouTube.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface UIDevice (YouTube) 4 | + (NSString *)machineName; 5 | @end 6 | -------------------------------------------------------------------------------- /UIImage+YouTube.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface UIImage (YouTube) 5 | + (UIImage *)imageWithContentsOfURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy error:(NSError **)error; 6 | - (instancetype)yt_imageScaledToSize:(CGSize)size; 7 | @end 8 | -------------------------------------------------------------------------------- /UIView+AsyncDisplayKit.h: -------------------------------------------------------------------------------- 1 | #import "ASDisplayNode.h" 2 | 3 | @interface UIView (AsyncDisplayKit) 4 | - (void)addSubnode:(ASDisplayNode *)subnode; 5 | @end 6 | -------------------------------------------------------------------------------- /UIView+YouTube.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface UIView (YouTube) 4 | - (BOOL)yt_isVisible; 5 | - (void)yt_setOrigin:(CGPoint)origin; 6 | - (void)yt_setSize:(CGSize)size; 7 | - (void)yt_setWidth:(CGFloat)width; 8 | - (void)yt_setHeight:(CGFloat)height; 9 | - (void)goo_flipViewForRTL; 10 | - (void)goo_relayoutSubviewsForRTL; 11 | - (void)alignCenterBottomToCenterBottomOfView:(UIView *)view paddingY:(CGFloat)paddingY; 12 | - (void)alignCenterTopToCenterBottomOfView:(UIView *)view paddingY:(CGFloat)paddingY; 13 | - (void)alignCenterTopToCenterTopOfView:(UIView *)view paddingY:(CGFloat)paddingY; 14 | - (void)alignCenterBottomToCenterTopOfView:(UIView *)view paddingY:(CGFloat)paddingY; 15 | - (void)alignCenterLeadingToCenterLeadingOfView:(UIView *)view paddingX:(CGFloat)paddingX; 16 | - (void)alignCenterLeadingToCenterTrailingOfView:(UIView *)view paddingX:(CGFloat)paddingX; 17 | - (void)alignCenterTopToCenterBottomOfView:(UIView *)view paddingY:(CGFloat)paddingY; 18 | - (void)alignCenterTopToCenterTopOfView:(UIView *)view paddingY:(CGFloat)paddingY; 19 | - (void)alignCenterTrailingToCenterLeadingOfView:(UIView *)view paddingX:(CGFloat)paddingX; 20 | - (void)alignCenterTrailingToCenterTrailingOfView:(UIView *)view paddingX:(CGFloat)paddingX; 21 | - (void)alignTopLeadingToBottomLeadingOfView:(UIView *)view paddingX:(CGFloat)paddingX paddingY:(CGFloat)paddingY; 22 | - (void)alignTopLeadingToBottomTrailingOfView:(UIView *)view paddingX:(CGFloat)paddingX paddingY:(CGFloat)paddingY; 23 | - (void)alignTopTrailingToBottomLeadingOfView:(UIView *)view paddingX:(CGFloat)paddingX paddingY:(CGFloat)paddingY; 24 | - (void)alignTopTrailingToBottomTrailingOfView:(UIView *)view paddingX:(CGFloat)paddingX paddingY:(CGFloat)paddingY; 25 | @end 26 | -------------------------------------------------------------------------------- /YTAccountScopedInnerTubeContextFactory.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTAccountScopedInnerTubeContextFactory : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTActionSheetAction.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface YTActionSheetAction : NSObject 5 | @property (nonatomic, copy, readwrite) id handler; 6 | @property (nonatomic, strong, readwrite) UIButton *button; 7 | @property (nonatomic, assign, readwrite) BOOL shouldDismissOnAction; 8 | + (instancetype)actionWithTitle:(NSString *)title style:(NSInteger)style handler:(void (^)(YTActionSheetAction *))handler; 9 | + (instancetype)actionWithTitle:(NSString *)title iconImage:(UIImage *)iconImage style:(NSInteger)style handler:(void (^)(YTActionSheetAction *))handler; 10 | + (instancetype)actionWithTitle:(NSString *)title subtitle:(NSString *)subtitle iconImage:(UIImage *)iconImage handler:(void (^)(YTActionSheetAction *))handler; 11 | + (instancetype)actionWithTitle:(NSString *)title subtitle:(NSString *)subtitle iconImage:(UIImage *)iconImage accessibilityIdentifier:(NSString *)accessibilityIdentifier handler:(void (^)(YTActionSheetAction *))handler; 12 | @end 13 | -------------------------------------------------------------------------------- /YTActionSheetController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTActionSheetController : NSObject 4 | + (instancetype)actionSheetController; 5 | - (void)addCancelActionIfNeeded; 6 | - (void)presentFromViewController:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^)(void))completion; 7 | @end 8 | -------------------------------------------------------------------------------- /YTActionSheetDialogViewController.h: -------------------------------------------------------------------------------- 1 | #import "GOODialogView.h" 2 | #import "YTActionSheetDialogViewControllerDelegate.h" 3 | 4 | @interface YTActionSheetDialogViewController : UIViewController 5 | @property (nonatomic, weak, readwrite) id delegate; 6 | - (GOODialogView *)actionSheetView; 7 | @end 8 | -------------------------------------------------------------------------------- /YTActionSheetDialogViewControllerDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTActionSheetDialogViewControllerDelegate 4 | @end 5 | -------------------------------------------------------------------------------- /YTAdjustableAccessibilityProtocol.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTAdjustableAccessibilityProtocol 4 | @end 5 | -------------------------------------------------------------------------------- /YTAlertView.h: -------------------------------------------------------------------------------- 1 | #import "GOOAlertView.h" 2 | 3 | @interface YTAlertView : GOOAlertView 4 | + (instancetype)yt_dialog; 5 | - (void)removeDefaultPadding; 6 | @end 7 | -------------------------------------------------------------------------------- /YTAppCollectionViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTInnerTubeCollectionViewController.h" 2 | 3 | @interface YTAppCollectionViewController : YTInnerTubeCollectionViewController 4 | @end 5 | -------------------------------------------------------------------------------- /YTAppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTAppDelegate : UIResponder 4 | @end 5 | -------------------------------------------------------------------------------- /YTAppSettingsSectionItemActionController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTAppSettingsSectionItemActionController : NSObject 4 | @end -------------------------------------------------------------------------------- /YTAppSettingsStore.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTAppSettingsStore : NSObject 4 | + (NSUInteger)valueTypeForSetting:(int)setting; 5 | - (void)setValue:(NSNumber *)value forSetting:(int)setting; 6 | - (void)setBool:(BOOL)value forSetting:(int)setting; 7 | - (NSNumber *)valueForSetting:(int)setting; 8 | - (BOOL)boolForSetting:(int)setting; 9 | @end -------------------------------------------------------------------------------- /YTAppViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTMultiSizeViewController.h" 2 | 3 | @interface YTAppViewController : YTMultiSizeViewController 4 | - (NSInteger)pageStyle; 5 | @end 6 | -------------------------------------------------------------------------------- /YTAppViewControllerImpl.h: -------------------------------------------------------------------------------- 1 | #import "YTMultiSizeViewController.h" 2 | 3 | @interface YTAppViewControllerImpl : YTMultiSizeViewController 4 | - (NSInteger)pageStyle; 5 | @end 6 | -------------------------------------------------------------------------------- /YTApplicationNotificationsObserver.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @protocol YTApplicationNotificationsObserver 5 | - (void)appWillEnterForeground:(UIApplication *)application; 6 | - (void)appWillResignActive:(UIApplication *)application; 7 | - (void)addDidBecomeActive:(UIApplication *)application; 8 | - (void)appDidEnterBackground:(UIApplication *)application; 9 | @end 10 | -------------------------------------------------------------------------------- /YTAssetLoader.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTAssetLoader : NSObject 4 | - (instancetype)initWithBundle:(NSBundle *)bundle; 5 | - (UIImage *)imageNamed:(NSString *)image; 6 | @end 7 | -------------------------------------------------------------------------------- /YTAsyncCollectionView.h: -------------------------------------------------------------------------------- 1 | #import "ASCollectionView.h" 2 | #import "YTPageStyling.h" 3 | 4 | @interface YTAsyncCollectionView : ASCollectionView 5 | @property (nonatomic, weak, readwrite) id pageStylingDelegate; 6 | @end 7 | -------------------------------------------------------------------------------- /YTAttributedLabel.h: -------------------------------------------------------------------------------- 1 | #import "YTIFormattedString.h" 2 | #import "YTPlainLabel.h" 3 | 4 | @protocol YTAttributedLabel 5 | @property (nonatomic, readonly, strong) NSAttributedString *attributedText; 6 | - (void)setFormattedString:(YTIFormattedString *)formattedString; 7 | @end 8 | -------------------------------------------------------------------------------- /YTAttributedLabelFactory.h: -------------------------------------------------------------------------------- 1 | #import "YTAttributedLabel.h" 2 | 3 | @interface YTAttributedLabelFactory : NSObject 4 | + (id )attributedLabel; 5 | @end 6 | -------------------------------------------------------------------------------- /YTAutonavEndscreenController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTAutonavEndscreenController : NSObject 4 | @end -------------------------------------------------------------------------------- /YTAutoplayController.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | 3 | @interface YTAutoplayController : NSObject 4 | - (YTICommand *)autoplayEndpoint; 5 | @end 6 | -------------------------------------------------------------------------------- /YTBackgroundabilityPolicy.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTBackgroundabilityPolicy : NSObject 4 | @property (nonatomic, readonly, assign, getter=isBackgroundableByUserSettings) BOOL backgroundableByUserSettings; 5 | @property (nonatomic, readonly, assign, getter=isPlayableInPictureInPictureByUserSettings) BOOL playableInPiPByUserSettings; 6 | - (void)addBackgroundabilityPolicyObserver:(id)observer; 7 | @end 8 | -------------------------------------------------------------------------------- /YTBackgroundabilityPolicyImpl.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTBackgroundabilityPolicyImpl : NSObject 4 | @property (nonatomic, readonly, assign, getter=isBackgroundableByUserSettings) BOOL backgroundableByUserSettings; 5 | @property (nonatomic, readonly, assign, getter=isPlayableInPictureInPictureByUserSettings) BOOL playableInPiPByUserSettings; 6 | @end 7 | -------------------------------------------------------------------------------- /YTBaseFeedController.h: -------------------------------------------------------------------------------- 1 | #import "YTResponder.h" 2 | 3 | @interface YTBaseFeedController : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTBaseInnerTubeViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTResponder.h" 2 | 3 | @interface YTBaseInnerTubeViewController : UIViewController 4 | @end 5 | -------------------------------------------------------------------------------- /YTCellController.h: -------------------------------------------------------------------------------- 1 | #import "YTCollectionViewCellProtocol.h" 2 | #import "YTResponder.h" 3 | 4 | @interface YTCellController : NSObject 5 | - (id *)cell; 6 | @end -------------------------------------------------------------------------------- /YTCoWatchWatchEndpointWrapperCommandHandler.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTCoWatchWatchEndpointWrapperCommandHandler : NSObject 4 | - (void)sendOriginalCommandWithNavigationEndpoint:(id)navigationEndpoint fromView:(id)view entry:(id)entry sender:(id)sender completionBlock:(id)completionBlock; 5 | @end 6 | -------------------------------------------------------------------------------- /YTColdConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTColdConfig : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | #import "YTSlideForActionsView.h" 2 | 3 | @interface YTCollectionViewCell : UICollectionViewCell 4 | @property (nonatomic, strong, readwrite) YTSlideForActionsView *slideForActionsView; 5 | @end -------------------------------------------------------------------------------- /YTCollectionViewCellProtocol.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTCollectionViewCellProtocol 4 | @end -------------------------------------------------------------------------------- /YTCollectionViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTMultiSizeViewController.h" 2 | #import "YTServiceSectionController.h" 3 | 4 | @interface YTCollectionViewController : YTMultiSizeViewController 5 | @property (nonatomic, strong, readwrite) NSArray *sectionControllers; // Normally YTServiceSectionController 6 | - (YTSectionController *)sectionControllerAtIndexPath:(NSIndexPath *)indexPath; 7 | @end 8 | -------------------------------------------------------------------------------- /YTColor.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTColor : NSObject 4 | + (UIColor *)white1; 5 | + (UIColor *)white3; 6 | + (UIColor *)black1; 7 | + (UIColor *)black2; 8 | + (UIColor *)black3; 9 | + (UIColor *)grey3Alpha70; 10 | + (UIColor *)grey4Alpha60; 11 | + (UIColor *)youTubeRed; 12 | @end -------------------------------------------------------------------------------- /YTColorPalette.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | // Deprecated, use YTCommonColorPalette 5 | @interface YTColorPalette : NSObject 6 | + (instancetype)lightPalette; 7 | + (instancetype)darkPalette; 8 | + (instancetype)colorPaletteForPageStyle:(NSInteger)pageStyle; 9 | - (NSInteger)pageStyle; 10 | - (UIColor *)background1; 11 | - (UIColor *)background2; 12 | - (UIColor *)background3; 13 | - (UIColor *)brandBackgroundSolid; 14 | - (UIColor *)brandBackgroundPrimary; 15 | - (UIColor *)brandBackgroundSecondary; 16 | - (UIColor *)generalBackgroundA; 17 | - (UIColor *)generalBackgroundB; 18 | - (UIColor *)generalBackgroundC; 19 | - (UIColor *)errorBackground; 20 | - (UIColor *)textPrimary; 21 | - (UIColor *)textSecondary; 22 | - (UIColor *)textDisabled; 23 | - (UIColor *)textPrimaryInverse; 24 | - (UIColor *)callToAction; 25 | - (UIColor *)iconActive; 26 | - (UIColor *)iconActiveOther; 27 | - (UIColor *)iconInactive; 28 | - (UIColor *)iconDisabled; 29 | - (UIColor *)badgeChipBackground; 30 | - (UIColor *)buttonChipBackgroundHover; 31 | - (UIColor *)touchResponse; 32 | - (UIColor *)callToActionInverse; 33 | - (UIColor *)brandIconActive; 34 | - (UIColor *)brandIconInactive; 35 | - (UIColor *)brandButtonBackground; 36 | - (UIColor *)brandLinkText; 37 | - (UIColor *)tenPercentLayer; 38 | - (UIColor *)snackbarBackground; 39 | - (UIColor *)themedBlue; 40 | - (UIColor *)themedGreen; 41 | - (UIColor *)staticBrandRed; 42 | - (UIColor *)staticBrandWhite; 43 | - (UIColor *)staticBrandBlack; 44 | - (UIColor *)staticClearColor; 45 | - (UIColor *)staticAdYellow; 46 | - (UIColor *)staticGrey; 47 | - (UIColor *)overlayBackgroundSolid; 48 | - (UIColor *)overlayBackgroundHeavy; 49 | - (UIColor *)overlayBackgroundMedium; 50 | - (UIColor *)overlayBackgroundMediumLight; 51 | - (UIColor *)overlayBackgroundLight; 52 | - (UIColor *)overlayTextPrimary; 53 | - (UIColor *)overlayTextSecondary; 54 | - (UIColor *)overlayTextTertiary; 55 | - (UIColor *)overlayIconActiveCallToAction; 56 | - (UIColor *)overlayIconActiveOther; 57 | - (UIColor *)overlayIconInactive; 58 | - (UIColor *)overlayIconDisabled; 59 | - (UIColor *)overlayFilledButtonActive; 60 | - (UIColor *)overlayButtonSecondary; 61 | - (UIColor *)overlayButtonPrimary; 62 | - (UIColor *)overlayBackgroundBrand; 63 | - (UIColor *)overlayBackgroundClear; 64 | - (UIColor *)verifiedBadgeBackground; 65 | - (UIColor *)themedOverlayBackground; 66 | - (UIColor *)adIndicator; 67 | @end 68 | -------------------------------------------------------------------------------- /YTCommandResponderEvent.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTICommand.h" 3 | 4 | @interface YTCommandResponderEvent : NSObject 5 | + (instancetype)eventWithCommand:(YTICommand *)command entry:(id)entry sendClick:(BOOL)sendClick firstResponder:(id)firstResponder; 6 | + (instancetype)eventWithCommand:(YTICommand *)command fromView:(UIView *)view entry:(id)entry sendClick:(BOOL)sendClick firstResponder:(id)firstResponder; 7 | - (void)send; 8 | @end 9 | -------------------------------------------------------------------------------- /YTCommonButton.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTCommonButton 4 | @property (nonatomic, assign, readwrite) BOOL refreshRendererAfterPageStyling; 5 | @property (nonatomic, assign, readwrite) CGFloat buttonImageTitlePadding; 6 | @property (nonatomic, assign, readwrite) CGFloat minHitTargetSize; 7 | @property (nonatomic, assign, readwrite) CGFloat verticalContentPadding; 8 | @property (nonatomic, assign, readwrite) NSInteger buttonLayoutStyle; 9 | - (void)setTitleTypeKind:(NSInteger)titleTypeKind; 10 | - (void)setTitleTypeKind:(NSInteger)titleTypeKind typeVariant:(NSInteger)typeVariant; 11 | @end 12 | -------------------------------------------------------------------------------- /YTCommonColorPalette.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | // YouTube 17.19.2 and higher 5 | @interface YTCommonColorPalette : NSObject 6 | + (instancetype)lightPalette; 7 | + (instancetype)darkPalette; 8 | - (NSInteger)pageStyle; 9 | - (UIColor *)background1; 10 | - (UIColor *)background2; 11 | - (UIColor *)background3; 12 | - (UIColor *)staticBlue; 13 | - (UIColor *)brandBackgroundSolid; 14 | - (UIColor *)brandBackgroundPrimary; 15 | - (UIColor *)brandBackgroundSecondary; 16 | - (UIColor *)generalBackgroundA; 17 | - (UIColor *)generalBackgroundB; 18 | - (UIColor *)generalBackgroundC; 19 | - (UIColor *)errorBackground; 20 | - (UIColor *)textPrimary; 21 | - (UIColor *)textSecondary; 22 | - (UIColor *)textDisabled; 23 | - (UIColor *)textPrimaryInverse; 24 | - (UIColor *)callToAction; 25 | - (UIColor *)iconActive; 26 | - (UIColor *)iconActiveOther; 27 | - (UIColor *)iconInactive; 28 | - (UIColor *)iconDisabled; 29 | - (UIColor *)badgeChipBackground; 30 | - (UIColor *)buttonChipBackgroundHover; 31 | - (UIColor *)touchResponse; 32 | - (UIColor *)callToActionInverse; 33 | - (UIColor *)brandIconActive; 34 | - (UIColor *)brandIconInactive; 35 | - (UIColor *)brandButtonBackground; 36 | - (UIColor *)brandLinkText; 37 | - (UIColor *)tenPercentLayer; 38 | - (UIColor *)snackbarBackground; 39 | - (UIColor *)themedBlue; 40 | - (UIColor *)themedGreen; 41 | - (UIColor *)staticBrandRed; 42 | - (UIColor *)staticBrandWhite; 43 | - (UIColor *)staticBrandBlack; 44 | - (UIColor *)staticClearColor; 45 | - (UIColor *)staticAdYellow; 46 | - (UIColor *)staticGrey; 47 | - (UIColor *)overlayBackgroundSolid; 48 | - (UIColor *)overlayBackgroundHeavy; 49 | - (UIColor *)overlayBackgroundMedium; 50 | - (UIColor *)overlayBackgroundMediumLight; 51 | - (UIColor *)overlayBackgroundLight; 52 | - (UIColor *)overlayTextPrimary; 53 | - (UIColor *)overlayTextSecondary; 54 | - (UIColor *)overlayTextTertiary; 55 | - (UIColor *)overlayIconActiveCallToAction; 56 | - (UIColor *)overlayIconActiveOther; 57 | - (UIColor *)overlayIconInactive; 58 | - (UIColor *)overlayIconDisabled; 59 | - (UIColor *)overlayFilledButtonActive; 60 | - (UIColor *)overlayButtonSecondary; 61 | - (UIColor *)overlayButtonPrimary; 62 | - (UIColor *)overlayBackgroundBrand; 63 | - (UIColor *)overlayBackgroundClear; 64 | - (UIColor *)verifiedBadgeBackground; 65 | - (UIColor *)themedOverlayBackground; 66 | - (UIColor *)adIndicator; 67 | - (UIColor *)errorIndicator; // 17.52.1+ 68 | - (UIColor *)baseBackground; // 17.52.1+ 69 | - (UIColor *)raisedBackground; // 17.52.1+ 70 | - (UIColor *)menuBackground; // 17.52.1+ 71 | - (UIColor *)invertedBackground; // 17.52.1+ 72 | - (UIColor *)additiveBackground; // 17.52.1+ 73 | - (UIColor *)outline; // 17.52.1+ 74 | @end 75 | -------------------------------------------------------------------------------- /YTCommonUtils.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTMainWindow.h" 3 | 4 | @interface YTCommonUtils : NSObject 5 | + (BOOL)isIPhoneWithNotch; 6 | + (BOOL)isIPad; 7 | + (BOOL)isSmallDevice; // Deprecated 8 | + (BOOL)isAppRunningInFullScreen; 9 | + (unsigned int)uniformRandomWithUpperBound:(unsigned int)upperBound; 10 | + (YTMainWindow *)mainWindow; 11 | + (NSBundle *)bundleForClass:(Class)cls; // Removed in YouTube 19.26.5 12 | + (NSBundle *)resourceBundleForModuleName:(NSString *)module appBundle:(NSBundle *)appBundle; // Removed in YouTube 19.30.2 13 | + (NSString *)hardwareModel; // Removed in YouTube 19.13.1 14 | @end -------------------------------------------------------------------------------- /YTContentVideoPlayerOverlayView.h: -------------------------------------------------------------------------------- 1 | #import "YTMainAppVideoPlayerOverlayView.h" 2 | 3 | @interface YTContentVideoPlayerOverlayView : YTMainAppVideoPlayerOverlayView 4 | @end -------------------------------------------------------------------------------- /YTDefaultSheetController.h: -------------------------------------------------------------------------------- 1 | #import "YTActionSheetDialogViewControllerDelegate.h" 2 | #import "YTResponder.h" 3 | 4 | @interface YTDefaultSheetController : NSObject 5 | @end 6 | -------------------------------------------------------------------------------- /YTDefaultTypeStyle.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTDefaultTypeStyle : NSObject 4 | - (UIFont *)fontForFontRole:(NSInteger)role size:(CGFloat)size weight:(UIFontWeight)weight; 5 | - (UIFont *)ytSansFontOfSize:(CGFloat)size weight:(UIFontWeight)weight; 6 | - (UIFont *)fontOfSize:(CGFloat)size weight:(UIFontWeight)weight; 7 | @end 8 | -------------------------------------------------------------------------------- /YTELMContext.h: -------------------------------------------------------------------------------- 1 | #import "YTResponder.h" 2 | 3 | @interface YTELMContext : NSObject 4 | - (instancetype)initWithResponder:(id )responder; 5 | - (id )parentResponder; 6 | @end 7 | -------------------------------------------------------------------------------- /YTELMView.h: -------------------------------------------------------------------------------- 1 | #import "ELMView.h" 2 | #import "YTELMContext.h" 3 | #import "YTIElementRenderer.h" 4 | #import "YTResponder.h" 5 | 6 | @interface YTELMView : ELMView 7 | - (instancetype)initWithFrame:(CGRect)frame elementRenderer:(YTIElementRenderer *)elementRenderer parentResponder:(id )parentResponder; 8 | - (instancetype)initWithFrame:(CGRect)frame elementRenderer:(YTIElementRenderer *)elementRenderer context:(YTELMContext *)parentResponder; 9 | @end 10 | -------------------------------------------------------------------------------- /YTEditResources.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTEditResources : NSObject 4 | + (UIImage *)volumeControlsFeatureTabIconMuted:(BOOL)muted templateImage:(BOOL)templateImage; 5 | @end 6 | -------------------------------------------------------------------------------- /YTElementsCellController.h: -------------------------------------------------------------------------------- 1 | #import "YTInnerTubeCellController.h" 2 | 3 | @interface YTElementsCellController : YTInnerTubeCellController 4 | - (id)elementEntry; // Usually YTIElementRenderer 5 | @end 6 | -------------------------------------------------------------------------------- /YTEngagementPanelContainerViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTEngagementPanelContainerViewController : UIViewController 4 | @property (nonatomic, assign, readwrite, getter=isWatchLandscapeEngagementPanel) BOOL watchLandscapeEngagementPanel; // YouTube 20.08.3+ 5 | @property (nonatomic, assign, readwrite, getter=isLandscapeEngagementPanel) BOOL landscapeEngagementPanel; // Removed in YouTube 20.08.3 6 | - (BOOL)isPeekingSupported; 7 | @end -------------------------------------------------------------------------------- /YTFeedSectionController.h: -------------------------------------------------------------------------------- 1 | #import "YTBaseFeedController.h" 2 | 3 | @interface YTFeedSectionController : YTBaseFeedController 4 | @end 5 | -------------------------------------------------------------------------------- /YTFontAttributes.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTFontAttributes : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTFullscreenEngagementActionBarButtonRenderer.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTFullscreenEngagementActionBarButtonRenderer : NSObject 4 | - (BOOL)isLikeButton; 5 | - (BOOL)isDislikeButton; 6 | @end 7 | -------------------------------------------------------------------------------- /YTFullscreenEngagementActionBarButtonView.h: -------------------------------------------------------------------------------- 1 | #import "Block.h" 2 | #import "YTIFormattedStringLabel.h" 3 | 4 | @interface YTFullscreenEngagementActionBarButtonView : UIView 5 | @property (nonatomic, assign, readwrite, getter=isToggled) BOOL toggled; 6 | @property (nonatomic, strong, readwrite) YTIFormattedStringLabel *label; 7 | @end 8 | -------------------------------------------------------------------------------- /YTGlassContainerView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTGlassContainerView : UIView 4 | @end 5 | -------------------------------------------------------------------------------- /YTGlobalConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTGlobalConfig : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTHUDMessage.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "GOOHUDMessage.h" 3 | 4 | @interface YTHUDMessage : GOOHUDMessage 5 | @property (nonatomic, readwrite, strong) UIView *icon; 6 | @end 7 | -------------------------------------------------------------------------------- /YTHUDSnackbarMessage.h: -------------------------------------------------------------------------------- 1 | #import "GOOHUDMessage.h" 2 | 3 | @interface YTHUDSnackbarMessage : GOOHUDMessage 4 | @end 5 | -------------------------------------------------------------------------------- /YTHotConfig.h: -------------------------------------------------------------------------------- 1 | #import "YTIHotConfigGroup.h" 2 | #import "YTIHamplayerHotConfig.h" 3 | 4 | @interface YTHotConfig : NSObject 5 | @property (atomic, strong, readwrite) YTIHotConfigGroup *hotConfigGroup; 6 | - (YTIIosMediaHotConfig *)mediaHotConfig; 7 | - (YTIHamplayerHotConfig *)hamplayerHotConfig; 8 | - (BOOL)iosReleasePipControllerOnMain; 9 | @end -------------------------------------------------------------------------------- /YTIAccessibilityData.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIAccessibilityData : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *label; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIAdLoggingDataContainer.h: -------------------------------------------------------------------------------- 1 | #import "YTIAdSlotLoggingData.h" 2 | 3 | @interface YTIAdLoggingDataContainer : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIAdSlotLoggingData *adSlotLoggingData; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIAdSlotLoggingData.h: -------------------------------------------------------------------------------- 1 | #import "YTISlotData.h" 2 | 3 | @interface YTIAdSlotLoggingData : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTISlotData *slotData; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIAudioTrack.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIAudioTrack : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *displayName; 5 | @property (nonatomic, copy, readwrite) NSString *id_p; 6 | @property (nonatomic, assign, readwrite) BOOL audioIsDefault; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIBrowseEndpoint.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIBrowseEndpoint : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *browseId; 5 | @property (nonatomic, copy, readwrite) NSString *params; 6 | @property (nonatomic, copy, readwrite) NSString *canonicalBaseURL; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIBrowseRequest.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIBrowseRequest : GPBMessage 4 | + (NSString *)browseIDForExploreTab; 5 | + (NSString *)browseIDForAccountTab; 6 | + (NSString *)browseIDForActivityTab; 7 | + (NSString *)browseIDForHomeTab; 8 | + (NSString *)browseIDForLibraryTab; 9 | + (NSString *)browseIDForTrendingTab; 10 | + (NSString *)browseIDForSubscriptionsTab; 11 | + (NSString *)browseIDForWhatToWatch; 12 | @end -------------------------------------------------------------------------------- /YTIButtonRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | #import "YTIFormattedString.h" 3 | #import "YTIIcon.h" 4 | 5 | @interface YTIButtonRenderer : NSObject 6 | @property (nonatomic, strong, readwrite) YTICommand *command; 7 | @property (nonatomic, strong, readwrite) YTIIcon *icon; 8 | @property (nonatomic, strong, readwrite) YTICommand *navigationEndpoint; 9 | @property (nonatomic, copy, readwrite) NSString *targetId; 10 | @property (nonatomic, strong, readwrite) YTIFormattedString *text; 11 | @property (nonatomic, copy, readwrite) NSString *tooltip; 12 | @property (nonatomic, assign, readwrite) int size; 13 | @property (nonatomic, assign, readwrite) int style; 14 | @property (nonatomic, assign, readwrite) BOOL isDisabled; 15 | @end 16 | -------------------------------------------------------------------------------- /YTIButtonSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIToggleButtonRenderer.h" 2 | #import "YTIButtonRenderer.h" 3 | 4 | @interface YTIButtonSupportedRenderers : NSObject 5 | @property (nonatomic, strong, readwrite) YTIToggleButtonRenderer *toggleButtonRenderer; 6 | @property (retain, nonatomic) YTIButtonRenderer *buttonRenderer; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIChapterRenderer.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | #import "YTIFormattedString.h" 3 | 4 | @interface YTIChapterRenderer : GPBMessage 5 | @property (nonatomic, readwrite, strong) YTIFormattedString *title; 6 | @property (nonatomic, readwrite, assign) int timeRangeStartMillis; 7 | @end 8 | -------------------------------------------------------------------------------- /YTICoWatchWatchEndpointWrapperCommand.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | 3 | @interface YTICoWatchWatchEndpointWrapperCommand : GPBMessage 4 | + (GPBExtensionDescriptor *)coWatchWatchEndpointWrapperCommand; 5 | @property (nonatomic, strong, readwrite) YTICommand *watchEndpoint; 6 | @end 7 | -------------------------------------------------------------------------------- /YTIColorInfo.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIColorInfo : NSObject 4 | @property (nonatomic, assign, readwrite) int transferCharacteristics; 5 | @end -------------------------------------------------------------------------------- /YTICommand.h: -------------------------------------------------------------------------------- 1 | #import "YTIBrowseEndpoint.h" 2 | #import "YTICommandExecutorCommand.h" 3 | #import "YTINavigationEndpointInteractionLoggingExtension.h" 4 | #import "YTIReelWatchEndpoint.h" 5 | #import "YTIShowEngagementPanelEndpoint.h" 6 | #import "YTIWatchEndpoint.h" 7 | 8 | @interface YTICommand : GPBMessage 9 | @property (nonatomic, copy, readwrite) NSData *clickTrackingParams; 10 | @property (nonatomic, readwrite, strong) YTIReelWatchEndpoint *reelWatchEndpoint; 11 | @property (nonatomic, readwrite, strong) YTIWatchEndpoint *watchEndpoint; 12 | @property (nonatomic, readwrite, strong) YTIBrowseEndpoint *browseEndpoint; 13 | @property (nonatomic, readwrite, strong) YTINavigationEndpointInteractionLoggingExtension *interactionLoggingExtension; 14 | + (instancetype)message; 15 | + (instancetype)signInNavigationEndpoint; 16 | + (instancetype)watchNavigationEndpointWithVideoID:(NSString *)videoID; 17 | + (instancetype)watchNavigationEndpointWithPlaylistID:(NSString *)playlistID videoID:(NSString *)videoID index:(NSUInteger)index watchNextToken:(id)watchNextToken; 18 | - (YTICommandExecutorCommand *)yt_commandExecutorCommand; 19 | - (YTIShowEngagementPanelEndpoint *)yt_showEngagementPanelEndpoint; 20 | - (BOOL)hasActiveOnlineOrOfflineWatchEndpoint; 21 | @end 22 | -------------------------------------------------------------------------------- /YTICommandExecutorCommand.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @class YTICommand; 4 | 5 | @interface YTICommandExecutorCommand : GPBMessage 6 | @property (nonatomic, strong, readwrite) NSMutableArray *commandsArray; 7 | @end 8 | -------------------------------------------------------------------------------- /YTICompactLinkRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIIcon.h" 2 | 3 | @interface YTICompactLinkRenderer : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIIcon *icon; 5 | @end 6 | -------------------------------------------------------------------------------- /YTICompactVideoRenderer.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | #import "YTRendererForOfflineVideo.h" 3 | 4 | @interface YTICompactVideoRenderer : GPBMessage 5 | @end 6 | -------------------------------------------------------------------------------- /YTIElementRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIElementRendererCompatibilityOptions.h" 2 | 3 | @interface YTIElementRenderer : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIElementRendererCompatibilityOptions *compatibilityOptions; 5 | @property (nonatomic, assign, readwrite) BOOL hasCompatibilityOptions; 6 | @property (nonatomic, assign, readwrite, setter=yt_setIsRemovedByDismissal:) BOOL yt_isRemovedByDismissal; 7 | @property (nonatomic, copy, readwrite) NSData *trackingParams; 8 | @end 9 | -------------------------------------------------------------------------------- /YTIElementRendererCompatibilityOptions.h: -------------------------------------------------------------------------------- 1 | #import "YTIAdLoggingDataContainer.h" 2 | #import "YTIMenuItemSupportedRenderersElementRendererCompatibilityOptionsExtension.h" 3 | 4 | @interface YTIElementRendererCompatibilityOptions : GPBMessage 5 | @property (nonatomic, strong, readwrite) YTIAdLoggingDataContainer *adLoggingData; 6 | @property (nonatomic, assign, readwrite) BOOL hasAdLoggingData; 7 | - (YTIMenuItemSupportedRenderersElementRendererCompatibilityOptionsExtension *)elementsRendererMenuItemExtension; 8 | @end 9 | -------------------------------------------------------------------------------- /YTIEmbeddedFileGroupSchema.h: -------------------------------------------------------------------------------- 1 | #import "ICNClientFileGroup.h" 2 | 3 | @interface YTIEmbeddedFileGroupSchema : GPBMessage 4 | @property (nonatomic, strong, readwrite) NSMutableArray *filegroupsArray; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIEngagementPanelIdentifier.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIEngagementPanelIdentifier : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *tag; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIFormatStream.h: -------------------------------------------------------------------------------- 1 | #import "YTIColorInfo.h" 2 | 3 | @interface YTIFormatStream : NSObject 4 | @property (nonatomic, strong, readwrite) YTIColorInfo *colorInfo; 5 | @property (nonatomic, copy, readwrite) NSString *URL; 6 | @property (nonatomic, copy, readwrite) NSString *qualityLabel; 7 | @end -------------------------------------------------------------------------------- /YTIFormattedString.h: -------------------------------------------------------------------------------- 1 | #import "YTIFormattedStringSupportedAccessibilityDatas.h" 2 | #import "YTIStringRun.h" 3 | 4 | @interface YTIFormattedString : GPBMessage 5 | + (instancetype)formattedStringWithString:(NSString *)string; 6 | @property (nonatomic, strong, readwrite) NSMutableArray *runsArray; 7 | @property (nonatomic, strong, readwrite) YTIFormattedStringSupportedAccessibilityDatas *accessibility; 8 | - (NSString *)stringWithFormattingRemoved; 9 | @end 10 | -------------------------------------------------------------------------------- /YTIFormattedStringLabel.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTIFormattedString.h" 3 | 4 | @interface YTIFormattedStringLabel : UILabel 5 | @property (nonatomic, copy, readwrite) NSAttributedString *attributedText; 6 | - (void)setFormattedString:(YTIFormattedString *)string; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIFormattedStringSupportedAccessibilityDatas.h: -------------------------------------------------------------------------------- 1 | #import "YTIAccessibilityData.h" 2 | 3 | @interface YTIFormattedStringSupportedAccessibilityDatas : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIAccessibilityData *accessibilityData; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIGuideResponse.h: -------------------------------------------------------------------------------- 1 | #import "YTIGuideResponseSupportedRenderers.h" 2 | 3 | @interface YTIGuideResponse : NSObject 4 | - (NSMutableArray *)itemsArray; 5 | @end -------------------------------------------------------------------------------- /YTIGuideResponseSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIPivotBarRenderer.h" 2 | 3 | @interface YTIGuideResponseSupportedRenderers : NSObject 4 | - (YTIPivotBarRenderer *)pivotBarRenderer; 5 | @end -------------------------------------------------------------------------------- /YTIHamplayerABRConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIHamplayerABRConfig : NSObject 4 | @property (nonatomic, assign, readwrite) BOOL preferSoftwareHdrOverHardwareSdr; // Removed in 19.22.3 5 | @end -------------------------------------------------------------------------------- /YTIHamplayerConfig.h: -------------------------------------------------------------------------------- 1 | #import "YTIHamplayerStreamFilter.h" 2 | #import "YTIHamplayerABRConfig.h" 3 | #import "YTIHamplayerSABRAudioTrackRendererConfig.h" 4 | 5 | @interface YTIHamplayerConfig : NSObject 6 | @property (nonatomic, assign, readwrite) int renderViewType; 7 | @property (nonatomic, assign, readwrite) BOOL useSbdlRenderView; 8 | @property (nonatomic, assign, readwrite) BOOL useResolutionForHfrHdFormatFilter; 9 | @property (nonatomic, assign, readwrite) BOOL disableHfrHdFormatFilter; 10 | @property (nonatomic, assign, readwrite) BOOL disableResolveOverlappingQualitiesByCodec; 11 | @property (nonatomic, strong, readwrite) YTIHamplayerStreamFilter *streamFilter; 12 | @property (nonatomic, strong, readwrite) YTIHamplayerABRConfig *videoAbrConfig; 13 | @property (nonatomic, strong, readwrite) YTIHamplayerSBARAudioTrackRendererConfig *sbarAudioTrackRenderer; 14 | @end -------------------------------------------------------------------------------- /YTIHamplayerHotConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIHamplayerHotConfig : NSObject 4 | @property (nonatomic, assign, readwrite) int renderViewType; 5 | @end -------------------------------------------------------------------------------- /YTIHamplayerSABRAudioTrackRendererConfig.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIHamplayerSBARAudioTrackRendererConfig : GPBMessage 4 | @end 5 | -------------------------------------------------------------------------------- /YTIHamplayerSoftwareStreamFilter.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIHamplayerSoftwareStreamFilter : NSObject 4 | @property (nonatomic, assign, readwrite) int maxArea; 5 | @property (nonatomic, assign, readwrite) int maxFps; 6 | @end -------------------------------------------------------------------------------- /YTIHamplayerStreamFilter.h: -------------------------------------------------------------------------------- 1 | #import "YTIHamplayerSoftwareStreamFilter.h" 2 | 3 | @interface YTIHamplayerStreamFilter : NSObject 4 | @property (nonatomic, strong, readwrite) YTIHamplayerSoftwareStreamFilter *av1; 5 | @property (nonatomic, strong, readwrite) YTIHamplayerSoftwareStreamFilter *vp9; 6 | @property (nonatomic, assign, readwrite) BOOL enableVideoCodecSplicing; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIHorizontalListRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIHorizontalListSupportedRenderers.h" 2 | 3 | @interface YTIHorizontalListRenderer : GPBMessage 4 | @property (nonatomic, strong, readwrite) NSMutableArray *itemsArray; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIHorizontalListSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIElementRenderer.h" 2 | 3 | @interface YTIHorizontalListSupportedRenderers : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIElementRenderer *elementRenderer; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIHotConfigGroup.h: -------------------------------------------------------------------------------- 1 | #import "YTIMediaHotConfig.h" 2 | 3 | @interface YTIHotConfigGroup : NSObject 4 | @property (nonatomic, strong, readwrite) YTIMediaHotConfig *mediaHotConfig; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIIcon.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "GPBMessage.h" 3 | #import "YTIcon.h" 4 | 5 | @interface YTIIcon : GPBMessage 6 | @property (nonatomic, assign, readwrite) YTIcon iconType; 7 | - (UIImage *)iconImageWithColor:(UIColor *)color; 8 | - (UIImage *)iconImageWithSelected:(BOOL)selected; 9 | @end 10 | -------------------------------------------------------------------------------- /YTIInlinePlaybackRenderer.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIInlinePlaybackRenderer : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *videoId; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIIosMediaHotConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIIosMediaHotConfig : NSObject 4 | @property (nonatomic, assign, readwrite) BOOL enablePictureInPicture; 5 | @property (nonatomic, assign, readwrite) BOOL enablePipForNonBackgroundableContent; 6 | @property (nonatomic, assign, readwrite) BOOL enablePipForNonPremiumUsers; 7 | @end -------------------------------------------------------------------------------- /YTIIosOnesieHotConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIIosOnesieHotConfig : NSObject 4 | @property (nonatomic, assign, readwrite) BOOL prepareVideoDecoder; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIItemSectionRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIItemSectionSupportedRenderers.h" 2 | 3 | @interface YTIItemSectionRenderer : GPBMessage 4 | @property (nonatomic, strong, readwrite) NSMutableArray *contentsArray; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIItemSectionSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIElementRenderer.h" 2 | 3 | @interface YTIItemSectionSupportedRenderers : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIElementRenderer *elementRenderer; 5 | @property (nonatomic, assign, readwrite) BOOL hasPromotedVideoRenderer; 6 | @property (nonatomic, assign, readwrite) BOOL hasPromotedVideoInlineMutedRenderer; 7 | @property (nonatomic, assign, readwrite) BOOL hasCompactPromotedVideoRenderer; 8 | @end 9 | -------------------------------------------------------------------------------- /YTILikeButtonRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTLikeStatus.h" 2 | #import "YTILikeTarget.h" 3 | #import "YTIFormattedString.h" 4 | 5 | @interface YTILikeButtonRenderer : NSObject 6 | @property (nonatomic, strong, readwrite) YTILikeTarget *target; 7 | @property (nonatomic, strong, readwrite) YTIFormattedString *likeCountText; 8 | @property (nonatomic, strong, readwrite) YTIFormattedString *likeCountWithLikeText; 9 | @property (nonatomic, strong, readwrite) YTIFormattedString *likeCountWithUnlikeText; 10 | @property (nonatomic, strong, readwrite) YTIFormattedString *dislikeCountText; 11 | @property (nonatomic, strong, readwrite) YTIFormattedString *dislikeCountWithDislikeText; 12 | @property (nonatomic, strong, readwrite) YTIFormattedString *dislikeCountWithUndislikeText; 13 | @property (nonatomic, assign, readwrite) BOOL hasLikeCountText; 14 | @property (nonatomic, assign, readwrite) BOOL hasLikeCountWithLikeText; 15 | @property (nonatomic, assign, readwrite) BOOL hasLikeCountWithUnlikeText; 16 | @property (nonatomic, assign, readwrite) BOOL hasDislikeCountText; 17 | @property (nonatomic, assign, readwrite) BOOL hasDislikeCountWithDislikeText; 18 | @property (nonatomic, assign, readwrite) BOOL hasDislikeCountWithUndislikeText; 19 | @property (nonatomic, assign, readwrite) BOOL likesAllowed; 20 | @property (nonatomic, assign, readwrite) YTLikeStatus likeStatus; 21 | @property (nonatomic, assign, readwrite) int likeCount; 22 | @property (nonatomic, assign, readwrite) int dislikeCount; 23 | @end 24 | -------------------------------------------------------------------------------- /YTILikeButtonSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTILikeButtonRenderer.h" 2 | 3 | @interface YTILikeButtonSupportedRenderers : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTILikeButtonRenderer *likeButtonRenderer; 5 | @end 6 | -------------------------------------------------------------------------------- /YTILikeTarget.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTILikeTarget : NSObject 4 | @property (nonatomic, copy, readwrite) NSString *videoId; 5 | @end 6 | -------------------------------------------------------------------------------- /YTILoggingURLRoot.h: -------------------------------------------------------------------------------- 1 | #import "GPBExtensionRegistry.h" 2 | #import "GPBMessage.h" 3 | 4 | @interface YTILoggingURLRoot : GPBMessage 5 | + (GPBExtensionRegistry *)extensionRegistry; 6 | @end 7 | -------------------------------------------------------------------------------- /YTIMediaCommonConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIMediaCommonConfig : NSObject 4 | @property (nonatomic, assign, readwrite) BOOL useServerDrivenAbr; 5 | @end -------------------------------------------------------------------------------- /YTIMediaHotConfig.h: -------------------------------------------------------------------------------- 1 | #import "YTIIosMediaHotConfig.h" 2 | #import "YTIMediaQualitySettingsHotConfig.h" 3 | 4 | @interface YTIMediaHotConfig : NSObject 5 | @property (nonatomic, strong, readwrite) YTIIosMediaHotConfig *iosMediaHotConfig; 6 | @property (nonatomic, strong, readwrite) YTIMediaQualitySettingsHotConfig *mediaQualitySettingsHotConfig; 7 | @end -------------------------------------------------------------------------------- /YTIMediaQualitySettingsHotConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIMediaQualitySettingsHotConfig : NSObject 4 | @property (nonatomic, assign, readwrite) BOOL enablePersistentVideoQualitySettings; 5 | @end -------------------------------------------------------------------------------- /YTIMenuConditionalServiceItemRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | #import "YTIFormattedString.h" 3 | #import "YTIIcon.h" 4 | 5 | @interface YTIMenuConditionalServiceItemRenderer : GPBMessage 6 | @property (nonatomic, strong, readwrite) YTIIcon *icon; 7 | @property (nonatomic, assign, readwrite) BOOL hasIcon; 8 | @property (nonatomic, strong, readwrite) YTIIcon *secondaryIcon; 9 | @property (nonatomic, assign, readwrite) BOOL hasSecondaryIcon; 10 | @property (nonatomic, strong, readwrite) YTICommand *serviceEndpoint; 11 | @property (nonatomic, assign, readwrite) BOOL hasServiceEndpoint; 12 | @property (nonatomic, assign, readwrite) int visibilityConditionType; 13 | @property (nonatomic, assign, readwrite) BOOL hasVisibilityConditionType; 14 | @property (nonatomic, strong, readwrite) YTIFormattedString *text; 15 | @property (nonatomic, assign, readwrite) BOOL hasText; 16 | @end 17 | -------------------------------------------------------------------------------- /YTIMenuItemSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIElementRenderer.h" 2 | #import "YTIMenuNavigationItemRenderer.h" 3 | 4 | @interface YTIMenuItemSupportedRenderers : GPBMessage 5 | @property (nonatomic, strong, readwrite) YTIElementRenderer *elementRenderer; 6 | @property (nonatomic, strong, readwrite) YTIMenuNavigationItemRenderer *menuNavigationItemRenderer; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIMenuItemSupportedRenderersElementRendererCompatibilityOptionsExtension.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIMenuItemSupportedRenderersElementRendererCompatibilityOptionsExtension : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *menuItemIdentifier; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIMenuNavigationItemRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | #import "YTIFormattedString.h" 3 | #import "YTIIcon.h" 4 | 5 | @interface YTIMenuNavigationItemRenderer : GPBMessage 6 | @property (nonatomic, strong, readwrite) YTIIcon *icon; 7 | @property (nonatomic, assign, readwrite) BOOL hasIcon; 8 | @property (nonatomic, strong, readwrite) YTIFormattedString *text; 9 | @property (nonatomic, assign, readwrite) BOOL hasText; 10 | @property (nonatomic, copy, readwrite) NSString *menuItemIdentifier; 11 | @property (nonatomic, strong, readwrite) YTICommand *navigationEndpoint; 12 | @end 13 | -------------------------------------------------------------------------------- /YTIMenuRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIMenuItemSupportedRenderers.h" 2 | 3 | @interface YTIMenuRenderer : GPBMessage 4 | @property (nonatomic, strong, readwrite) NSMutableArray *itemsArray; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIModalClientThrottlingRules.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIModalClientThrottlingRules : GPBMessage 4 | @property (nonatomic, readwrite, assign) BOOL oncePerTimeWindow; 5 | @property (nonatomic, readwrite, assign) BOOL throttledAfterRecentSignIn; 6 | @end 7 | -------------------------------------------------------------------------------- /YTIModularPlayerBarModel.h: -------------------------------------------------------------------------------- 1 | #import "YTIPlayerBarPlayingState.h" 2 | 3 | @interface YTIModularPlayerBarModel : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIPlayerBarPlayingState *playingState; 5 | @end 6 | -------------------------------------------------------------------------------- /YTINavigationEndpointInteractionLoggingExtension.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTINavigationEndpointInteractionLoggingExtension : GPBMessage 4 | @end 5 | -------------------------------------------------------------------------------- /YTIOfflinePromoRenderer.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIOfflinePromoRenderer : NSObject 4 | @end -------------------------------------------------------------------------------- /YTIOfflineabilityRenderer.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIOfflineabilityRenderer : NSObject 4 | @end -------------------------------------------------------------------------------- /YTIOfflineabilitySupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIButtonRenderer.h" 2 | #import "YTIOfflinePromoRenderer.h" 3 | #import "YTIOfflineabilityRenderer.h" 4 | 5 | @interface YTIOfflineabilitySupportedRenderers : NSObject 6 | @property (nonatomic, strong, readwrite) YTIOfflinePromoRenderer *offlinePromoRenderer; 7 | @property (nonatomic, strong, readwrite) YTIOfflineabilityRenderer *offlineabilityRenderer; 8 | @property (nonatomic, strong, readwrite) YTIButtonRenderer *buttonRenderer; 9 | - (int)rendererOneOfCase; 10 | @end -------------------------------------------------------------------------------- /YTIOnesieHotConfig.h: -------------------------------------------------------------------------------- 1 | #import "YTIIosOnesieHotConfig.h" 2 | 3 | @interface YTIOnesieHotConfig : NSObject 4 | @property (nonatomic, strong, readwrite) YTIIosOnesieHotConfig *iosConfig; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIPaygatedQualityDetails.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | 3 | @interface YTIPaygatedQualityDetails : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTICommand *endpoint; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIPictureInPictureRendererRoot.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIPictureInPictureRendererRoot : NSObject 4 | + (id)pictureInPictureRenderer; 5 | @end -------------------------------------------------------------------------------- /YTIPivotBarIconOnlyItemRenderer.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIPivotBarIconOnlyItemRenderer : GPBMessage 4 | - (NSString *)pivotIdentifier; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIPivotBarItemRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | #import "YTIIcon.h" 3 | #import "YTIThumbnailDetails.h" 4 | 5 | @interface YTIPivotBarItemRenderer : GPBMessage 6 | @property (nonatomic, copy, readwrite) NSString *pivotIdentifier; 7 | @property (nonatomic, copy, readwrite) NSString *targetId; 8 | @property (nonatomic, strong, readwrite) YTICommand *navigationEndpoint; 9 | @property (nonatomic, strong, readwrite) YTICommand *onLongPress; 10 | @property (nonatomic, strong, readwrite) YTIIcon *icon; 11 | @property (nonatomic, strong, readwrite) YTIThumbnailDetails *thumbnail; 12 | @end -------------------------------------------------------------------------------- /YTIPivotBarRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIPivotBarSupportedRenderers.h" 2 | 3 | @interface YTIPivotBarRenderer : NSObject 4 | + (YTIPivotBarSupportedRenderers *)pivotSupportedRenderersWithBrowseId:(NSString *)browseId title:(NSString *)title iconType:(int)iconType; 5 | - (NSMutableArray *)itemsArray; 6 | @end -------------------------------------------------------------------------------- /YTIPivotBarSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIPivotBarItemRenderer.h" 2 | #import "YTIPivotBarIconOnlyItemRenderer.h" 3 | 4 | @interface YTIPivotBarSupportedRenderers : NSObject 5 | - (YTIPivotBarItemRenderer *)pivotBarItemRenderer; 6 | - (YTIPivotBarIconOnlyItemRenderer *)pivotBarIconOnlyItemRenderer; 7 | @end -------------------------------------------------------------------------------- /YTIPlayerBarDecorationModel.h: -------------------------------------------------------------------------------- 1 | #import "YTIPlayerBarDecorationStyle.h" 2 | #import "YTIPlayerBarPlayingState.h" 3 | 4 | @interface YTIPlayerBarDecorationModel : GPBMessage 5 | @property (nonatomic, strong, readwrite) YTIPlayerBarDecorationStyle *style; 6 | @property (nonatomic, strong, readwrite) YTIPlayerBarPlayingState *playingState; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIPlayerBarDecorationStyle.h: -------------------------------------------------------------------------------- 1 | #import "YTIPlayerBarGradientColor.h" 2 | 3 | @interface YTIPlayerBarDecorationStyle : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIPlayerBarGradientColor *gradientColor; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIPlayerBarGradientColor.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | typedef NS_OPTIONS(int, YTIPlayerBarGradientColorPlayedProgressType) { 4 | GRADIENT_COLOR_TYPE_UNKNOWN = 0, 5 | GRADIENT_COLOR_TYPE_ON_PLAYED_PROGRESS = 1, 6 | GRADIENT_COLOR_TYPE_ON_FULL_PLAYER_BAR = 2, 7 | }; 8 | 9 | @interface YTIPlayerBarGradientColor : GPBMessage 10 | @property (nonatomic, assign, readwrite) YTIPlayerBarGradientColorPlayedProgressType playedProgressType; 11 | @end 12 | -------------------------------------------------------------------------------- /YTIPlayerBarPlayingState.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | typedef NS_OPTIONS(int, YTIPlayerBarPlayingStateMode) { 4 | PLAYER_BAR_MODE_UNKNOWN = 0, 5 | PLAYER_BAR_MODE_VIDEO = 1, 6 | PLAYER_BAR_MODE_LIVE = 2, 7 | PLAYER_BAR_MODE_LIVE_VDR = 3, 8 | PLAYER_BAR_MODE_AD = 4, 9 | PLAYER_BAR_MODE_TRAILER = 5, 10 | PLAYER_BAR_MODE_PRE_INTERSTITIAL_VIDEO = 6, 11 | PLAYER_BAR_MODE_POST_INTERSTITIAL_VIDEO = 7, 12 | PLAYER_BAR_MODE_SHORTS = 8, 13 | PLAYER_BAR_MODE_IMMERSIVE_LIVE = 9, 14 | }; 15 | 16 | typedef NS_OPTIONS(int, YTIPlayerBarPlayingStateOverlayMode) { 17 | PLAYER_BAR_OVERLAY_MODE_UNKNOWN = 0, 18 | PLAYER_BAR_OVERLAY_MODE_DEFAULT = 1, 19 | PLAYER_BAR_OVERLAY_MODE_QUIET = 2, 20 | }; 21 | 22 | @interface YTIPlayerBarPlayingState : GPBMessage 23 | @property (nonatomic, assign, readwrite) YTIPlayerBarPlayingStateMode mode; 24 | @property (nonatomic, assign, readwrite) YTIPlayerBarPlayingStateOverlayMode overlayMode; 25 | @property (nonatomic, assign, readwrite) CGFloat totalTimeSec; 26 | @end 27 | -------------------------------------------------------------------------------- /YTIPlayerResponse.h: -------------------------------------------------------------------------------- 1 | #import "YTIVideoDetails.h" 2 | 3 | @interface YTIPlayerResponse : NSObject 4 | @property (nonatomic, strong, readwrite) YTIVideoDetails *videoDetails; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIPlaylistPanelRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIPlaylistPanelRenderer_PlaylistPanelVideoSupportedRenderers.h" 2 | 3 | @interface YTIPlaylistPanelRenderer : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *playlistId; 5 | @property (nonatomic, strong, readwrite) NSMutableArray *contentsArray; 6 | @property (nonatomic, assign, readwrite) int currentIndex; 7 | @property (nonatomic, assign, readwrite) int localCurrentIndex; 8 | @end 9 | -------------------------------------------------------------------------------- /YTIPlaylistPanelRenderer_PlaylistPanelVideoSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIPlaylistPanelVideoRenderer.h" 2 | 3 | @interface YTIPlaylistPanelRenderer_PlaylistPanelVideoSupportedRenderers : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIPlaylistPanelVideoRenderer *playlistPanelVideoRenderer; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIPlaylistPanelVideoRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | 3 | @interface YTIPlaylistPanelVideoRenderer : GPBMessage 4 | @property (nonatomic, assign, readonly) NSString *videoId; 5 | @property (nonatomic, assign, readonly) NSString *playlistSetVideoId; 6 | @property (nonatomic, assign, readonly) YTICommand *navigationEndpoint; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIPlaylistVideoRenderer.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | #import "YTRendererForOfflineVideo.h" 3 | 4 | @interface YTIPlaylistVideoRenderer : GPBMessage 5 | @end 6 | -------------------------------------------------------------------------------- /YTIReelItemWatchResponse.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIReelItemWatchResponse : GPBMessage 4 | @end 5 | -------------------------------------------------------------------------------- /YTIReelPlayerOverlayRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTILikeButtonSupportedRenderers.h" 2 | 3 | @interface YTIReelPlayerOverlayRenderer : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTILikeButtonSupportedRenderers *likeButton; 5 | @property (nonatomic, strong, readwrite) YTILikeButtonSupportedRenderers *doubleTapLikeButton; 6 | @end 7 | -------------------------------------------------------------------------------- /YTIReelWatchEndpoint.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIReelWatchEndpoint : GPBMessage 4 | @property (nonatomic, assign, readonly) NSString *videoId; 5 | @end -------------------------------------------------------------------------------- /YTISectionListRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTISectionListSupportedRenderers.h" 2 | 3 | @interface YTISectionListRenderer : GPBMessage 4 | @property (nonatomic, strong, readwrite) NSMutableArray *contentsArray; 5 | @end 6 | -------------------------------------------------------------------------------- /YTISectionListSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIItemSectionRenderer.h" 2 | 3 | @interface YTISectionListSupportedRenderers : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIItemSectionRenderer *itemSectionRenderer; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIShelfRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIShelfSupportedRenderers.h" 2 | 3 | @interface YTIShelfRenderer : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIShelfSupportedRenderers *content; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIShelfSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTIHorizontalListRenderer.h" 2 | 3 | @interface YTIShelfSupportedRenderers : GPBMessage 4 | @property (nonatomic, strong, readwrite) YTIHorizontalListRenderer *horizontalListRenderer; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIShowEngagementPanelEndpoint.h: -------------------------------------------------------------------------------- 1 | #import "GPBExtensionDescriptor.h" 2 | #import "YTIEngagementPanelIdentifier.h" 3 | 4 | @interface YTIShowEngagementPanelEndpoint : NSObject 5 | @property (nonatomic, strong, readwrite) YTIEngagementPanelIdentifier *identifier; 6 | + (GPBExtensionDescriptor *)showEngagementPanelEndpoint; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIShowFullscreenInterstitialCommand.h: -------------------------------------------------------------------------------- 1 | #import "YTIModalClientThrottlingRules.h" 2 | 3 | @interface YTIShowFullscreenInterstitialCommand : GPBMessage 4 | @property (nonatomic, readwrite, assign) BOOL hasModalClientThrottlingRules; 5 | @property (nonatomic, readwrite, strong) YTIModalClientThrottlingRules *modalClientThrottlingRules; 6 | @end 7 | -------------------------------------------------------------------------------- /YTISlimMetadataButtonRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIButtonSupportedRenderers.h" 2 | 3 | @interface YTISlimMetadataButtonRenderer : NSObject 4 | @property (retain, nonatomic) YTIButtonSupportedRenderers *button; 5 | @end 6 | -------------------------------------------------------------------------------- /YTISlimMetadataButtonSupportedRenderers.h: -------------------------------------------------------------------------------- 1 | #import "YTISlimMetadataToggleButtonRenderer.h" 2 | #import "YTISlimMetadataButtonRenderer.h" 3 | 4 | @interface YTISlimMetadataButtonSupportedRenderers : NSObject 5 | @property (nonatomic, strong, readwrite) YTISlimMetadataToggleButtonRenderer *slimMetadataToggleButtonRenderer; 6 | @property (retain, nonatomic) YTISlimMetadataButtonRenderer *slimMetadataButtonRenderer; 7 | - (BOOL)slimButton_isLikeButton; 8 | - (BOOL)slimButton_isDislikeButton; 9 | - (BOOL)slimButton_isOfflineButton; 10 | - (int)rendererOneOfCase; 11 | @end 12 | -------------------------------------------------------------------------------- /YTISlimMetadataToggleButtonRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTILikeTarget.h" 2 | #import "YTIButtonSupportedRenderers.h" 3 | 4 | @interface YTISlimMetadataToggleButtonRenderer : NSObject 5 | @property (nonatomic, strong, readwrite) YTILikeTarget *target; 6 | @property (nonatomic, strong, readwrite) YTIButtonSupportedRenderers *button; 7 | @end 8 | -------------------------------------------------------------------------------- /YTISlotData.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTISlotData : GPBMessage 4 | @property (nonatomic, assign, readwrite) int type; 5 | @property (nonatomic, assign, readwrite) int slotPhysicalPosition; 6 | @end 7 | -------------------------------------------------------------------------------- /YTIStringRun.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIStringRun : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *text; 5 | @property (nonatomic, assign, readwrite) unsigned int textColor; 6 | @end 7 | -------------------------------------------------------------------------------- /YTIThumbnailDetails.h: -------------------------------------------------------------------------------- 1 | #import "YTIThumbnailDetails_Thumbnail.h" 2 | 3 | @interface YTIThumbnailDetails : GPBMessage 4 | @property (nonatomic, strong, readwrite) NSMutableArray *thumbnailsArray; 5 | @end 6 | -------------------------------------------------------------------------------- /YTIThumbnailDetails_Thumbnail.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIThumbnailDetails_Thumbnail : GPBMessage 4 | @property (nonatomic, copy, readwrite) NSString *URL; 5 | @property (nonatomic, assign, readwrite) unsigned int width; 6 | @property (nonatomic, assign, readwrite) unsigned int height; 7 | @end 8 | -------------------------------------------------------------------------------- /YTIToggleButtonRenderer.h: -------------------------------------------------------------------------------- 1 | #import "YTIFormattedString.h" 2 | 3 | @interface YTIToggleButtonRenderer : NSObject 4 | @property (nonatomic, strong, readwrite) YTIFormattedString *defaultText; 5 | @property (nonatomic, strong, readwrite) YTIFormattedString *toggledText; 6 | @end 7 | -------------------------------------------------------------------------------- /YTIVideoDetails.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTIVideoDetails : NSObject 4 | @property (nonatomic, assign, readwrite) BOOL allowRatings; 5 | @property (nonatomic, assign, readwrite) float averageRating; 6 | @property (nonatomic, copy, readwrite) NSString *viewCount; 7 | @property (nonatomic, copy, readwrite) NSString *channelId; 8 | @property (nonatomic, copy, readwrite) NSString *videoId; 9 | @end 10 | -------------------------------------------------------------------------------- /YTIVideoQualityPickerEndpoint.h: -------------------------------------------------------------------------------- 1 | #import "GPBExtensionDescriptor.h" 2 | #import "GPBMessage.h" 3 | 4 | @interface YTIVideoQualityPickerEndpoint : GPBMessage 5 | @property (nonatomic, copy, readwrite) NSString *videoId; 6 | @property (nonatomic, assign, readwrite) BOOL enableAdvancedMenuOption; 7 | + (GPBExtensionDescriptor *)videoQualityPickerEndpoint; 8 | @end 9 | -------------------------------------------------------------------------------- /YTIWatchEndpoint.h: -------------------------------------------------------------------------------- 1 | #import "GPBMessage.h" 2 | 3 | @interface YTIWatchEndpoint : GPBMessage 4 | @end 5 | -------------------------------------------------------------------------------- /YTIWatchNextResponse.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | 3 | @interface YTIWatchNextResponse : NSObject 4 | @property (nonatomic, assign, readwrite) BOOL hasOnUiReady; 5 | @property (nonatomic, strong, readwrite) YTICommand *onUiReady; 6 | @end 7 | -------------------------------------------------------------------------------- /YTIcon.h: -------------------------------------------------------------------------------- 1 | // YouTube 17.39.4 supports up to enum 1011 2 | 3 | typedef enum { 4 | YT_UNKNOWN = 0, 5 | YT_MY_CHANNEL = 1, 6 | YT_PURCHASES = 4, 7 | YT_SOCIAL = 11, 8 | YT_SETTINGS = 44, 9 | YT_SHARE = 48, 10 | YT_DISLIKE = 51, 11 | YT_UNSUBSCRIBE = 54, 12 | YT_TAB_ACCOUNT = 69, 13 | YT_PLAY_ALL = 84, 14 | YT_VERY_HAPPY = 89, 15 | YT_HAPPY = 90, 16 | YT_MEH = 91, 17 | YT_SAD = 92, 18 | YT_VERY_SAD = 93, 19 | YT_LIKE = 160, 20 | YT_SWITCH_ACCOUNTS = 182, 21 | YT_FILTER = 193, 22 | YT_STAR = 214, 23 | YT_CLOSE = 215, 24 | YT_CHECK = 216, 25 | YT_CHEVRON_RIGHT = 221, 26 | YT_CHEVRON_LEFT = 222, 27 | YT_UP_ARROW = 233, 28 | YT_ACCOUNT_CIRCLE = 239, 29 | YT_OPEN_IN_NEW = 240, 30 | YT_PLAY_CIRCLE = 248, 31 | YT_COPY = 250, 32 | YT_QUEUE_PLAY_NEXT = 251, 33 | YT_ADD = 256, 34 | YT_EMOJI = 279, 35 | YT_LIKE_SELECTED = 301, 36 | YT_DISLIK_SELECTED = 302, 37 | YT_MONEY_FILL = 321, 38 | YT_UPLOAD = 329, 39 | YT_PLAYLIST_PLAY = 333, 40 | YT_MOVIES = 345, 41 | YT_IMAGE = 367, 42 | YT_DELETE_LIGHT = 382, 43 | YT_CLOSE_LIGHT = 386, 44 | YT_WARNING = 388, 45 | YT_GROUP = 418, 46 | YT_PICTURE_IN_PICTURE = 461, 47 | YT_TV = 473, 48 | YT_EXPERIMENT = 495, 49 | YT_GOOGLE = 498, 50 | YT_HELP_OUTLINE = 513, 51 | YT_TUNE = 530, 52 | YT_TRANSLATE = 540, 53 | YT_ADD_SMALL = 560, 54 | YT_BOOKMARK = 565, 55 | YT_BOOKMARK_BORDER = 566, 56 | YT_LOCK = 573, 57 | YT_AUTO_AWESOME = 591, 58 | YT_LOCATION_ON = 620, 59 | YT_CANCEL = 641, 60 | YT_PREMIUM = 688, 61 | YT_SCREEN_ROTATION = 701, 62 | YT_PREMIUM_STANDALONE = 741, 63 | YT_WALLPAPER = 801, 64 | YT_OUTLINE_ADJUST = 831, 65 | YT_PHOTO_CAMERA_OUTLINE = 851, 66 | YT_GIFT = 864, 67 | YT_CAST_OUTLINE = 886, 68 | YT_AUDIO = 891, 69 | YT_TEXT = 897, 70 | YT_SELL = 903, 71 | YT_MOON_Z = 916, 72 | YT_BAG = 930, 73 | YT_MUSIC_MUTED = 932, 74 | YT_SEARCH_FILLED = 943, 75 | YT_SPARKLE_FILLED = 950, 76 | YT_BROADCAST = 964, 77 | YT_MOON_Z_FILLED = 969, 78 | YT_SEND_OUTLINE = 978, 79 | YT_KEYBOARD_OUTLINE = 980, 80 | YT_FACE_HAPPY_OUTLINE = 981, 81 | YT_OUTLINE_ALERT_TRIANGLE = 982, 82 | YT_OUTLINE_OVERFLOW_VERTICAL = 983, 83 | YT_PERSON_CIRCLE_SLASH = 997, 84 | YT_CLAPPERBOARD = 1021, 85 | YT_OUTLINE_GIFT = 1026, 86 | YT_X_CIRCLE = 1030, 87 | YT_BRIGHTNESS = 1034, 88 | YT_BRIGHTNESS_FILLED = 1035, 89 | YT_MAGIC_WAND = 1036, 90 | YT_MAGIC_WAND_FILLED = 1037, 91 | YT_SEARCH_BOLD = 1045, 92 | YT_PEOPLE_GROUP = 1053, 93 | YT_PLAY_ARROW_OUTLINED = 1093, 94 | YT_CAST_MOBILE = 1119, 95 | YT_TV_OFF = 1128, 96 | YT_SETTINGS_UPLOAD = 1131, 97 | YT_SETTINGS_HD = 1132, 98 | YT_ADD_BOLD = 1136, 99 | YT_PREMIUM_STANDALONE_CAIRO = 1150, 100 | YT_SETTINGS_CAIRO = 1162, 101 | YT_SETTINGS_SHARE_CAIRO = 1174, 102 | } YTIcon; 103 | -------------------------------------------------------------------------------- /YTImageView.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface YTImageView : UIView 5 | - (instancetype)initWithPlaceholder:(UIImage *)placeholder; 6 | - (instancetype)initWithDefaultPlaceholder; 7 | @end 8 | -------------------------------------------------------------------------------- /YTInlineMutedPlaybackScrubberView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTInlineMutedPlaybackScrubberView : UIView 4 | @end 5 | -------------------------------------------------------------------------------- /YTInlineMutedPlaybackScrubbingSlider.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTInlineMutedPlaybackScrubbingSlider : UISlider 4 | @end 5 | -------------------------------------------------------------------------------- /YTInlinePlayerBarContainerView.h: -------------------------------------------------------------------------------- 1 | #import "YTGlassContainerView.h" 2 | #import "YTInlinePlayerBarView.h" 3 | #import "YTModularPlayerBarController.h" 4 | #import "YTLabel.h" 5 | #import "YTPlayerBarProtocol.h" 6 | #import "YTQTMButton.h" 7 | 8 | @interface YTInlinePlayerBarContainerView : YTGlassContainerView 9 | @property (nonatomic, strong, readwrite) YTInlinePlayerBarView *playerBar; // Replaced by segmentablePlayerBar in newer versions 10 | @property (nonatomic, strong, readwrite) id segmentablePlayerBar; // Replaced by modularPlayerBar in newer 19.22.3+ 11 | @property (nonatomic, strong, readwrite) YTModularPlayerBarController *modularPlayerBar; 12 | @property (nonatomic, strong, readwrite) UIView *multiFeedElementView; 13 | @property (nonatomic, strong, readwrite) YTLabel *durationLabel; 14 | @property (nonatomic, assign, readwrite) BOOL showOnlyFullscreenButton; 15 | @property (nonatomic, assign, readwrite) int layout; 16 | @property (nonatomic, weak, readwrite) id delegate; 17 | @property (nonatomic, assign, readwrite) BOOL shouldDisplayTimeRemaining; 18 | - (YTQTMButton *)exitFullscreenButton; 19 | - (YTQTMButton *)enterFullscreenButton; 20 | - (UIView *)peekableView; 21 | - (void)setChapters:(NSArray *)chapters; 22 | - (void)didPressScrubber:(id)arg1; 23 | - (void)updateIconVisibilityAndLayout; 24 | - (CGFloat)scrubRangeForScrubX:(CGFloat)arg1; 25 | @end 26 | -------------------------------------------------------------------------------- /YTInlinePlayerBarView.h: -------------------------------------------------------------------------------- 1 | #import "YTPlayerViewController.h" 2 | 3 | @interface YTInlinePlayerBarView : UIView 4 | @property (nonatomic, readonly, assign) CGFloat totalTime; 5 | @property (nonatomic, readwrite, strong) YTPlayerViewController *playerViewController; 6 | @end 7 | -------------------------------------------------------------------------------- /YTInnerTubeCellController.h: -------------------------------------------------------------------------------- 1 | #import "YTCellController.h" 2 | 3 | @interface YTInnerTubeCellController : YTCellController 4 | @end -------------------------------------------------------------------------------- /YTInnerTubeCollectionViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTCollectionViewController.h" 2 | #import "YTPageStyling.h" 3 | 4 | @interface YTInnerTubeCollectionViewController : YTCollectionViewController 5 | @end 6 | -------------------------------------------------------------------------------- /YTInnerTubeContextFactory.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTInnerTubeContextFactory : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTInnerTubeSectionController.h: -------------------------------------------------------------------------------- 1 | #import "YTFeedSectionController.h" 2 | 3 | @interface YTInnerTubeSectionController : YTFeedSectionController 4 | - (id)renderer; 5 | @end 6 | -------------------------------------------------------------------------------- /YTLabel.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTLabel : UILabel 4 | - (void)setTypeKind:(NSInteger)typeKind; 5 | @end 6 | -------------------------------------------------------------------------------- /YTLightweightQTMButton.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTLightweightQTMButton : UIButton 4 | @property (nonatomic, assign, readwrite, getter=isUppercaseTitle) BOOL uppercaseTitle; 5 | @property (nonatomic, assign, readwrite) BOOL flatButtonHasOpaqueBackground; 6 | @property (nonatomic, strong, readwrite) UIColor *customTitleColor; 7 | @property (nonatomic, strong, readwrite) UIColor *enabledBackgroundColor; 8 | @end 9 | -------------------------------------------------------------------------------- /YTLikeStatus.h: -------------------------------------------------------------------------------- 1 | #ifndef _YT_LIKESTATUS 2 | #define _YT_LIKESTATUS 3 | 4 | #import 5 | 6 | typedef NS_ENUM(int, YTLikeStatus) { 7 | YTLikeStatusLike = 0, 8 | YTLikeStatusDislike = 1, 9 | YTLikeStatusNeutral = 2 10 | }; 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /YTLiveWatchPlaybackOverlayView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTLiveWatchPlaybackOverlayView : UIView 4 | @end 5 | -------------------------------------------------------------------------------- /YTLocalPlaybackController.h: -------------------------------------------------------------------------------- 1 | #import "GIMMe.h" 2 | #import "YTResponder.h" 3 | #import "YTSingleVideoControllerDelegate.h" 4 | 5 | @interface YTLocalPlaybackController : NSObject 6 | - (GIMMe *)gimme; // Deprecated 7 | - (NSString *)currentVideoID; 8 | - (id )parentResponder; 9 | - (int)playerVisibility; 10 | - (void)setMuted:(BOOL)muted; 11 | - (void)replay; 12 | - (void)replayWithSeekSource:(int)seekSource; 13 | @end 14 | -------------------------------------------------------------------------------- /YTMainAppControlsOverlayView.h: -------------------------------------------------------------------------------- 1 | #import "YTQTMButton.h" 2 | #import "YTPlayerViewController.h" 3 | 4 | @interface YTMainAppControlsOverlayView : UIView 5 | + (CGFloat)topButtonAdditionalPadding; 6 | @property (nonatomic, assign, readwrite, getter=isOverlayVisible) BOOL overlayVisible; 7 | @property (nonatomic, strong, readwrite) YTPlayerViewController *playerViewController; 8 | - (YTQTMButton *)buttonWithImage:(UIImage *)image accessibilityLabel:(NSString *)accessibilityLabel verticalContentPadding:(CGFloat)verticalContentPadding; 9 | @end 10 | -------------------------------------------------------------------------------- /YTMainAppEngagementPanelViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTMainAppEngagementPanelViewController : UIViewController 4 | - (BOOL)isLandscapeEngagementPanel; 5 | - (BOOL)isPeekingSupported; 6 | @end -------------------------------------------------------------------------------- /YTMainAppPlayerOverlayView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTMainAppPlayerOverlayView : UIView 4 | + (CGFloat)topButtonAdditionalPadding; 5 | @end -------------------------------------------------------------------------------- /YTMainAppVideoPlayerOverlayView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #ifdef LEGACY 4 | 5 | #import "YTMainAppPlayerOverlayView.h" 6 | 7 | @interface YTMainAppVideoPlayerOverlayView : YTMainAppPlayerOverlayView 8 | @end 9 | 10 | #else 11 | 12 | #import "YTInlinePlayerBarContainerView.h" 13 | #import "YTMainAppControlsOverlayView.h" 14 | 15 | @interface YTMainAppVideoPlayerOverlayView : UIView 16 | @property (nonatomic, strong, readwrite) YTInlinePlayerBarContainerView *playerBar; 17 | - (YTMainAppControlsOverlayView *)controlsOverlayView; 18 | @end 19 | 20 | #endif -------------------------------------------------------------------------------- /YTMainAppVideoPlayerOverlayViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTAdjustableAccessibilityProtocol.h" 2 | #import "YTMainAppVideoPlayerOverlayView.h" 3 | #import "YTPlayerBarController.h" 4 | #import "YTResponder.h" 5 | #import "YTVideoPlayerOverlayDelegate.h" 6 | 7 | @interface YTMainAppVideoPlayerOverlayViewController : UIViewController 8 | @property (nonatomic, strong, readwrite) YTPlayerBarController *playerBarController; 9 | @property (nonatomic, weak, readwrite) id delegate; 10 | - (YTMainAppVideoPlayerOverlayView *)videoPlayerOverlayView; 11 | - (void)didPressAudioTrackSwitch:(id)sender; 12 | - (void)didPressVarispeed:(id)sender; 13 | - (void)didPressVideoQuality:(id)sender; 14 | - (void)didPressOverflow:(id)sender; 15 | - (void)setPlaybackRate:(CGFloat)rate; 16 | - (BOOL)isFullscreen; 17 | - (CGFloat)totalTime; 18 | - (CGFloat)currentPlaybackRate; 19 | @end -------------------------------------------------------------------------------- /YTMainWindow.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTMainWindow : UIWindow 4 | @end 5 | -------------------------------------------------------------------------------- /YTModularPlayerBarController.h: -------------------------------------------------------------------------------- 1 | #import "YTModularPlayerBarView.h" 2 | #import "YTPlayerBarProtocol.h" 3 | 4 | @interface YTModularPlayerBarController : NSObject 5 | @property (nonatomic, strong, readwrite) YTModularPlayerBarView *view; 6 | @end 7 | -------------------------------------------------------------------------------- /YTModularPlayerBarView.h: -------------------------------------------------------------------------------- 1 | #import "YTAdjustableAccessibilityProtocol.h" 2 | 3 | @interface YTModularPlayerBarView : UIView 4 | @property (nonatomic, assign, readonly) CGFloat totalTime; // Removed in YouTube 19.37.2 5 | @property (nonatomic, assign, readonly) CGFloat mediaTime; 6 | @property (nonatomic, weak, readwrite) id accessibilityDelegate; // Removed in YouTube 19.38.2 7 | @end 8 | -------------------------------------------------------------------------------- /YTModuleEngagementPanelViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTModuleEngagementPanelViewController : UIViewController 4 | @end 5 | -------------------------------------------------------------------------------- /YTMultiSizeViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTMultiSizeViewController : UIViewController 4 | @end 5 | -------------------------------------------------------------------------------- /YTNGWatchController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTNGWatchController : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTNGWatchLayerViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTPlayerViewController.h" 2 | 3 | @interface YTNGWatchLayerViewController : UIViewController 4 | - (YTPlayerViewController *)playerViewController; 5 | @end 6 | -------------------------------------------------------------------------------- /YTNGWatchMiniBarView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTNGWatchMiniBarView : UIView 4 | @property (nonatomic, assign, readwrite) NSInteger watchMiniPlayerLayout; 5 | @end -------------------------------------------------------------------------------- /YTNewFormattedLabel.h: -------------------------------------------------------------------------------- 1 | #import "YTAttributedLabel.h" 2 | 3 | @interface YTNewFormattedLabel : UIView 4 | @end 5 | -------------------------------------------------------------------------------- /YTNewLabel.h: -------------------------------------------------------------------------------- 1 | #import "YTAttributedLabel.h" 2 | 3 | @interface YTNewLabel : UILabel 4 | @end 5 | -------------------------------------------------------------------------------- /YTNonCriticalStartupTelemetricSmartScheduler.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTNonCriticalStartupTelemetricSmartScheduler : NSObject 4 | - (void)schedule:(int)identifier withBlock:(void (^)(void))block; 5 | @end 6 | -------------------------------------------------------------------------------- /YTOfflineButtonPressedResponderEvent.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface YTOfflineButtonPressedResponderEvent : NSObject 5 | + (instancetype)eventWithOfflineVideoID:(NSString *)videoID fromView:(UIView *)view firstResponder:(id)firstResponder; 6 | - (void)send; 7 | @end -------------------------------------------------------------------------------- /YTOfflineCapableVideoCellController.h: -------------------------------------------------------------------------------- 1 | #import "YTVideoCellController.h" 2 | 3 | @interface YTOfflineCapableVideoCellController : YTVideoCellController 4 | @end 5 | -------------------------------------------------------------------------------- /YTPageStyleController.h: -------------------------------------------------------------------------------- 1 | #import "YTCommonColorPalette.h" 2 | 3 | // Removed in YouTube 20.02.3 4 | @interface YTPageStyleController : NSObject 5 | + (YTCommonColorPalette *)currentColorPalette; // For YouTube older than 17.19.2, import/change type to YTColorPalette 6 | + (NSInteger)pageStyle; 7 | @property (nonatomic, assign, readwrite) NSInteger appThemeSetting; 8 | @property (nonatomic, assign, readonly) NSInteger pageStyle; 9 | @end 10 | -------------------------------------------------------------------------------- /YTPageStyleControllerImpl.h: -------------------------------------------------------------------------------- 1 | #import "YTCommonColorPalette.h" 2 | 3 | // YouTube 20.02.3 and higher 4 | @interface YTPageStyleControllerImpl : NSObject 5 | @property (nonatomic, assign, readwrite) NSInteger appThemeSetting; 6 | @property (nonatomic, assign, readonly) NSInteger pageStyle; 7 | - (YTCommonColorPalette *)currentColorPalette; 8 | @end 9 | -------------------------------------------------------------------------------- /YTPageStyling.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTPageStyling 4 | @required 5 | - (void)pageStyleDidChange:(NSInteger)pageStyle; 6 | @end 7 | -------------------------------------------------------------------------------- /YTPivotBarItemView.h: -------------------------------------------------------------------------------- 1 | #import "YTIPivotBarItemRenderer.h" 2 | #import "YTQTMButton.h" 3 | 4 | @interface YTPivotBarItemView : UIView 5 | @property (nonatomic, strong, readwrite) YTIPivotBarItemRenderer *renderer; 6 | @property (nonatomic, strong, readwrite) YTQTMButton *navigationButton; 7 | @end 8 | -------------------------------------------------------------------------------- /YTPlainLabel.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTPlainLabel 4 | @property (nonatomic, readwrite, assign) NSInteger numberOfLines; 5 | @property (nonatomic, readwrite, assign) NSInteger lineBreakMode; 6 | @property (nonatomic, readwrite, assign) NSInteger textAlignment; 7 | - (void)setTypeKind:(NSInteger)typeKind; 8 | - (void)setTypeKind:(NSInteger)typeKind typeVariant:(NSInteger)typeVariant; 9 | @end 10 | -------------------------------------------------------------------------------- /YTPlaybackController.h: -------------------------------------------------------------------------------- 1 | #import "YTSingleVideoController.h" 2 | 3 | @protocol YTPlaybackController 4 | @property (strong, nonatomic) YTSingleVideoController *activeVideo; 5 | @end 6 | -------------------------------------------------------------------------------- /YTPlaybackControllerUIWrapper.h: -------------------------------------------------------------------------------- 1 | #import "YTSingleVideoController.h" 2 | 3 | @interface YTPlaybackControllerUIWrapper : NSObject 4 | - (YTSingleVideoController *)activeVideo; 5 | - (YTSingleVideoController *)contentVideo; 6 | @end -------------------------------------------------------------------------------- /YTPlaybackData.h: -------------------------------------------------------------------------------- 1 | #import "MLVideo.h" 2 | #import "YTPlayerResponse.h" 3 | 4 | @interface YTPlaybackData : NSObject 5 | - (MLVideo *)video; 6 | - (YTPlayerResponse *)playerResponse; 7 | @end -------------------------------------------------------------------------------- /YTPlaybackStrippedWatchController.h: -------------------------------------------------------------------------------- 1 | #import "YTWatchMetadataPanelStateResponderProvider.h" 2 | #import "YTWatchPlaybackController.h" 3 | 4 | @interface YTPlaybackStrippedWatchController : NSObject 5 | @property (nonatomic, strong, readwrite) YTWatchPlaybackController *watchPlaybackController; 6 | @end 7 | -------------------------------------------------------------------------------- /YTPlayerBarController.h: -------------------------------------------------------------------------------- 1 | #import "YTInlinePlayerBarContainerView.h" 2 | 3 | @interface YTPlayerBarController : NSObject 4 | @property (nonatomic, strong, readwrite) YTInlinePlayerBarContainerView *playerBar; 5 | @end -------------------------------------------------------------------------------- /YTPlayerBarProtocol.h: -------------------------------------------------------------------------------- 1 | #import "YTPlayerScrubberProtocol.h" 2 | 3 | @protocol YTPlayerBarProtocol 4 | @end 5 | -------------------------------------------------------------------------------- /YTPlayerBarRectangleDecorationView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerBarRectangleDecorationView : UIView 4 | @end 5 | -------------------------------------------------------------------------------- /YTPlayerBarSegmentMarkerView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerBarSegmentMarkerView : UIView 4 | @property (nonatomic, readwrite, assign) CGFloat startTime; 5 | @property (nonatomic, readwrite, assign) CGFloat endTime; 6 | @property (nonatomic, readwrite, assign) CGFloat width; 7 | @property (nonatomic, readwrite, assign) NSInteger type; 8 | @end 9 | -------------------------------------------------------------------------------- /YTPlayerBarSegmentView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerBarSegmentView : UIView 4 | @end 5 | -------------------------------------------------------------------------------- /YTPlayerBarSegmentedProgressView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerBarSegmentedProgressView : UIView 4 | @property (nonatomic, readwrite, assign) CGFloat totalTime; 5 | @property (nonatomic, readwrite, assign) int playerViewLayout; 6 | - (void)maybeCreateMarkerViews; 7 | - (void)setChapters:(NSArray *)chapters; 8 | - (void)createAndAddMarker:(CGFloat)arg1 type:(NSInteger)type width:(CGFloat)width; 9 | - (void)createAndAddMarker:(CGFloat)arg1 type:(NSInteger)type clusterType:(NSInteger)clusterType width:(CGFloat)width; // Deprecated 10 | - (NSMutableArray *)segmentViews; 11 | @end 12 | -------------------------------------------------------------------------------- /YTPlayerOverlay.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerOverlay : NSObject 4 | - (NSString *)overlayIdentifier; 5 | - (NSInteger)overlayZIndex; 6 | @end 7 | -------------------------------------------------------------------------------- /YTPlayerOverlayManager.h: -------------------------------------------------------------------------------- 1 | #import "YTVarispeedSwitchController.h" 2 | #import "YTVideoPlayerOverlayDelegate.h" 3 | 4 | @interface YTPlayerOverlayManager : NSObject 5 | - (YTVarispeedSwitchController *)varispeedController; 6 | - (void)didPressToggleFullscreen; 7 | @end 8 | -------------------------------------------------------------------------------- /YTPlayerOverlayProvider.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerOverlayProvider : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTPlayerPIPController.h: -------------------------------------------------------------------------------- 1 | #import "GIMMe.h" 2 | #import "YTSingleVideoController.h" 3 | #import "YTSystemNotificationsObserver.h" 4 | 5 | @interface YTPlayerPIPController : NSObject 6 | @property (nonatomic, readonly, assign, getter=isPictureInPictureActive) BOOL pictureInPictureActive; 7 | @property (nonatomic, readonly, assign, getter=isPictureInPicturePossible) BOOL pictureInPicturePossible; 8 | @property (retain, nonatomic) YTSingleVideoController *activeSingleVideo; 9 | - (instancetype)initWithPlayerView:(id)playerView delegate:(id)delegate; // Deprecated, use initWithDelegate: 10 | - (instancetype)initWithDelegate:(id)delegate; 11 | - (GIMMe *)gimme; // Deprecated 12 | - (BOOL)canInvokePictureInPicture; // Deprecated, use canEnablePictureInPicture 13 | - (BOOL)canEnablePictureInPicture; 14 | - (void)maybeInvokePictureInPicture; // Deprecated, use maybeEnablePictureInPicture 15 | - (void)maybeEnablePictureInPicture; 16 | - (void)play; 17 | - (void)pause; 18 | @end 19 | -------------------------------------------------------------------------------- /YTPlayerResources.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerResources : NSObject 4 | @end -------------------------------------------------------------------------------- /YTPlayerResponse.h: -------------------------------------------------------------------------------- 1 | #import "YTIPlayerResponse.h" 2 | 3 | @interface YTPlayerResponse : NSObject 4 | - (YTIPlayerResponse *)playerData; 5 | @end 6 | -------------------------------------------------------------------------------- /YTPlayerScrubberProtocol.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTPlayerScrubberProtocol 4 | @end 5 | -------------------------------------------------------------------------------- /YTPlayerStatus.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerStatus : NSObject 4 | - (BOOL)externalPlayback; 5 | - (BOOL)backgroundPlayback; 6 | - (BOOL)isInlinePlaybackActive; 7 | - (BOOL)pictureInPicture; 8 | - (int)visibility; 9 | - (int)layout; 10 | @end -------------------------------------------------------------------------------- /YTPlayerTapToRetryResponderEvent.h: -------------------------------------------------------------------------------- 1 | #import "YTResponderEvent.h" 2 | 3 | @interface YTPlayerTapToRetryResponderEvent : YTResponderEvent 4 | + (instancetype)eventWithFirstResponder:(id )firstResponder; 5 | @end 6 | -------------------------------------------------------------------------------- /YTPlayerView.h: -------------------------------------------------------------------------------- 1 | #import "MLAVPIPPlayerLayerView.h" 2 | #import "YTPlaybackControllerUIWrapper.h" 3 | 4 | @interface YTPlayerView : UIView 5 | @property (retain, nonatomic) MLAVPIPPlayerLayerView *pipRenderingView; // Removed in newer versions 6 | @property (nonatomic, strong, readwrite) UIView *overlayView; // Usually YTMainAppVideoPlayerOverlayView 7 | - (YTPlaybackControllerUIWrapper *)playerViewDelegate; 8 | - (UIView *)renderingView; 9 | @end -------------------------------------------------------------------------------- /YTPlayerViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "GIMMe.h" 3 | #import "YTPlaybackController.h" 4 | #import "YTPlayerOverlayManager.h" 5 | #import "YTPlayerView.h" 6 | #import "YTPlayerViewControllerUIDelegate.h" 7 | #import "YTSingleVideoController.h" 8 | #import "YTVarispeedSwitchController.h" 9 | #import "YTVideoPlayerOverlayDelegate.h" 10 | 11 | @interface YTPlayerViewController : UIViewController 12 | @property (nonatomic, readonly, assign) BOOL isPlayingAd; 13 | @property (nonatomic, strong, readwrite) NSString *channelID; 14 | @property (nonatomic, strong, readwrite) YTPlayerOverlayManager *overlayManager; 15 | @property (nonatomic, weak, readwrite) id UIDelegate; 16 | - (GIMMe *)gimme; // Deprecated 17 | - (NSString *)currentVideoID; 18 | - (NSString *)contentVideoID; 19 | - (YTSingleVideoController *)activeVideo; 20 | - (YTVarispeedSwitchController *)varispeedController; 21 | - (CGFloat)currentVideoMediaTime; 22 | - (CGFloat)currentVideoTotalMediaTime; 23 | - (int)playerViewLayout; 24 | - (BOOL)isMDXActive; 25 | - (void)replay; 26 | - (void)replayWithSeekSource:(int)seekSource; 27 | - (void)didPressToggleFullscreen; 28 | - (void)setPlayerViewLayout:(int)layout; 29 | - (void)scrubToTime:(CGFloat)time; // Deprecated 30 | - (void)seekToTime:(CGFloat)time; 31 | - (id)activeVideoPlayerOverlay; // YTMainAppVideoPlayerOverlayViewController || YTInlineMutedPlaybackPlayerOverlayViewController 32 | - (YTPlayerView *)playerView; 33 | - (BOOL)isCurrentVideoVertical; 34 | @end 35 | -------------------------------------------------------------------------------- /YTPlayerViewControllerConfig.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTPlayerViewControllerConfig : NSObject 4 | @end -------------------------------------------------------------------------------- /YTPlayerViewControllerUIDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTPlayerViewControllerUIDelegate 4 | @end 5 | -------------------------------------------------------------------------------- /YTPlaylistPanelProminentThumbnailVideoCell.h: -------------------------------------------------------------------------------- 1 | #import "YTCollectionViewCell.h" 2 | 3 | @interface YTPlaylistPanelProminentThumbnailVideoCell : YTCollectionViewCell 4 | - (void)setSwipeButtonTarget:(id)target action:(SEL)action; 5 | - (void)setSwipeButtonActionsViewRightBlock:(void (^)(void))block; 6 | @end 7 | -------------------------------------------------------------------------------- /YTPlaylistPanelProminentThumbnailVideoCellController.h: -------------------------------------------------------------------------------- 1 | #import "YTOfflineCapableVideoCellController.h" 2 | 3 | @interface YTPlaylistPanelProminentThumbnailVideoCellController : YTOfflineCapableVideoCellController 4 | - (void)didPressSwipeToRevealButton; 5 | @end 6 | -------------------------------------------------------------------------------- /YTPlaylistPanelSectionController.h: -------------------------------------------------------------------------------- 1 | #import "YTInnerTubeSectionController.h" 2 | 3 | @interface YTPlaylistPanelSectionController : YTInnerTubeSectionController 4 | @end 5 | -------------------------------------------------------------------------------- /YTQTMButton.h: -------------------------------------------------------------------------------- 1 | #import "YTCommonButton.h" 2 | #import "YTLightweightQTMButton.h" 3 | 4 | @interface YTQTMButton : YTLightweightQTMButton 5 | + (instancetype)buttonWithImage:(UIImage *)image accessibilityLabel:(NSString *)accessibilityLabel accessibilityIdentifier:(NSString *)accessibilityIdentifier; 6 | + (instancetype)barButtonWithImage:(UIImage *)image accessibilityLabel:(NSString *)accessibilityLabel accessibilityIdentifier:(NSString *)accessibilityIdentifier; 7 | + (instancetype)button; 8 | + (instancetype)closeButton; 9 | + (instancetype)iconButton; 10 | + (instancetype)textButton; 11 | @property (nonatomic, assign, readwrite) BOOL sizeWithPaddingAndInsets; 12 | @property (nonatomic, strong, readwrite) UIColor *customTintColor; 13 | - (UILabel *)titleLabel; 14 | - (void)enableNewTouchFeedback; 15 | - (void)setTitleTypeKind:(NSInteger)typeKind; 16 | - (void)setTitleTypeKind:(NSInteger)typeKind typeVariant:(NSInteger)typeVariant; 17 | - (void)setForegroundColor:(UIColor *)color backgroundColor:(UIColor *)backgroundColor; 18 | @end 19 | -------------------------------------------------------------------------------- /YTReelContentModel.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | 3 | @interface YTReelContentModel : NSObject 4 | - (YTICommand *)command; 5 | @end 6 | -------------------------------------------------------------------------------- /YTReelContentView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTReelContentView : UIView 4 | @property (nonatomic, assign, readwrite) BOOL alwaysShowShortsProgressBar; 5 | - (void)setEmptyStateVisible:(BOOL)visible; 6 | @end 7 | -------------------------------------------------------------------------------- /YTReelDataSource.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | // YouTube 20.06.3 and higher 4 | @interface YTReelDataSource : NSObject 5 | @end 6 | -------------------------------------------------------------------------------- /YTReelElementAsyncComponentView.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTResponder.h" 3 | 4 | @interface YTReelElementAsyncComponentView : UIView 5 | @end 6 | -------------------------------------------------------------------------------- /YTReelLikeModel.h: -------------------------------------------------------------------------------- 1 | #import "YTILikeButtonRenderer.h" 2 | 3 | @interface YTReelLikeModel : NSObject 4 | @property (nonatomic, copy, readwrite) NSString *videoID; 5 | @property (nonatomic, strong, readwrite) YTILikeButtonRenderer *likeButtonRenderer; 6 | @property (nonatomic, assign, readwrite) int status; 7 | @property (nonatomic, assign, readwrite) int lastStatus; 8 | @end 9 | -------------------------------------------------------------------------------- /YTReelModel.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | #import "YTIPlayerResponse.h" 3 | #import "YTReelContentModel.h" 4 | 5 | @interface YTReelModel : YTReelContentModel 6 | @property (nonatomic, readonly, assign) int videoType; 7 | @property (nonatomic, copy, readwrite) NSString *joinVideoID; 8 | @property (nonatomic, copy, readwrite) NSString *onesieVideoID; // Removed 9 | - (YTIPlayerResponse *)playerResponseOverride; 10 | - (YTICommand *)endpoint; 11 | @end 12 | -------------------------------------------------------------------------------- /YTReelPlayerBottomButton.h: -------------------------------------------------------------------------------- 1 | #import "YTQTMButton.h" 2 | 3 | @interface YTReelPlayerBottomButton : YTQTMButton 4 | @property (nonatomic, assign, readwrite) BOOL applyRightSideLayoutImageSize; 5 | @end 6 | -------------------------------------------------------------------------------- /YTReelPlayerViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTPlayerViewController.h" 2 | #import "YTReelContentView.h" 3 | 4 | @interface YTReelPlayerViewController : UIViewController 5 | @property (nonatomic, strong, readwrite) YTPlayerViewController *player; 6 | - (YTReelContentView *)contentView; 7 | - (YTSingleVideoController *)currentVideo; 8 | - (NSString *)videoId; 9 | @end 10 | -------------------------------------------------------------------------------- /YTReelPlayerViewControllerSub.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTReelContentView.h" 3 | #import "YTSingleVideoController.h" 4 | 5 | @interface YTReelPlayerViewControllerSub : UIViewController 6 | - (YTSingleVideoController *)currentVideo; 7 | - (YTReelContentView *)contentView; 8 | @end 9 | -------------------------------------------------------------------------------- /YTReelWatchLikesController.h: -------------------------------------------------------------------------------- 1 | #import "YTQTMButton.h" 2 | #import "YTILikeButtonRenderer.h" 3 | 4 | @interface YTReelWatchLikesController : NSObject 5 | @property (nonatomic, strong, readwrite) YTQTMButton *likeButton; 6 | @property (nonatomic, strong, readwrite) YTQTMButton *dislikeButton; 7 | - (id)likeModelForLikeButtonRenderer:(YTILikeButtonRenderer *)renderer; 8 | - (void)updateLikeButtonWithModel:(id)model animated:(BOOL)animated; 9 | @end 10 | -------------------------------------------------------------------------------- /YTReelWatchPlaybackOverlayView.h: -------------------------------------------------------------------------------- 1 | #import "YTQTMButton.h" 2 | #import "YTResponder.h" 3 | 4 | @interface YTReelWatchPlaybackOverlayView : UIView 5 | @property (nonatomic, assign, readonly) YTQTMButton *overflowButton; 6 | - (NSArray *)orderedRightSideButtons; 7 | - (BOOL)enableElementsActionBarAsyncRendering; 8 | @end 9 | -------------------------------------------------------------------------------- /YTRendererForOfflineVideo.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTRendererForOfflineVideo 4 | @property (nonatomic, assign, readonly) NSString *videoId; 5 | @end 6 | -------------------------------------------------------------------------------- /YTResponder.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTResponder 4 | @required 5 | - (id)parentResponder; 6 | @end 7 | -------------------------------------------------------------------------------- /YTResponderEvent.h: -------------------------------------------------------------------------------- 1 | #import "YTResponder.h" 2 | 3 | @interface YTResponderEvent : NSObject 4 | + (void)addEventHandlerForResponder:(id )responder handlerBlock:(void (^)(void))handlerBlock; 5 | @property (nonatomic, readonly, strong) id firstResponder; 6 | - (instancetype)initWithFirstResponder:(id )firstResponder; 7 | - (void)send; 8 | - (void)sendIfEventHandlerAvailable; 9 | - (BOOL)sendWithStrictHandling:(BOOL)strictHandling; 10 | @end 11 | -------------------------------------------------------------------------------- /YTRightNavigationButtons.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTRightNavigationButtons : UIView 4 | @property (nonatomic, readwrite, assign) CGFloat leadingPadding; 5 | @property (nonatomic, readwrite, assign) CGFloat tailingPadding; // Legitimate typo 6 | @end 7 | -------------------------------------------------------------------------------- /YTRollingDigit.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface YTRollingDigit : NSObject 5 | @property (nonatomic, strong, readwrite) UILabel *label; 6 | @property (nonatomic, strong, readwrite) NSNumber *width; 7 | @end 8 | -------------------------------------------------------------------------------- /YTRollingDigitView.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import "YTRollingDigit.h" 4 | 5 | @interface YTRollingDigitView : UIView 6 | @property (nonatomic, strong, readwrite) NSMutableArray *digits; 7 | - (NSString *)text; 8 | @end 9 | -------------------------------------------------------------------------------- /YTRollingNumberNode.h: -------------------------------------------------------------------------------- 1 | #import "ASDisplayNode.h" 2 | #import "ELMElement.h" 3 | #import "YTRollingNumberView.h" 4 | 5 | @interface YTRollingNumberNode : ASDisplayNode 6 | @property (atomic, strong, readwrite) ELMElement *element; 7 | @property (atomic, assign, readwrite) CGPoint anchorPoint; 8 | @property (atomic, assign, readwrite) CGPoint position; 9 | @property (atomic, assign, readwrite) CGRect frame; 10 | - (instancetype)initWithElement:(ELMElement *)element context:(id)context; 11 | - (YTRollingNumberView *)createRollingNumberView; 12 | - (void)updateRollingNumberView; 13 | - (void)relayoutNode; 14 | - (void)controllerDidApplyProperties; 15 | @end 16 | -------------------------------------------------------------------------------- /YTRollingNumberView.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTFontAttributes.h" 3 | 4 | @interface YTRollingNumberView : UIView 5 | @property (nonatomic, strong, readwrite) NSMutableArray *digitViews; 6 | @property (nonatomic, readonly, strong) UIFont *font; 7 | @property (nonatomic, readonly, strong) UIColor *color; 8 | @property (nonatomic, readonly, strong) NSString *updatedCount; 9 | @property (nonatomic, readonly, strong) NSNumber *updatedCountNumber; 10 | @property (nonatomic, readonly, strong) YTFontAttributes *fontAttributes; 11 | - (instancetype)initWithDelegate:(id)delegate; 12 | - (void)setUpdatedCount:(NSString *)updatedCount updatedCountNumber:(NSNumber *)updatedCountNumber font:(UIFont *)font color:(UIColor *)color skipAnimation:(BOOL)skipAnimation; 13 | - (void)setUpdatedCount:(NSString *)updatedCount updatedCountNumber:(NSNumber *)updatedCountNumber font:(UIFont *)font fontAttributes:(YTFontAttributes *)fontAttributes color:(UIColor *)color skipAnimation:(BOOL)skipAnimation; // 19.14.2+ 14 | @end 15 | -------------------------------------------------------------------------------- /YTSearchableSettingsViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTSearchableSettingsViewController : UIViewController 4 | - (void)storeCollectionViewSections:(NSArray *)sections; 5 | @end 6 | -------------------------------------------------------------------------------- /YTSectionController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTSectionController : NSObject 4 | - (id)model; 5 | @end 6 | -------------------------------------------------------------------------------- /YTSectionListGhostCardCell.h: -------------------------------------------------------------------------------- 1 | #import "YTCollectionViewCell.h" 2 | 3 | @interface YTSectionListGhostCardCell : YTCollectionViewCell 4 | @end 5 | -------------------------------------------------------------------------------- /YTSectionListGhostCardVideoWithContextCell.h: -------------------------------------------------------------------------------- 1 | #import "YTSectionListGhostCardCell.h" 2 | 3 | @interface YTSectionListGhostCardVideoWithContextCell : YTSectionListGhostCardCell 4 | @end 5 | -------------------------------------------------------------------------------- /YTSectionListViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTSectionListViewController : UIViewController 4 | @end 5 | -------------------------------------------------------------------------------- /YTSegmentableInlinePlayerBarView.h: -------------------------------------------------------------------------------- 1 | #import "YTPlayerBarProtocol.h" 2 | #import "YTPlayerViewController.h" 3 | 4 | @interface YTSegmentableInlinePlayerBarView : UIView 5 | @property (nonatomic, readonly, assign) CGFloat totalTime; 6 | @property (nonatomic, readwrite, strong) YTPlayerViewController *playerViewController; 7 | @end 8 | -------------------------------------------------------------------------------- /YTServiceSectionController.h: -------------------------------------------------------------------------------- 1 | #import "YTSectionController.h" 2 | 3 | @interface YTServiceSectionController : YTSectionController 4 | @end 5 | -------------------------------------------------------------------------------- /YTSettingsCell.h: -------------------------------------------------------------------------------- 1 | #import "YTCollectionViewCell.h" 2 | 3 | @interface YTSettingsCell : YTCollectionViewCell 4 | @property (nonatomic, assign, readwrite) BOOL enabled; 5 | - (void)setSwitchOn:(BOOL)on animated:(BOOL)animated; 6 | - (void)toggleSwitch; 7 | @end -------------------------------------------------------------------------------- /YTSettingsGroupData.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTSettingsGroupData : NSObject 4 | @property (nonatomic, readonly, strong) NSString *title; 5 | @property (nonatomic, readonly, assign) NSUInteger type; 6 | @property (nonatomic, readonly, strong) NSArray *orderedCategories; 7 | - (instancetype)initWithGroupType:(NSUInteger)groupType; 8 | - (NSString *)titleForSettingGroupType:(NSUInteger)groupType; 9 | - (NSArray *)orderedCategoriesForGroupType:(NSUInteger)groupType; 10 | - (NSArray *)accountCategories; 11 | - (NSArray *)appPreferenceCategories; 12 | - (NSArray *)videoPreferencesCategories; 13 | - (NSArray *)privacyCategories; 14 | - (NSArray *)miscellaneousCategories; 15 | - (NSArray *)developmentCategories; 16 | @end 17 | -------------------------------------------------------------------------------- /YTSettingsPickerViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTStyledViewController.h" 2 | 3 | @interface YTSettingsPickerViewController : YTStyledViewController 4 | - (instancetype)initWithNavTitle:(NSString *)navTitle pickerSectionTitle:(NSString *)pickerSectionTitle rows:(NSArray *)rows selectedItemIndex:(NSUInteger)selectedItemIndex parentResponder:(id)parentResponder; 5 | @end 6 | -------------------------------------------------------------------------------- /YTSettingsSectionController.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTSettingsSectionItem.h" 3 | 4 | @interface YTSettingsSectionController : NSObject 5 | @property (nonatomic, readonly, strong) NSArray *items; 6 | @end 7 | -------------------------------------------------------------------------------- /YTSettingsSectionItem.h: -------------------------------------------------------------------------------- 1 | #import "YTIFormattedString.h" 2 | #import "YTIIcon.h" 3 | #import "YTSettingsCell.h" 4 | 5 | @interface YTSettingsSectionItem : NSObject 6 | @property (nonatomic, copy, readwrite) NSString *title; 7 | @property (nonatomic, strong, readwrite) YTIIcon *settingIcon; 8 | @property (nonatomic, strong, readwrite) YTIFormattedString *formattedSettingSummary; 9 | @property (nonatomic, assign, readwrite) BOOL hasSwitch; 10 | @property (nonatomic, assign, readwrite) BOOL switchVisible; 11 | @property (nonatomic, assign, readwrite) BOOL on; 12 | @property (nonatomic, assign, readwrite) BOOL enabled; 13 | @property (nonatomic, assign, readwrite, getter=isInkEnabled) BOOL inkEnabled; 14 | @property (nonatomic, assign, readwrite) int settingItemId; 15 | @property (nonatomic, assign, readwrite) int indicatorIconType; 16 | @property (nonatomic, copy, readwrite) BOOL (^selectBlock)(YTSettingsCell *, NSUInteger); 17 | @property (nonatomic, copy, readwrite) BOOL (^switchBlock)(YTSettingsCell *, BOOL); 18 | + (instancetype)itemWithTitle:(NSString *)title accessibilityIdentifier:(NSString *)accessibilityIdentifier detailTextBlock:(NSString *(^)(void))detailTextBlock selectBlock:(BOOL (^)(YTSettingsCell *, NSUInteger))selectBlock; 19 | + (instancetype)itemWithTitle:(NSString *)title titleDescription:(NSString *)titleDescription accessibilityIdentifier:(NSString *)accessibilityIdentifier detailTextBlock:(id)detailTextBlock selectBlock:(BOOL (^)(YTSettingsCell *, NSUInteger))selectBlock; 20 | + (instancetype)checkmarkItemWithTitle:(NSString *)title selectBlock:(BOOL (^)(YTSettingsCell *, NSUInteger))selectBlock; 21 | + (instancetype)checkmarkItemWithTitle:(NSString *)title titleDescription:(NSString *)titleDescription selectBlock:(BOOL (^)(YTSettingsCell *, NSUInteger))selectBlock; 22 | + (instancetype)checkmarkItemWithTitle:(NSString *)title titleDescription:(NSString *)titleDescription selectBlock:(BOOL (^)(YTSettingsCell *, NSUInteger))selectBlock disabledSelectBlock:(BOOL (^)(YTSettingsCell *, NSUInteger))disabledSelectBlock; 23 | + (instancetype)switchItemWithTitle:(NSString *)title switchOn:(BOOL)switchOn switchBlock:(BOOL (^)(YTSettingsCell *, BOOL))switchBlock; 24 | + (instancetype)switchItemWithTitle:(NSString *)title titleDescription:(NSString *)titleDescription accessibilityIdentifier:(NSString *)accessibilityIdentifier switchOn:(BOOL)switchOn switchBlock:(BOOL (^)(YTSettingsCell *, BOOL))switchBlock settingItemId:(int)settingItemId; 25 | + (instancetype)switchItemWithTitle:(NSString *)title titleDescription:(NSString *)titleDescription accessibilityIdentifier:(NSString *)accessibilityIdentifier switchOn:(BOOL)switchOn switchBlock:(BOOL (^)(YTSettingsCell *, BOOL))switchBlock selectBlock:(BOOL (^)(YTSettingsCell *, NSUInteger))selectBlock settingItemId:(int)settingItemId; 26 | - (instancetype)initWithTitle:(NSString *)title titleDescription:(NSString *)titleDescription; 27 | @end 28 | -------------------------------------------------------------------------------- /YTSettingsSectionItemManager.h: -------------------------------------------------------------------------------- 1 | #import "GIMMe.h" 2 | 3 | @interface YTSettingsSectionItemManager : NSObject 4 | @property (nonatomic, readwrite, weak) GIMMe *gimme; 5 | - (id)parentResponder; 6 | @end 7 | -------------------------------------------------------------------------------- /YTSettingsViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTIIcon.h" 2 | #import "YTSettingsSectionController.h" 3 | #import "YTSettingsSectionItem.h" 4 | #import "YTStyledViewController.h" 5 | 6 | @interface YTSettingsViewController : YTStyledViewController 7 | - (NSMutableDictionary *)settingsSectionControllers; 8 | - (void)setSectionItems:(NSMutableArray *)sectionItems forCategory:(NSInteger)category title:(NSString *)title titleDescription:(NSString *)titleDescription headerHidden:(BOOL)headerHidden; 9 | - (void)setSectionItems:(NSMutableArray *)sectionItems forCategory:(NSInteger)category title:(NSString *)title icon:(YTIIcon *)icon titleDescription:(NSString *)titleDescription headerHidden:(BOOL)headerHidden; // 19.03.2+ 10 | - (void)pushViewController:(UIViewController *)viewController; 11 | - (void)reloadData; 12 | @end 13 | -------------------------------------------------------------------------------- /YTShortsPlayerViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTReelPlayerViewController.h" 2 | 3 | // This class extends YTReelPlayerViewControllerSub on YouTube version 17, but YTReelPlayerViewController on newer 4 | @interface YTShortsPlayerViewController : YTReelPlayerViewController 5 | @end 6 | -------------------------------------------------------------------------------- /YTSingleVideo.h: -------------------------------------------------------------------------------- 1 | #import "YTPlaybackData.h" 2 | #import "MLVideo.h" 3 | 4 | typedef NS_ENUM(NSInteger, YTSingleVideoType) { 5 | YTSingleVideoTypeVideo, 6 | YTSingleVideoTypeAdInterrupt, 7 | YTSingleVideoTypeContentInterstitial, 8 | YTSingleVideoTypeTrailer, 9 | }; 10 | 11 | @interface YTSingleVideo : NSObject 12 | - (MLVideo *)video; // Deprecated 13 | - (NSString *)videoId; 14 | - (YTPlaybackData *)playbackData; 15 | - (YTSingleVideoType)videoType; 16 | @end 17 | -------------------------------------------------------------------------------- /YTSingleVideoController.h: -------------------------------------------------------------------------------- 1 | #import "MLFormat.h" 2 | #import "MLHAMPlayerItem.h" 3 | #import "MLPlayerStickySettings.h" 4 | #import "MLQueuePlayerDelegate.h" 5 | #import "YTSingleVideo.h" 6 | #import "YTSingleVideoControllerDelegate.h" 7 | 8 | @interface YTSingleVideoController : NSObject 9 | @property (nonatomic, weak, readwrite) NSObject *delegate; 10 | @property (nonatomic, strong, readwrite) MLPlayerStickySettings *mediaStickySettings; 11 | @property (nonatomic, strong, readwrite) MLHAMPlayerItem *playerItem; 12 | - (YTSingleVideo *)singleVideo; 13 | - (YTSingleVideo *)videoData; 14 | - (NSArray *)selectableVideoFormats; 15 | - (BOOL)isMuted; 16 | - (void)playerRateDidChange:(float)rate; 17 | - (void)setMuted:(BOOL)muted; 18 | @end 19 | -------------------------------------------------------------------------------- /YTSingleVideoControllerDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTSingleVideoControllerDelegate 4 | - (void)singleVideoController:(id)controller requiresReloadWithContext:(id)context; 5 | - (void)singleVideoController:(id)controller externalPlaybackActiveStateDidChange:(id)arg2; 6 | @end 7 | -------------------------------------------------------------------------------- /YTSingleVideoSequencer.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTSingleVideoSequencer : NSObject 4 | - (void)restartContentSequenceWithSeekSource:(int)seekSource; 5 | - (void)restartContentSequence; 6 | @end 7 | -------------------------------------------------------------------------------- /YTSingleVideoTime.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTSingleVideoTime : NSObject 4 | @property (nonatomic, readonly, assign) CGFloat absoluteTime; 5 | @property (nonatomic, readonly, assign) CGFloat time; 6 | @property (nonatomic, readonly, assign) CGFloat productionTime; 7 | + (instancetype)zero; 8 | + (instancetype)timeWithTime:(CGFloat)time; 9 | + (instancetype)timeWithTime:(CGFloat)time productionTime:(CGFloat)productionTime; 10 | @end -------------------------------------------------------------------------------- /YTSlideForActionsView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTSlideForActionsView : UIView 4 | @property (nonatomic, assign, readwrite) BOOL actionsEnabledRight; 5 | @property (nonatomic, assign, readwrite) BOOL enableMinSnap; 6 | @property (nonatomic, assign, readwrite) BOOL enableHapticFeedback; 7 | @end 8 | -------------------------------------------------------------------------------- /YTSlimVideoDetailsActionView.h: -------------------------------------------------------------------------------- 1 | #import "YTIFormattedStringLabel.h" 2 | #import "YTSlimVideoScrollableDetailsActionsView.h" 3 | 4 | @interface YTSlimVideoDetailsActionView : UIView 5 | @property (nonatomic, strong, readwrite) YTIFormattedStringLabel *label; 6 | @property (nonatomic, weak, readwrite) YTSlimVideoScrollableDetailsActionsView *visibilityDelegate; 7 | @property (nonatomic) __weak id delegate; 8 | @property (nonatomic, assign, readwrite, getter=isToggled) BOOL toggled; 9 | - (instancetype)initWithSlimMetadataButtonSupportedRenderer:(id)renderer; 10 | @end 11 | -------------------------------------------------------------------------------- /YTSlimVideoDetailsActionViewDelegate.h: -------------------------------------------------------------------------------- 1 | #include "YTQTMButton.h" 2 | #import "YTQTMButton.h" 3 | 4 | @protocol YTSlimVideoDetailsActionViewDelegate 5 | - (void)didTapButton:(YTQTMButton *)button fromRect:(CGRect)rect inView:(UIView *)view; 6 | - (void)handleLongPressOnButton:(YTQTMButton *)button fromRect:(CGRect)rect inView:(UIView *)view; 7 | @end 8 | -------------------------------------------------------------------------------- /YTSlimVideoDetailsActionsView.h: -------------------------------------------------------------------------------- 1 | #import "YTSlimVideoDetailsActionViewDelegate.h" 2 | 3 | @interface YTSlimVideoDetailsActionsView : UIScrollView 4 | @property (nonatomic, weak, readwrite) NSObject *videoActionsDelegate; 5 | @end -------------------------------------------------------------------------------- /YTSlimVideoMetadataExpandingBehavior.h: -------------------------------------------------------------------------------- 1 | #import "YTSlimVideoScrollableActionBarCellControllerDelegate.h" 2 | 3 | @interface YTSlimVideoMetadataExpandingBehavior : NSObject 4 | @end -------------------------------------------------------------------------------- /YTSlimVideoScrollableActionBarCell.h: -------------------------------------------------------------------------------- 1 | #import "YTCollectionViewCellProtocol.h" 2 | #import "YTSlimVideoScrollableDetailsActionsProtocol.h" 3 | 4 | @interface YTSlimVideoScrollableActionBarCell : UICollectionViewCell 5 | @end -------------------------------------------------------------------------------- /YTSlimVideoScrollableActionBarCellController.h: -------------------------------------------------------------------------------- 1 | #import "YTSlimVideoScrollableActionBarCellControllerDelegate.h" 2 | #import "YTInnerTubeCellController.h" 3 | 4 | @interface YTSlimVideoScrollableActionBarCellController : YTInnerTubeCellController 5 | @property (nonatomic, weak, readwrite) NSObject *delegate; 6 | @end -------------------------------------------------------------------------------- /YTSlimVideoScrollableActionBarCellControllerDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTSlimVideoScrollableActionBarCellControllerDelegate 4 | @required 5 | - (NSString *)videoId; 6 | @end -------------------------------------------------------------------------------- /YTSlimVideoScrollableDetailsActionsProtocol.h: -------------------------------------------------------------------------------- 1 | #import "YTSlimVideoDetailsActionView.h" 2 | 3 | @protocol YTSlimVideoScrollableDetailsActionsProtocol 4 | - (YTSlimVideoDetailsActionView *)offlineActionView; 5 | @end -------------------------------------------------------------------------------- /YTSlimVideoScrollableDetailsActionsView.h: -------------------------------------------------------------------------------- 1 | #import "YTSlimVideoDetailsActionViewDelegate.h" 2 | 3 | @interface YTSlimVideoScrollableDetailsActionsView : UIScrollView 4 | @property (nonatomic, weak, readwrite) NSObject *videoActionsDelegate; 5 | @end 6 | -------------------------------------------------------------------------------- /YTStyledViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTMultiSizeViewController.h" 2 | 3 | @interface YTStyledViewController : YTMultiSizeViewController 4 | - (id)parentResponder; 5 | @end 6 | -------------------------------------------------------------------------------- /YTSystemNotifications.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "YTSystemNotificationsObserver.h" 3 | 4 | @interface YTSystemNotifications : NSObject 5 | - (void)addSystemNotificationsObserver:(id )observer; 6 | - (void)callBlockForEveryObserver:(void (^)(id ))block; 7 | @end 8 | -------------------------------------------------------------------------------- /YTSystemNotificationsObserver.h: -------------------------------------------------------------------------------- 1 | #import "YTApplicationNotificationsObserver.h" 2 | 3 | @protocol YTSystemNotificationsObserver 4 | @end 5 | -------------------------------------------------------------------------------- /YTToastResponderEvent.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTToastResponderEvent : NSObject 4 | + (instancetype)eventWithMessage:(NSString *)message firstResponder:(id)firstResponder; 5 | - (void)send; 6 | @end 7 | -------------------------------------------------------------------------------- /YTTouchFeedbackController.h: -------------------------------------------------------------------------------- 1 | #import "YTTouchFeedbackView.h" 2 | 3 | @interface YTTouchFeedbackController : NSObject 4 | @property (nonatomic, strong, readwrite) YTTouchFeedbackView *touchFeedbackView; 5 | - (instancetype)initWithView:(id)view; 6 | @end 7 | -------------------------------------------------------------------------------- /YTTouchFeedbackView.h: -------------------------------------------------------------------------------- 1 | @interface YTTouchFeedbackView : UIView 2 | @property (nonatomic, assign, readwrite) CGFloat customCornerRadius; 3 | @end 4 | -------------------------------------------------------------------------------- /YTTypeStyle.h: -------------------------------------------------------------------------------- 1 | #import "YTDefaultTypeStyle.h" 2 | 3 | @interface YTTypeStyle : NSObject 4 | + (YTDefaultTypeStyle *)defaultTypeStyle; 5 | @end 6 | -------------------------------------------------------------------------------- /YTUIResources.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTUIResources : NSObject 4 | + (UIImage *)actionsheetDefaultImage; 5 | + (UIImage *)bookmarkOutline; 6 | + (UIImage *)iconAccountCircle; 7 | + (UIImage *)iconAccountCircleDark; 8 | + (UIImage *)iconCheckTemplateImage; 9 | + (UIImage *)tabIconAccountImageWithSelected:(BOOL)selected; 10 | + (UIImage *)xCircleOutline; 11 | @end 12 | -------------------------------------------------------------------------------- /YTUIUtils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTUIUtils : NSObject 4 | + (BOOL)canOpenURL:(NSURL *)url; 5 | + (BOOL)openURL:(NSURL *)url; 6 | + (CGFloat)appPortraitWidth; 7 | + (CGFloat)appPortraitHeight; 8 | + (NSInteger)horizontalSizeClass; 9 | + (NSInteger)verticalSizeClass; 10 | + (UIViewController *)topViewControllerForPresenting; 11 | + (NSString *)localizedCount:(NSUInteger)count; 12 | @end 13 | -------------------------------------------------------------------------------- /YTVarispeedSwitchController.h: -------------------------------------------------------------------------------- 1 | #import "YTVarispeedSwitchControllerDelegate.h" 2 | 3 | @interface YTVarispeedSwitchController : NSObject 4 | @property (nonatomic, weak, readwrite) id delegate; 5 | @end 6 | -------------------------------------------------------------------------------- /YTVarispeedSwitchControllerDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @class YTVarispeedSwitchController; 5 | 6 | @protocol YTVarispeedSwitchControllerDelegate 7 | - (float)currentPlaybackRateForVarispeedSwitchController:(YTVarispeedSwitchController *)varispeedSwitchController; 8 | - (void)varispeedSwitchController:(YTVarispeedSwitchController *)varispeedSwitchController didSelectRate:(float)playbackRate; 9 | @end 10 | -------------------------------------------------------------------------------- /YTVarispeedSwitchControllerOption.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface YTVarispeedSwitchControllerOption : NSObject 5 | - (instancetype)initWithTitle:(NSString *)title rate:(float)rate; 6 | @end 7 | -------------------------------------------------------------------------------- /YTVersionUtils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTVersionUtils : NSObject 4 | + (NSString *)appVersion; 5 | @end 6 | -------------------------------------------------------------------------------- /YTVideoCellController.h: -------------------------------------------------------------------------------- 1 | #import "YTInnerTubeCellController.h" 2 | 3 | @interface YTVideoCellController : YTInnerTubeCellController 4 | @end 5 | -------------------------------------------------------------------------------- /YTVideoElementCellController.h: -------------------------------------------------------------------------------- 1 | #import "YTElementsCellController.h" 2 | 3 | @interface YTVideoElementCellController : YTElementsCellController 4 | @end 5 | -------------------------------------------------------------------------------- /YTVideoNode.h: -------------------------------------------------------------------------------- 1 | #import "ELMCellNode.h" 2 | 3 | @interface YTVideoNode : ELMCellNode 4 | @end 5 | -------------------------------------------------------------------------------- /YTVideoPlayerOverlayDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTVideoPlayerOverlayDelegate 4 | @required 5 | - (void)serMuted:(BOOL)muted; 6 | @end 7 | -------------------------------------------------------------------------------- /YTVideoQualitySwitchOriginalController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTVideoQualitySwitchOriginalController : NSObject 4 | - (instancetype)initWithParentResponder:(id)responder; 5 | @end -------------------------------------------------------------------------------- /YTVideoQualitySwitchRedesignedController.h: -------------------------------------------------------------------------------- 1 | #import "MLFormat.h" 2 | #import "YTSingleVideoController.h" 3 | 4 | @interface YTVideoQualitySwitchRedesignedController : NSObject 5 | - (instancetype)initWithServiceRegistryScope:(id)scope parentResponder:(id)responder; 6 | - (NSArray *)addRestrictedFormats:(NSArray *)formats; 7 | - (void)setActiveVideo:(YTSingleVideoController *)video; 8 | @end 9 | -------------------------------------------------------------------------------- /YTVideoWithContextNode.h: -------------------------------------------------------------------------------- 1 | #import "YTVideoNode.h" 2 | 3 | @interface YTVideoWithContextNode : YTVideoNode 4 | @property (nonatomic, weak, readwrite) id parentResponder; 5 | @end 6 | -------------------------------------------------------------------------------- /YTWatchController.h: -------------------------------------------------------------------------------- 1 | #import "YTPlayerViewControllerUIDelegate.h" 2 | #import "YTWatchPlaybackController.h" 3 | 4 | @interface YTWatchController : NSObject 5 | @property (nonatomic, strong, readwrite) YTWatchPlaybackController *watchPlaybackController; 6 | - (void)showFullScreen; 7 | - (void)showSmallScreen; 8 | - (void)reloadStartPlayback:(BOOL)startPlayback; 9 | @end 10 | -------------------------------------------------------------------------------- /YTWatchLayerViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTPlayerViewController.h" 2 | 3 | @interface YTWatchLayerViewController : UIViewController 4 | - (YTPlayerViewController *)playerViewController; 5 | @end 6 | -------------------------------------------------------------------------------- /YTWatchMetadataPanelStateResponderProvider.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTWatchMetadataPanelStateResponderProvider 4 | @end 5 | -------------------------------------------------------------------------------- /YTWatchMiniBarViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTWatchMiniBarViewController : UIViewController 4 | @property (nonatomic, assign, readwrite, getter=isActivated) BOOL activated; 5 | @property (nonatomic, assign, readwrite, getter=isVisible) BOOL visible; 6 | @end 7 | -------------------------------------------------------------------------------- /YTWatchNextResultsViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTInnerTubeCollectionViewController.h" 2 | 3 | @interface YTWatchNextResultsViewController : YTInnerTubeCollectionViewController 4 | @end 5 | -------------------------------------------------------------------------------- /YTWatchPlaybackController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface YTWatchPlaybackController : NSObject 4 | @end 5 | -------------------------------------------------------------------------------- /YTWatchPlayerViewLayoutSource.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @protocol YTWatchPlayerViewLayoutSource 4 | @end 5 | -------------------------------------------------------------------------------- /YTWatchPullToFullController.h: -------------------------------------------------------------------------------- 1 | #import "YTWatchPlayerViewLayoutSource.h" 2 | 3 | @interface YTWatchPullToFullController : NSObject 4 | @property (nonatomic, strong, readwrite) id playerViewSource; 5 | @end -------------------------------------------------------------------------------- /YTWatchTransition.h: -------------------------------------------------------------------------------- 1 | #import "YTICommand.h" 2 | 3 | @interface YTWatchTransition : NSObject 4 | - (instancetype)initWithNavEndpoint:(YTICommand *)navEndpoint watchEndpointSource:(int)watchEndpointSource forcePlayerReload:(BOOL)forcePlayerReload; 5 | @end; 6 | -------------------------------------------------------------------------------- /YTWatchViewController.h: -------------------------------------------------------------------------------- 1 | #import "YTPlayerViewController.h" 2 | #import "YTWatchPullToFullController.h" 3 | #import "YTWatchPlayerViewLayoutSource.h" 4 | 5 | @interface YTWatchViewController : UIViewController 6 | @property (nonatomic, weak, readwrite) YTPlayerViewController *playerViewController; 7 | @property (nonatomic, strong, readwrite) YTWatchPullToFullController *pullToFullController; 8 | - (NSUInteger)allowedFullScreenOrientations; 9 | @end 10 | -------------------------------------------------------------------------------- /_ASCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "ASCollectionElement.h" 3 | #import "ASCellNode.h" 4 | 5 | @interface _ASCollectionViewCell : UICollectionViewCell 6 | @property (nonatomic, strong, readwrite) ASCollectionElement *element; 7 | - (ASCellNode *)node; // Usually returns ELMCellNode 8 | @end 9 | -------------------------------------------------------------------------------- /_ASDisplayView.h: -------------------------------------------------------------------------------- 1 | #import "ASDisplayNode.h" 2 | 3 | @interface _ASDisplayView : UIView 4 | @property (nonatomic, copy, readwrite) NSString *accessibilityLabel; 5 | @property (assign, nonatomic) ASDisplayNode *keepalive_node; 6 | @end 7 | --------------------------------------------------------------------------------