{"id":24648577,"url":"https://github.com/persepolisdm/persepolis-windows-package-build","last_synced_at":"2025-05-07T21:55:02.524Z","repository":{"id":29452465,"uuid":"121730339","full_name":"persepolisdm/persepolis-windows-package-build","owner":"persepolisdm","description":"An instruction to build persepolis from source for windows","archived":false,"fork":false,"pushed_at":"2025-04-19T20:02:20.000Z","size":51928,"stargazers_count":31,"open_issues_count":0,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-07T21:54:58.219Z","etag":null,"topics":["inno-setup","packaging","pyinstaller","python","windows"],"latest_commit_sha":null,"homepage":"https://persepolisdm.github.io/persepolis-windows-package-build/","language":"Inno Setup","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/persepolisdm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2018-02-16T08:48:49.000Z","updated_at":"2025-04-19T20:02:23.000Z","dependencies_parsed_at":"2024-04-19T13:42:13.087Z","dependency_job_id":"4de47b67-826a-4ad7-967b-232180cebcb1","html_url":"https://github.com/persepolisdm/persepolis-windows-package-build","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/persepolisdm%2Fpersepolis-windows-package-build","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/persepolisdm%2Fpersepolis-windows-package-build/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/persepolisdm%2Fpersepolis-windows-package-build/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/persepolisdm%2Fpersepolis-windows-package-build/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/persepolisdm","download_url":"https://codeload.github.com/persepolisdm/persepolis-windows-package-build/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252961843,"owners_count":21832193,"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":["inno-setup","packaging","pyinstaller","python","windows"],"created_at":"2025-01-25T17:00:12.284Z","updated_at":"2025-05-07T21:55:02.484Z","avatar_url":"https://github.com/persepolisdm.png","language":"Inno Setup","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Persepolis Microsoft Windows package build\nwindows package build for [Persepolis Download Manager](https://github.com/persepolisdm/persepolis)\n\nWe build stable releases safely and you don't need to build it yourself. You can download Persepolis Download Manager for  Microsoft Windows from [release page](https://github.com/persepolisdm/persepolis/releases).\nIf you want to build Persepolis for Windows yourself, then this instruction can help you.\n# step 1: Preparing\n- ## 1-1 clone or download [Persepolis](https://github.com/persepolisdm/persepolis)\n\nYou can download project from our github page or using git clients.\n\nYou can download the stable version Source code from [release page](https://github.com/persepolisdm/persepolis/releases) or last git version from the [master branch](https://github.com/persepolisdm/persepolis/archive/master.zip).\nAfter downloading or cloning, extract and enter persepolis path.\nyou can see this structure for directories now.\n\n```\npersepolis\n├── man\n├── persepolis\n│   ├── gui\n│   └── scripts\n├── resources\n├── test\n└── xdg\n```\n\nYou also need some file that we put them in this repository and we use them to build persepolis. so clone or download [this repository](https://github.com/persepolisdm/persepolis-windows-package-build) alongside persepolis directory, we should have this structure finally:\n\n```\npersepolisarea\n├── persepolis-windows-package-build\n└── persepolis\n```\n\n- ## 1-2 python\npersepolis has been written in python so we need python3 to build it, after freezing and building the package there are no more need to python and its library.\nDownload latest [python3](https://www.python.org/downloads/windows/) and install it.\n\n **remember** the **destination directory** and enable the **“Add Python to PATH” option.**\n\n- ## 1-3 dependencies \u0026 libraries\n - Install virtualenv with `pip install virtualenv` From windows terminal (**powershell**)\n - Create an environment with `virtualenv venv` in persepolis directory\n - Active it with `.\\venv\\Scripts\\activate`\n - Install these libraries with `pip`\n\n   `pip install PySide6 requests pypiwin32 setproctitle psutil yt_dlp pyinstaller urllib3 PySocks`\n\n - Persepolis uses [**ffmpeg**](https://www.ffmpeg.org/) for mixing videos ([more info.](https://github.com/persepolisdm/persepolis/wiki/How-can-I-download-videos-from-youtube)). Download [ffmpeg](https://github.com/yt-dlp/FFmpeg-Builds/releases) (we use latest gpl version).\n\n# step 2: test and run\nMove **ffmpeg.exe** to the test folder next to the test.py according to your system architecture\n\nOpen Windows terminal and Enter cloned persepolis directory with `cd` command and active env. run persepolis as test with this command.  \n\n`python test/test.py`\n\n- now persepolis should run as a python script. If you get some error you may had mistake. Open  an issue [here](https://github.com/persepolisdm/persepolis-windows-package-build/issues), We will help you :)\n\n# step 3: build and freeze\nNow let's build persepolis!\n\nrun Windows terminal and enter persepolis folder and active env, so build Pesrpolis browser integration by pyinstaller with this command:\n\n```\npyinstaller '.\\resources\\PersepolisBI.py' -F -i '..\\persepolis-windows-package-build\\persepolis2.ico' -n \"PersepolisBI\" --version-file '..\\persepolis-windows-package-build\\bi_version.py' --clean\n```\n\nand build persepolis with this command:\n\n```\npyinstaller '.\\persepolis\\Persepolis Download Manager.py' -F -w -i '..\\persepolis-windows-package-build\\persepolis1.ico' -n \"Persepolis Download Manager\" --version-file '..\\persepolis-windows-package-build\\version.py' --clean\n```\n\n`-w` means it is a windowed app, not a console one.\n\n`-F` Create a one-file bundled executable.\n\n`-i` perseplois icon.\n\n`-n` name of bundled executable.\n\n`--version-file` add persepolis version resource from `version.py` to the exe.\n\nIf everything goes well, you have some output like this\n\n![pyinstaller](screen1.png)\n\n If you get error messages, you made mistake. Open  an issue [here](https://github.com/persepolisdm/persepolis-windows-package-build/issues), We will help you :)\n\n- After this, you have bundled executable file in dist folder, Move `ffmpeg.exe` and `PersepolisBI.exe` next to the `Persepolis Download Manager.exe`. you can run it and test it, it works perfectly\n\n# step 4 (Optional): create package installer\nYou have executable perseplois and you can put it everywhere (next to the and `ffmpeg.exe` and `PersepolisBI`) but we going to create a installer for windows.\n\n- Download and install [Inno Setup](http://www.jrsoftware.org/isdl.php)\n- you can create your installation or use our standard one, I put theme in this repository for both 32 and 64 architecture (`.iss files`). you should edit *`[Files]`* section and *LicenseFile, InfoAfterFile, OutputBaseFilename, SetupIconFile, UninstallDisplayIcon* according to your directory name, also I put license, persepolis readme, after installation text and icon in this repository.\n- Build and compile installation if everything goes well, you have a persepolis installer.\n\n Enjoy it. :blush:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpersepolisdm%2Fpersepolis-windows-package-build","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpersepolisdm%2Fpersepolis-windows-package-build","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpersepolisdm%2Fpersepolis-windows-package-build/lists"}