-
Notifications
You must be signed in to change notification settings - Fork 1
Development Notes
d21spike edited this page May 20, 2021
·
1 revision
POST https://www.philo.com/auth/init/login_code HTTP/1.1 Host: www.philo.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Content-Type: application/json Accept: */* Origin: https://www.philo.com Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 {"ident":"***user_email***","device":"web","device_ident":"web-***unique_device_uuid***","location":"***city***","send_token":true,"send_confirm_link":false}
POST https://www.philo.com/auth/update/login_code HTTP/1.1 Host: www.philo.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Content-Type: application/json Accept: */* Origin: https://www.philo.com Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 Cookie: ***cookie_jar*** {"token":"***six_digit_code***"}
GET https://www.philo.com/user/profiles/list.json HTTP/1.1 Host: www.philo.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Accept: */* Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 Cookie: ***cookie_jar***
POST https://www.philo.com/graphql HTTP/1.1 Host: www.philo.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Content-Type: application/json Origin: https://www.philo.com Accept-Encoding: gzip, deflate, br Accept-Language: en-US,en;q=0.9 Cookie: ***cookie_jar*** ***query_as_payload***
[{"query":"mutation ($captionsEnabled: Boolean!, $deviceName: String!, $deviceType: DeviceType!, $deviceIcon: DeviceIconType!, $uuid: String!, $volume: UnitInterval!) {\n registerPlayer(captionsEnabled: $captionsEnabled, deviceName: $deviceName, deviceType: $deviceType, deviceIcon: $deviceIcon, uuid: $uuid, volume: $volume) {\n nickname\n id\n lastUpdatedAt\n deviceType\n uuid\n user {\n id\n displayName\n __typename\n }\n __typename\n }\n}\n","variables":{"deviceName":"Chrome on Windows","deviceIcon":"PC","deviceType":"WEB","uuid":"***unique_device_uuid***","captionsEnabled":false,"volume":0.75},"operationName":null},{"query":"query userSubscription {\n userSubscription {\n ...subscriptionFields\n __typename\n }\n}\n\nfragment subscriptionFields on UserSubscription {\n hasContentAccess\n state\n subscriptionProvider\n trialEndsAt\n updatedAt\n __typename\n}\n","operationName":"userSubscription"},{"query":"{\n user {\n id\n __typename\n }\n}\n","operationName":null}]
[{"query":"query notifications($unacknowledgedOnly: Boolean!, $first: Int!, $after: String, $types: [NotificationType!]) {\n notifications(unacknowledgedOnly: $unacknowledgedOnly, first: $first, after: $after, types: $types) {\n summary {\n totalCount\n unacknowledgedCount\n __typename\n }\n edges {\n node {\n ...notificationTypesFields\n __typename\n }\n cursor\n __typename\n }\n pageInfo {\n hasNextPage\n __typename\n }\n __typename\n }\n}\n\nfragment notificationTypesFields on Notification {\n typename: __typename\n id\n createdAt\n acknowledgedAt\n ... on SendShowNotification {\n ...sendShowNotificationFields\n __typename\n }\n ... on FriendRequestNotification {\n ...friendRequestNotificationFields\n __typename\n }\n ... on SurveyNotification {\n ...surveyNotificationFields\n __typename\n }\n ... on EmailVerificationNotification {\n ...emailVerificationNotificationFields\n __typename\n }\n ... on GenericNotification {\n ...genericNotificationFields\n __typename\n }\n ... on NavigationNotification {\n ...navigationNotificationFields\n __typename\n }\n}\n\nfragment sendShowNotificationFields on SendShowNotification {\n message\n user {\n id\n displayName\n images {\n s\n __typename\n }\n __typename\n }\n show {\n id\n title\n description\n hasFollow\n image(maxSize: S, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n size\n type\n __typename\n }\n ...showColorFields\n __typename\n }\n __typename\n}\n\nfragment showColorFields on Show {\n imageColors: image(maxSize: L, orientation: HORIZONTAL, preferredType: BANNER) {\n colors(deviceType: WEB) {\n key {\n all {\n r\n g\n b\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment friendRequestNotificationFields on FriendRequestNotification {\n user {\n id\n displayName\n friendStatus\n images {\n s\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment surveyNotificationFields on SurveyNotification {\n pollName\n questions {\n id\n name\n answers {\n id\n name\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment emailVerificationNotificationFields on EmailVerificationNotification {\n action\n __typename\n}\n\nfragment navigationNotificationFields on NavigationNotification {\n navigationAction: action {\n url\n iconURL(type: LINK, format: SVG)\n label\n __typename\n }\n __typename\n}\n\nfragment genericNotificationFields on GenericNotification {\n title\n body\n imageURL\n __typename\n}\n","variables":{"unacknowledgedOnly":true,"types":["MESSAGE","NAVIGATION","SURVEY","EMAIL_VERIFICATION","FRIEND_REQUEST","SEND_SHOW"],"first":12,"after":null,"last":null,"before":null},"operationName":"notifications"},{"query":"{\n user {\n id\n displayName\n images {\n s\n m\n l\n __typename\n }\n __typename\n }\n}\n","operationName":null},{"query":"query page($pageType: PageType!, $typeId: ID, $filterId: ID, $filter: String, $endCursor: String, $first: Int!, $initialTiles: Int!, $sorterId: ID) {\n page(type: $pageType, typeId: $typeId, filterId: $filterId, filter: $filter, sorterId: $sorterId) {\n id\n title\n showProfileType: node {\n ... on Show {\n showId: id\n showType: type\n showTitle: title\n shareURL\n __typename\n }\n __typename\n }\n channelProfile: node {\n ... on Channel {\n __typename\n channelId: id\n images {\n smallWhite\n largeWhite\n small\n large\n preview\n largePreview\n __typename\n }\n displayName\n isInPlan\n shareURL\n isFavorite\n currentBroadcast {\n show {\n imageHero: image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n }\n episode {\n imageHero: image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n }\n __typename\n }\n }\n __typename\n }\n showProfile: tile {\n ...TileBasicsFragment\n show {\n ...ShowTileCommonFragment\n ...MovieProfileFragment\n __typename\n }\n episode {\n ...EpisodeHeroImageFragment\n __typename\n }\n __typename\n }\n filters {\n id\n title\n __typename\n }\n sorters {\n id\n title\n selected\n __typename\n }\n groups(first: $first, after: $endCursor) {\n pageInfo {\n ...PaginationPageInfoFragment\n __typename\n }\n edges {\n cursor\n node {\n id\n title\n header {\n title\n iconURL(type: DEFAULT, format: SVG)\n __typename\n }\n iconURL(type: DEFAULT, format: SVG)\n linkIconURL: iconURL(type: LINK, format: SVG)\n link {\n type\n typeId\n filterId\n filter\n __typename\n }\n type\n channel {\n channelId\n displayName\n isFavorite\n images {\n smallWhite\n small\n __typename\n }\n __typename\n }\n behaviors\n tiles(initialTiles: $initialTiles) {\n status\n pageInfo {\n ...PaginationPageInfoFragment\n __typename\n }\n summary {\n initialRelativeIndex\n totalCount\n __typename\n }\n edges {\n node {\n ...PresentationTile\n __typename\n }\n cursor\n __typename\n }\n __typename\n }\n __typename\n }\n cursor\n __typename\n }\n summary {\n totalCount\n __typename\n }\n status\n __typename\n }\n __typename\n }\n}\n\nfragment PresentationTile on Tile {\n ...TileBasicsFragment\n header {\n title\n iconURL(type: DEFAULT, format: SVG)\n __typename\n }\n show {\n ...ShowTileCommonFragment\n imageBanner: image(orientation: HORIZONTAL, maxSize: S, preferredType: BANNER, strictMatch: true) {\n url\n size\n ...colorPalette\n type\n __typename\n }\n imageIconic: image(orientation: HORIZONTAL, maxSize: S, preferredType: ICONIC) {\n url\n size\n ...colorPalette\n type\n __typename\n }\n imageHero: image(maxSize: M, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n imageBannerMovie: image(orientation: HORIZONTAL, maxSize: S, preferredType: BANNER, strictMatch: true) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n }\n episode {\n id\n episodeId\n episodeNum\n seasonNum\n imageBanner: image(orientation: HORIZONTAL, maxSize: S, preferredType: BANNER) {\n url\n size\n ...colorPalette\n type\n __typename\n }\n imageIconic: image(orientation: HORIZONTAL, maxSize: S, preferredType: ICONIC) {\n url\n size\n ...colorPalette\n type\n __typename\n }\n imageHero: image(maxSize: M, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment colorPalette on Image {\n colors(deviceType: WEB) {\n key {\n all {\n r\n g\n b\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment TileBasicsFragment on Tile {\n title\n subtitle\n description\n longDescription\n isInPlan\n isBlackout\n isDVR\n isWatched\n hasPlayable\n hasUpcoming\n durationInSeconds\n newForUser\n playableAssetId\n playableAssetType\n playbackPercentage\n previewURL\n largePreviewURL\n airingTime\n availabilityStartsAt\n availabilityEndsAt\n ratings {\n classification\n value\n __typename\n }\n channel {\n id\n channelId\n displayName\n isFavorite\n images {\n smallWhite\n small\n largeWhite\n large\n __typename\n }\n __typename\n }\n notInPlanProducts {\n id\n displayName\n keyImage\n __typename\n }\n behaviors\n __typename\n}\n\nfragment ShowTileCommonFragment on ShowTile {\n id\n showId\n type\n hasFollow\n movieReleaseYear\n movieRunTimeInSeconds\n __typename\n}\n\nfragment PaginationPageInfoFragment on PageInfo {\n hasPreviousPage\n hasNextPage\n endCursor\n startCursor\n __typename\n}\n\nfragment MovieProfileFragment on ShowTile {\n imageHero: image(maxSize: XL, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n imageBanner: image(maxSize: S, orientation: HORIZONTAL, preferredType: BANNER) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n moviePoster: image(maxSize: S, orientation: VERTICAL, preferredType: BANNER) {\n url\n __typename\n }\n __typename\n}\n\nfragment EpisodeHeroImageFragment on EpisodeTile {\n imageHero: image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n}\n","variables":{"pageType":"HOME","initialTiles":8,"first":8,"after":null,"last":null,"before":null},"operationName":"page"}]
[{"query":"query page($pageType: PageType!, $typeId: ID, $filterId: ID, $filter: String, $endCursor: String, $first: Int!, $initialTiles: Int!, $sorterId: ID) {\n page(type: $pageType, typeId: $typeId, filterId: $filterId, filter: $filter, sorterId: $sorterId) {\n id\n title\n showProfileType: node {\n ... on Show {\n showId: id\n showType: type\n showTitle: title\n shareURL\n __typename\n }\n __typename\n }\n channelProfile: node {\n ... on Channel {\n __typename\n channelId: id\n images {\n smallWhite\n largeWhite\n small\n large\n preview\n largePreview\n __typename\n }\n displayName\n isInPlan\n shareURL\n isFavorite\n currentBroadcast {\n show {\n imageHero: image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n }\n episode {\n imageHero: image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n }\n __typename\n }\n }\n __typename\n }\n showProfile: tile {\n ...TileBasicsFragment\n show {\n ...ShowTileCommonFragment\n ...MovieProfileFragment\n __typename\n }\n episode {\n ...EpisodeHeroImageFragment\n __typename\n }\n __typename\n }\n filters {\n id\n title\n __typename\n }\n sorters {\n id\n title\n selected\n __typename\n }\n groups(first: $first, after: $endCursor) {\n pageInfo {\n ...PaginationPageInfoFragment\n __typename\n }\n edges {\n cursor\n node {\n id\n title\n header {\n title\n iconURL(type: DEFAULT, format: SVG)\n __typename\n }\n iconURL(type: DEFAULT, format: SVG)\n linkIconURL: iconURL(type: LINK, format: SVG)\n link {\n type\n typeId\n filterId\n filter\n __typename\n }\n type\n channel {\n channelId\n displayName\n isFavorite\n images {\n smallWhite\n small\n __typename\n }\n __typename\n }\n behaviors\n tiles(initialTiles: $initialTiles) {\n status\n pageInfo {\n ...PaginationPageInfoFragment\n __typename\n }\n summary {\n initialRelativeIndex\n totalCount\n __typename\n }\n edges {\n node {\n ...PresentationTile\n __typename\n }\n cursor\n __typename\n }\n __typename\n }\n __typename\n }\n cursor\n __typename\n }\n summary {\n totalCount\n __typename\n }\n status\n __typename\n }\n __typename\n }\n}\n\nfragment PresentationTile on Tile {\n ...TileBasicsFragment\n header {\n title\n iconURL(type: DEFAULT, format: SVG)\n __typename\n }\n show {\n ...ShowTileCommonFragment\n imageBanner: image(orientation: HORIZONTAL, maxSize: S, preferredType: BANNER, strictMatch: true) {\n url\n size\n ...colorPalette\n type\n __typename\n }\n imageIconic: image(orientation: HORIZONTAL, maxSize: S, preferredType: ICONIC) {\n url\n size\n ...colorPalette\n type\n __typename\n }\n imageHero: image(maxSize: M, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n imageBannerMovie: image(orientation: HORIZONTAL, maxSize: S, preferredType: BANNER, strictMatch: true) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n }\n episode {\n id\n episodeId\n episodeNum\n seasonNum\n imageBanner: image(orientation: HORIZONTAL, maxSize: S, preferredType: BANNER) {\n url\n size\n ...colorPalette\n type\n __typename\n }\n imageIconic: image(orientation: HORIZONTAL, maxSize: S, preferredType: ICONIC) {\n url\n size\n ...colorPalette\n type\n __typename\n }\n imageHero: image(maxSize: M, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment colorPalette on Image {\n colors(deviceType: WEB) {\n key {\n all {\n r\n g\n b\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment TileBasicsFragment on Tile {\n title\n subtitle\n description\n longDescription\n isInPlan\n isBlackout\n isDVR\n isWatched\n hasPlayable\n hasUpcoming\n durationInSeconds\n newForUser\n playableAssetId\n playableAssetType\n playbackPercentage\n previewURL\n largePreviewURL\n airingTime\n availabilityStartsAt\n availabilityEndsAt\n ratings {\n classification\n value\n __typename\n }\n channel {\n id\n channelId\n displayName\n isFavorite\n images {\n smallWhite\n small\n largeWhite\n large\n __typename\n }\n __typename\n }\n notInPlanProducts {\n id\n displayName\n keyImage\n __typename\n }\n behaviors\n __typename\n}\n\nfragment ShowTileCommonFragment on ShowTile {\n id\n showId\n type\n hasFollow\n movieReleaseYear\n movieRunTimeInSeconds\n __typename\n}\n\nfragment PaginationPageInfoFragment on PageInfo {\n hasPreviousPage\n hasNextPage\n endCursor\n startCursor\n __typename\n}\n\nfragment MovieProfileFragment on ShowTile {\n imageHero: image(maxSize: XL, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n imageBanner: image(maxSize: S, orientation: HORIZONTAL, preferredType: BANNER) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n moviePoster: image(maxSize: S, orientation: VERTICAL, preferredType: BANNER) {\n url\n __typename\n }\n __typename\n}\n\nfragment EpisodeHeroImageFragment on EpisodeTile {\n imageHero: image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n image(maxSize: L, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n ...colorPalette\n size\n type\n __typename\n }\n __typename\n}\n","variables":{"pageType":"GUIDE","initialTiles":8,"first":8,"after":null,"last":null,"before":null},"operationName":"page"}]
[{"query":"mutation createPlaybackSession($id: ID!, $pid: String!, $code: String, $playerId: ID) {\n createPlaybackSession(id: $id, pid: $pid, code: $code, playerId: $playerId) {\n ...playbackSessionFields\n sharedPlaybackSession {\n ...sharedPlaybackSessionFields\n __typename\n }\n __typename\n }\n}\n\nfragment sharedPlaybackSessionFields on SharedPlaybackSession {\n id\n lastUpdatedAt\n lastUpdatedBy {\n ...playerFields\n __typename\n }\n partyPlayState {\n ...playStateFields\n __typename\n }\n requestedAsset {\n id\n __typename\n }\n syncedPlayers(first: 5) {\n edges {\n node {\n ...playerFields\n __typename\n }\n __typename\n }\n summary {\n totalCount\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment playStateFields on PlayState {\n isInParty\n lastUpdatedAt\n playbackRate\n playerStatus\n positionInMs\n serverTime\n version\n __typename\n}\n\nfragment playerFields on Player {\n id\n nickname\n deviceName\n user {\n id\n displayName\n __typename\n }\n settings {\n captionsEnabled\n volume\n version\n __typename\n }\n __typename\n}\n\nfragment playbackSessionFields on PlaybackSession {\n node {\n id\n typename: __typename\n ...playbackSessionChannelFields\n ...playbackSessionRecordingFields\n ...playbackSessionVODFields\n }\n pid\n checkAt\n dashJSONURL\n dashURL\n drm(drmType: CASTLABS)\n drmURL(drmType: CASTLABS)\n hlsURL\n meta\n thumbsURL\n reportingIntervalInMs\n __typename\n}\n\nfragment playbackSessionChannelFields on Channel {\n callsign\n currentBroadcast {\n id\n show {\n id\n title\n __typename\n }\n episode {\n id\n subtitle\n __typename\n }\n playhead {\n positionInSeconds\n watchedRanges {\n start\n end\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment playbackSessionRecordingFields on Recording {\n corruptedAt\n lookbackEndsAt\n durationInSeconds\n broadcast {\n ...playerBroadcastFields\n playhead {\n positionInSeconds\n watchedRanges {\n start\n end\n __typename\n }\n __typename\n }\n channel {\n ...playerChannelFields\n __typename\n }\n show {\n ...playerShowFields\n __typename\n }\n episode {\n ...playerEpisodeFields\n __typename\n }\n __typename\n }\n __typename\n}\n\nfragment playerBroadcastFields on Broadcast {\n id\n startsAt\n endsAt\n hasAdPositionMarkers\n hasSeekRestrictions\n __typename\n}\n\nfragment playerChannelFields on Channel {\n id\n isActive\n displayName\n callsign\n images {\n small\n smallWhite\n smallDark\n __typename\n }\n __typename\n}\n\nfragment playerShowFields on Show {\n id\n title\n type\n description\n longDescription\n movieReleaseYear\n hasFollow\n image(maxSize: M, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n type\n __typename\n }\n __typename\n}\n\nfragment playerEpisodeFields on Episode {\n id\n subtitle\n seasonNum\n episodeNum\n description\n longDescription\n image(maxSize: M, orientation: HORIZONTAL, preferredType: ICONIC) {\n url\n type\n __typename\n }\n __typename\n}\n\nfragment playbackSessionVODFields on VOD {\n durationInSeconds\n licenseEndsAt\n playhead {\n positionInSeconds\n watchedRanges {\n start\n end\n __typename\n }\n __typename\n }\n channel {\n ...playerChannelFields\n __typename\n }\n show {\n ...playerShowFields\n __typename\n }\n episode {\n ...playerEpisodeFields\n __typename\n }\n hasAdPositionMarkers\n hasSeekRestrictions\n __typename\n}\n","variables":{"id":"***playable_asset_id***","pid":"web-***unique_device_uuid***","playerId":"***unique_player_id***","code":null},"operationName":"createPlaybackSession"}]