Repository: yt-dlp/yt-dlp

Issue:
PornHub not able to login for playlists
### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

- [X] I understand that I will be **blocked** if I *intentionally* remove or skip any mandatory\* field

### Checklist

- [x] I'm reporting that yt-dlp is broken on a **supported** site
- [X] I've verified that I'm running yt-dlp version **2023.07.06** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [X] I've searched [known issues](https://github.com/yt-dlp/yt-dlp/issues/3766) and the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues **including closed ones**. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)
- [X] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required

### Region

United States

### Provide a description that is worded well enough to be understood

Trying to download videos saved to watch later which requires sign in. I am able to sign in and view my watch later and use yt-dlp to download publicly available videos or pages, but nothing that requires sign in. 

I've hidden the full output path for privacy. The command is a saved command and worked when I last tried it. It's been about a year or so.

### Provide verbose output that clearly demonstrates the problem

- [X] Run **your** yt-dlp command with **-vU** flag added (`yt-dlp -vU <your command line>`)
- [ ] If using API, add `'verbose': True` to `YoutubeDL` params instead
- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

```shell
[debug] Command-line config: ['-vU', '-u', 'PRIVATE', '-p', 'PRIVATE', '--external-downloader', 'aria2c', '--external-downloader-args', '-x 16', '--yes-playlist', '--sleep-interval', '5', '-o', '\\\\192.168.*.*\\Download\\%%(title)s.%%(ext)s', 'https://www.pornhub.com/playlist/watchlater']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.07.06 [b532a3481] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19045-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-111833-gb5273c619d-20230828 (setts), ffprobe N-111833-gb5273c619d-20230828
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
WARNING: External Downloader arguments given without specifying name. The arguments will be given to aria2c
[debug] Loaded 1855 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.07.06, Current version: stable@2023.07.06
Current Build Hash: 5ff3e702171a50175c34397494e2d18ce35d771c2110b1e59bd173ec2fb352aa
yt-dlp is up to date (stable@2023.07.06)
[PornHubPlaylist] Extracting URL: https://www.pornhub.com/playlist/watchlater
[PornHubPlaylist] Downloading pornhub login page
[download] Downloading playlist: watchlater
[PornHubPlaylist] watchlater: Downloading page 1
ERROR: Unable to extract playlist_id; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1560, in wrapper
  File "yt_dlp\utils\_utils.py", line 2893, in <lambda>
  File "yt_dlp\utils\_utils.py", line 2661, in __getitem__
  File "yt_dlp\extractor\pornhub.py", line 790, in _entries
  File "yt_dlp\extractor\common.py", line 1258, in _search_regex
yt_dlp.utils.RegexNotFoundError: Unable to extract playlist_id; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U

[PornHubPlaylist] Playlist watchlater: Downloading 1 items
[download] Finished downloading playlist: watchlater
```



Discussion:
I have created a test account to share creds and verified the issue is happening with the test account, too. Please let me know if I need to, and how to, share creds.
Just reaching out for an update. Thanks!
You are going to have to wait until a dev is interested in working on this. If/when one is, they will reach out here for account credentials

Resolving patch:
diff --git a/yt_dlp/extractor/pornhub.py b/yt_dlp/extractor/pornhub.py
--- a/yt_dlp/extractor/pornhub.py
+++ b/yt_dlp/extractor/pornhub.py
@@ -87,8 +87,8 @@ def _login(self, host):
 
         def is_logged(webpage):
             return any(re.search(p, webpage) for p in (
-                r'class=["\']signOut',
-                r'>Sign\s+[Oo]ut\s*<'))
+                r'id="profileMenuDropdown"',
+                r'class="ph-icon-logout"'))
 
         if is_logged(login_page):
             self._logged_in = True


Test patch: