p_pl_dl - Porn Playlist Downloader
Report Bug · Request Feature · Ask Question · Report security bug
A porn playlist downloader using yt-dlp
and beautifulsoup
, along with some limited support for image albums.
Table of Contents
Currently supports:
- lewdthots (albums only)
- pornhub
- porntrex
- spankbang
- xhamster
- xvideos
Here's a breakdown of the packages needed and their versions:
- beautifulsoup4 >= 4.12.3
- core-helpers
- jsbeautifier >= 1.15.1
- poetry >= 1.7.1 (only for manual installation)
- requests >= 2.31.0
- rich >= 13.7.1
- yt-dlp >= 2022.10.4
Note
The software has been developed and tested using Python 3.12.1
. The minimum required version to run the software is Python 3.6. Although the software may work with previous versions, it is not guaranteed.
p_pl_dl
can be installed easily as a PyPI package. Just run the following command:
pip3 install p_pl_dl
Important
For best practices and to avoid potential conflicts with your global Python environment, it is strongly recommended to install this program within a virtual environment. Avoid using the --user option for global installations. We highly recommend using pipx for a safe and isolated installation experience. Therefore, the appropriate command to install p_pl_dl
would be:
pipx install p_pl_dl
The program can now be ran from a terminal with the p_pl_dl
command.
If you prefer to install the program manually, follow these steps:
Warning
This will install the version from the latest commit, not the latest release.
-
Download the latest version of p_pl_dl from this repository:
git clone https://github.com/YisusChrist/p_pl_dl cd p_pl_dl
-
Install the package:
poetry install --only main
-
Run the program:
poetry run p_pl_dl
If you installed it from PyPI, you can use the following command:
pipx uninstall p_pl_dl
Tip
For more information about the usage of the program, run p_pl_dl --help
or p_pl_dl -h
.
Call p_pl_dl
using command prompt. Pass in a text file with URLs using -i
. Optionally, provide cookies with -c
, and specify the download destination with -d
.
For cookies, you may pass in a single text file, or a folder path containing multiple cookie text files.
Videos from each site will be downloaded to \sites\<site name>
within the current working directory.
Using a single cookie text file:
p_pl_dl -i "C:\MyFolder\urls.txt" -c "C:\MyCookieFolder\cookies.txt" -d "F:\DownloadDestination"
Using multiple cookie text files stored in a folder:
p_pl_dl -i "C:\MyFolder\urls.txt" -c "C:\MyCookieFolder\" -d "F:\DownloadDestination"
You may also restrict downloads to a specific site using -o
. This may be useful if your urls.txt
has lots of playlists/videos across many sites, but you need to scrape a specific one. Pass in the full name of the site as given in the list of supported sites above.
p_pl_dl -i "C:\MyFolder\urls.txt" -c "C:\MyCookieFolder\" -d "F:\DownloadDestination" -o "xhamster"
p_pl_dl -i "C:\MyFolder\urls.txt" -c "C:\MyCookieFolder\" -d "F:\DownloadDestination" -o "spankbang"
The URL text file should have URLs separated by a line break. The URLs may be for individual videos or entire playlists.
Example:
https://www.xvideos.com/video35247781/
https://www.xhamster.com/videos/busty-blonde-girl-get-fucked-with-nice-lingerie-14429903
All cookie text files must have # Netscape HTTP Cookie File
on its first line. If that line is not found, the file will not be recognized as a cookie file and ignored.
Before you participate in our delightful community, please read the code of conduct.
I'm far from being an expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
We also need people to test out pull requests. So take a look through the open issues and help where you can.
See Contributing Guidelines for more details.
p_pl_dl
is released under the GPL-3.0 License.