{"id":23775987,"url":"https://github.com/hemakodaa/multi-pov","last_synced_at":"2025-07-14T08:11:31.109Z","repository":{"id":269773102,"uuid":"908402634","full_name":"hemakodaa/multi-pov","owner":"hemakodaa","description":"a shell program to download multiple youtube videos concurrently via yt-dlp","archived":false,"fork":false,"pushed_at":"2025-02-16T08:59:28.000Z","size":47,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-16T09:27:06.843Z","etag":null,"topics":["clipper","python3","yt-dlp","yt-dlp-wrapper"],"latest_commit_sha":null,"homepage":"","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/hemakodaa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2024-12-26T01:48:31.000Z","updated_at":"2025-01-12T03:13:58.000Z","dependencies_parsed_at":"2024-12-26T04:21:12.763Z","dependency_job_id":"a62babba-d9b9-4a5d-9d33-ce49a82d6e2a","html_url":"https://github.com/hemakodaa/multi-pov","commit_stats":null,"previous_names":["hemakodaa/multi-pov"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hemakodaa%2Fmulti-pov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hemakodaa%2Fmulti-pov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hemakodaa%2Fmulti-pov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hemakodaa%2Fmulti-pov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hemakodaa","download_url":"https://codeload.github.com/hemakodaa/multi-pov/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239966666,"owners_count":19726378,"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":["clipper","python3","yt-dlp","yt-dlp-wrapper"],"created_at":"2025-01-01T07:12:07.650Z","updated_at":"2025-02-21T06:24:30.415Z","avatar_url":"https://github.com/hemakodaa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Requirements\n1. Python 3.13+. Simply download the latest version from python.org\n2. `yt-dlp`\n3. `ffmpeg`\n4. PDM (optional, but it'll make things easier)\n5. GIT (optional)\n\nAll of these programs should already be installed and is available on your environment path.\n\nPDM is a Package and Dependecy Manager for python. Read their [instructions](https://pdm-project.org/en/latest/#installation) on how to install it based on what your OS is.\n\nGit is a version control software, check their [Installation](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) page.\n\n# Cloning the repository\nOpen cmd in the folder in which you want this repository to live in and type in:\n```\ngit clone https://github.com/hemakodaa/multi-pov.git\n```\n\n# 'Offset' and 'Reference'\nThink of **Offset** and **Reference** like **timezones**. If you live in New York, your timezone in terms of UTC is UTC-5. In this case, **Reference** is UTC and **offset** is that little **-5**. \n\nIn this utility, **Reference** is the streamer/POV you're watching from and **Offset** is the timestamp in which **the same event** happened across **all** VODs. Practical example [below](#the-reference-streamer).\n\n## the **Offset** file\nThe offset file **must be located inside `offset/` folder**, and the file itself contains 3 columns, separated by commas. Think of it as a CSV file, but it doesn't have to be `.csv`. As long as it's a text file, you're good.\n\nPay attention to the format:\n```\nstreamer_name,timestamp,youtube_vod_link\n\nExample:\nerina,11:54,https://www.youtube.com/watch?v=o32Zq76Bf1U\n```\n\n**timestamp** is the time in which, across **all** VODs, **some event** happened. \n\nFor example (this is from a Lockdown Protocol collab):\n\n```\nerina,11:54,https://www.youtube.com/watch?v=o32Zq76Bf1U\ntenma,11:48,https://www.youtube.com/watch?v=DasbU_b2-7w\nlia,11:56,https://www.youtube.com/watch?v=w2I65urGITI\niori,9:54,https://www.youtube.com/watch?v=db2wBGyvR-Q\npanko,7:52,https://www.youtube.com/watch?v=NKxuD0o4mZM\n```\nif you open any of these links at the specific timestamps, it will lead to the same event happening across all VODs, in which Tenma speaks (or joke crying, in this case). \n\nThis file will be used to calculate the appropriate offset for *any* section of the video you want to download.\n\n## The **Reference** streamer\nSay you're watching the Lockdown Protocol collab above from **Erina's perspective**, and something interesting happens. You may wonder *what is happening on the other streamers?*\n\nIn this example, Erina is the **Reference** streamer. You are watching the collab from **Erina's perspective** and you want to download this section of a video in which this event happened **alongside all the other POVs**. That's what this utility is for.\n\n# Basic commands\n\n**IMPORTANT: Change directory (`cd`) to multi_pov/cloned repository.**\n\nIf you have `pdm` installed, the base command is `pdm run main`. If you don't, the base command will be `python .\\src\\multi_pov\\main.py`\n## Bulk Downloads\nBulk downloads uses the offset file. \n- Start multi POV section downloads: \n\n`pdm run main -o offset_file.txt`\n- Maximum resolution of 720p: \n\n`pdm run main -o offset_file.txt -p 720`\n- Maximum of 2 parallel downloads: \n\n`pdm run main -o offset_file.txt -t 2`\n- Change reference streamer to (name) :\n\n`pdm run main -o offset_file.txt -r (name)`\n- Download full vods concurrently\n\n`pdm run main -o offset_file.txt --full`\n- All the above at once: \n\n`pdm run main -o offset_file.txt -p 720 -t 2 -r (name) --full` \u003c- the order doesn't matter for the options.\n\n## Single downloads\n- Download a section of a video\n\n`pdm run main -s https://www.youtube.com/watch?v=w8DLUoEbtLk`\n\n- Max resolution of 720p\n\n`pdm run main -s https://www.youtube.com/watch?v=w8DLUoEbtLk -p 720`\n\n- Download an entire video\n\n`pdm run main -s https://www.youtube.com/watch?v=w8DLUoEbtLk --full`\n\n- All the above at once\n\n`pdm run main -s https://www.youtube.com/watch?v=w8DLUoEbtLk -p 720 --full`\n\n\n# Options\n```\n\u003e pdm run main\nusage: multi-pov [-h] [-o OFFSETFILE] [-r REFERENCE] [-t THREADS]\n                 [-p RESOLUTION] [-s SINGLE] [--full]\n\nDownload multiple POVs at once\n\noptions:\n  -h, --help            show this help message and exit\n  -o, --offsetfile OFFSETFILE\n                        Filename of the offset file (include extension e.g.\n                        .txt)\n  -r, --reference REFERENCE\n                        Set the reference streamer\n  -t, --threads THREADS\n                        Set the amount of parallel downloads (default=4)\n  -p, --resolution RESOLUTION\n                        Set the maximum resolution (default=1080)\n  -s, --single SINGLE   Download single videos\n  --full                Download full VODs.\n\n```\n## Reference\nYou can change who the reference is based on from which POV you're watching from. It will default to whoever is on the first line of the offset file.\n## Threads\nThe maximum number of parallel downloads at any given time. `-t 1` is a sequential download. Defaults to 4.\n## Resolution\nSets the **maximum** resolution, meaning it will download the specified resolution **or lower**. Defaults to 1080p.\n\n# Section Download Interface\nSection downloads for both single and bulk downloads are the same. Single downloads will have `single_download` as its default or you can change it via `-r` flag.\n```\n\u003e pdm run main offset.txt\n\nReference streamer: iori\nURL: https://www.youtube.com/watch?v=_EhQFt-Gv70\n\nStreamers:\niori (REF)\ntenma\nuruka\nmichiru\n\nMax resolution: 1080p\n\nStart:\n```\n\nThis is the main interface. You will input your `Start` and `End` timestamps when prompted. When you're done, a familiar console text will show up indicating `yt-dlp` is downloading the sections of the VOD.\n\n```\nStart: 10:00\nEnd: 11:00\n[youtube] Extracting URL: https://www.youtube.com/watch?v=0zaNppnzWrQ\n[youtube] Extracting URL: https://www.youtube.com/watch?v=-bSnX_Fos0o\n[youtube] 0zaNppnzWrQ: Downloading webpage\n[youtube] -bSnX_Fos0o: Downloading webpage\n[youtube] Extracting URL: https://www.youtube.com/watch?v=TRZZvakcss4\n[youtube] TRZZvakcss4: Downloading webpage\n[youtube] Extracting URL: https://www.youtube.com/watch?v=_EhQFt-Gv70\n[youtube] _EhQFt-Gv70: Downloading webpage\n```\nIt will show reports from all 4 parallel downloads.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhemakodaa%2Fmulti-pov","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhemakodaa%2Fmulti-pov","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhemakodaa%2Fmulti-pov/lists"}