{"id":16370781,"url":"https://github.com/integralist/wwenetworkdownload","last_synced_at":"2025-07-11T03:05:17.105Z","repository":{"id":140162480,"uuid":"216238220","full_name":"Integralist/WWENetworkDownload","owner":"Integralist","description":"A proof of concept to understand how to download videos from a video streaming platform.","archived":false,"fork":false,"pushed_at":"2020-11-28T12:56:59.000Z","size":93,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-07T17:21:16.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Integralist.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-19T16:41:24.000Z","updated_at":"2020-12-07T07:26:35.000Z","dependencies_parsed_at":"2023-04-07T13:03:36.099Z","dependency_job_id":null,"html_url":"https://github.com/Integralist/WWENetworkDownload","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Integralist/WWENetworkDownload","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integralist%2FWWENetworkDownload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integralist%2FWWENetworkDownload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integralist%2FWWENetworkDownload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integralist%2FWWENetworkDownload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Integralist","download_url":"https://codeload.github.com/Integralist/WWENetworkDownload/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integralist%2FWWENetworkDownload/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264719238,"owners_count":23653541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T03:05:58.319Z","updated_at":"2025-07-11T03:05:17.100Z","avatar_url":"https://github.com/Integralist.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WWE Network Download\n\nThis is a proof of concept to understand how to download videos from a video streaming platform.\n\nThe code was originally written by [@freyta](https://github.com/freyta/) and I was granted permission to refactor his code and to host it here.\n\n\u003e Note: I do not endorse piracy. This is for educational purposes only. I hold no responsibility.\n\n## Requirements\n\n- Python3: `brew install python3`\n- FFMPEG: `brew install ffmpeg`\n\n### Optional\n\nThis command-line application offers a `-s, --speak` flag which uses a 'Text-to-Speech' program. You don't have to use this flag to run the command-line application and so the required speech program is not _required_.\n\nBy default we use the `say` command which is available by default on macOS. If you're on Linux then you could modify this code to utilize something like `espeak` instead.\n\n## Usage\n\n```\nusage: main.py [-h] [-u USER] [-p PASSWORD] [-l LINK] [-f FILES]\n\nDownload videos from the WWE Network\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -u USER, --user USER  WWE Network user account.\n  -p PASSWORD, --password PASSWORD\n                        WWE Network account password.\n  -l LINK, --link LINK  Video link to download.\n  -f FILES, --files FILES\n                        File with list of links\n  -d DEBUG, --debug DEBUG\n                        Dry-run displays ffmpeg commands.\n  -v VERBOSE, --verbose VERBOSE\n                        Verbose prints ffmpeg output.\n  -i INDEX, --index INDEX\n                        Index adds indices to filenames.\n  -s SPEAK, --speak SPEAK\n                        Use `say` binary for alerts.\n  -o OUTPUT, --output OUTPUT\n                        Directory to place files into.\n```\n\n## Examples\n\n- [Login credentials provided by environment variables](#login-credentials-provided-by-environment-variables)\n- [Login credentials provided by CLI flags](#login-credentials-provided-by-CLI-flags)\n- [Multiple videos downloaded in parallel](#multiple-videos-downloaded-in-parallel)\n- [Change output directory](#change-output-directory)\n- [Insert numeric index in filenames](#insert-numeric-index-in-filenames)\n- [Debug Mode](#debug-mode)\n- [Verbose Mode](#verbose-mode)\n- [Speak Mode](#speak-mode)\n\n### Login credentials provided by environment variables:\n\n```bash\nexport WWE_USER=foo WWE_PASS=bar \u0026\u0026 python3 main.py -l \u003curl\u003e\n```\n\nIn the above example, `\u003curl\u003e` is either:\n\n- `https://watch.wwe.com/episode/Prime-Time-Wrestling-9702`\n- `/episode/Prime-Time-Wrestling-9702`\n- `episode/Prime-Time-Wrestling-9702`\n\n### Login credentials provided by CLI flags\n\n```bash\npython3 main.py -u foo -p bar -l \u003curl\u003e \n```\n\n### Multiple videos downloaded in parallel\n\n```bash\npython3 main.py -u foo -p bar -f files.txt\n```\n\nIn the above example, `files.txt` is a file consisting of multiple video URLs (one per line).\n\n\u003e Note: we use a process 'pool' to prevent creating more subprocesses than we have cores.\n\n### Change output directory\n\nIf you wish to not have the files downloaded to the same directory as where you are running the CLI command from, then use the `-o, --output` flag to inform the binary of where to download the files to.\n\n```bash\npython3 main.py -u foo -p bar -f files.txt -o /Volumes/MyExternalDrive/...\n```\n\n### Insert numeric index in filenames\n\nIf you're using the `-f, --files` flag to download multiple videos at once, then those videos could be part of a show (e.g. The Monday Night Wars) where the episodes are in a sequential order.\n\nIf you include the `-i, --index` flag with your command, then we'll presume the order in the `-f, --files` file will be in order, and we'll simply insert a numerical index to the output filename.\n\nFor example, if you provided `--files videos.txt` and your `videos.txt` contained the following...\n\n```\nhttps://watch.wwe.com/episode/The-War-Begins-9762\nhttps://watch.wwe.com/episode/The-Rise-of-the-nWo-9779\nhttps://watch.wwe.com/episode/Embracing-a-New-Attitude-9078\n```\n\nThen we would download the videos and output the filenames as:\n\n```\n1. The_War_Begins.mp4\n2. The_Rise_of_the_nwo.mp4\n3. Embracing_a_New_Attitude.mp4\n```\n\n### Debug Mode\n\nDebug mode will print the `ffmpeg` command that the application generates for accessing a specified video.\n\nNo downloading of the stream URL will occur.\n\n```bash\npython3 main.py -u foo -p bar -f files.txt -d true\n```\n\n\u003e Note: omit the `-d, --debug` flag if you don't require debug mode.\n\n### Verbose Mode\n\nVerbose mode will print the output from the generated `ffmpeg` command which streams the provided video(s).\n\n```bash\npython3 main.py -u foo -p bar -f files.txt -v true\n```\n\n\u003e Note: omit the `-v, --verbose` flag if you don't require verbose mode.\n\n### Speak Mode\n\nSpeak mode will use the `say` command (available by default on macOS) to notify you of important things happening. \n\nFor example, rather than having to keep an eye on your terminal to see when a new batch of subprocesses is opened (e.g. when providing a list of videos using the `-f, --files` flag), you can now use the `-s, --speak` flag and the terminal will speak out loud that this is happening.\n\n```bash\npython3 main.py -u foo -p bar -f files.txt -s true\n```\n\n## TODO\n\nAdd stdout printing of the download file size so people can see how the progress is going.\n\nA temporary solution is to `brew install watch` and to run:\n\n```bash\nwatch -n 1 ls -lah '*.mp4'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintegralist%2Fwwenetworkdownload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintegralist%2Fwwenetworkdownload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintegralist%2Fwwenetworkdownload/lists"}