split-screen-recording-by-monitor


Namesplit-screen-recording-by-monitor JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://github.com/tylerlum/split_screen_recording_by_monitor
SummarySplit a screen recording video file into N video files, one per monitor
upload_time2023-12-15 05:09:43
maintainer
docs_urlNone
authorTyler Lum
requires_python
license
keywords python screen recording ffmpeg split monitor
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # split_screen_recording_by_monitor

Split a screen recording video file into N video files, one per monitor 

# Installing

Install:

```
pip install split_screen_recording_by_monitor
```

# Usage

In Ubuntu, it is very convenient to start and stop screen-recording with CTRL + ALT + SHIFT + R. From my experience, it produces a more compact video file than [Kazam](https://github.com/henrywoo/kazam), which is very useful when we want to convert videos to gifs so they can be put into Google Slides (50 MB limit per GIF). 

The problem this library solves is when screen recording with dual monitors. The screen recording captures both monitors, but we often only want the screen recording for one monitor. You could do the cropping with an online tool, but this can be slow, manual, and time-consuming. This problem is even worse when you have large files and slow upload speeds.

Simply screen record as usual with CTRL + ALT + SHIFT + R, then run `split_screen_recording_by_monitor --input-video-filepath <PATH_TO_SCREEN_RECORDING>` the result will be N video files (one per monitor).

```
split_screen_recording_by_monitor --help
usage: split_screen_recording_by_monitor [-h] --input-video-filepath PATH [--output-video-folderpath PATH]

╭─ arguments ──────────────────────────────────────────────────╮
│ -h, --help        show this help message and exit            │
│ --input-video-filepath PATH                                  │
│                   (required)                                 │
│ --output-video-folderpath PATH                               │
│                   (default: /home/tylerlum)                  │
╰──────────────────────────────────────────────────────────────╯
```

# Limitations

* Assumes that the video was captured with the same monitor setup as the monitor setup running this function (this assumption makes it easy to decide where the cropping bounds should be)
* Assumes that the monitors will be layed out horizontally or vertically (cannot currently handle grids of monitors)

# Example Video

## Original Recording

![2023-12-14_21-06-39_Example_Video](https://github.com/tylerlum/split_screen_recording_by_monitor/assets/26510814/231310f9-65db-446b-8472-d36ef859bff2)

## Split Recordings
![2023-12-14_21-07-09_Example_Video_0](https://github.com/tylerlum/split_screen_recording_by_monitor/assets/26510814/87e730bb-3925-482a-aefd-4ee5534e752d)

![2023-12-14_21-07-00_Example_Video_1](https://github.com/tylerlum/split_screen_recording_by_monitor/assets/26510814/135a1ff9-606b-4d70-8d16-e8bb99fea852)

## How Example Was Created

```
split_screen_recording_by_monitor --input-video-filepath Example_Video.webm 
================================================================================
Found input video resolution: (4480, 1440)
================================================================================

================================================================================
Found the following monitors: [Monitor(x=1920, y=0, width=2560, height=1440, width_mm=597, height_mm=336, name='DP-0', is_primary=False), Monitor(x=0, y=0, width=1920, height=1200, width_mm=518, height_mm=324, name='DP-4', is_primary=True)]
================================================================================

================================================================================
Passed monitor layout check!
================================================================================

================================================================================
Splitting video by monitor...
================================================================================

ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, matroska,webm, from 'Example_Video.webm':
  Metadata:
    encoder         : GStreamer matroskamux version 1.16.3
    creation_time   : 2023-12-15T05:04:03.000000Z
  Duration: 00:00:13.80, start: 0.006000, bitrate: 511 kb/s
    Stream #0:0(eng): Video: vp8, yuv420p(tv, bt709, progressive), 4480x1440, SAR 1:1 DAR 28:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      title           : Video
Stream mapping:
  Stream #0:0 (vp8) -> crop
  crop -> Stream #0:0 (libvpx-vp9)
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x55c3d4adad40] v1.8.2
Output #0, webm, to '/juno/u/tylerlum/Videos/Example_Video_0.webm':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 2560x1440 [SAR 1:1 DAR 16:9], q=-1--1, 200 kb/s, 30 fps, 1k tbn, 30 tbc (default)
    Metadata:
      encoder         : Lavc58.54.100 libvpx-vp9
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=  120 fps= 18 q=0.0 Lsize=     409kB time=00:00:13.76 bitrate= 243.3kbits/s speed=2.09x    
video:407kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.358540%
ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Input #0, matroska,webm, from 'Example_Video.webm':
  Metadata:
    encoder         : GStreamer matroskamux version 1.16.3
    creation_time   : 2023-12-15T05:04:03.000000Z
  Duration: 00:00:13.80, start: 0.006000, bitrate: 511 kb/s
    Stream #0:0(eng): Video: vp8, yuv420p(tv, bt709, progressive), 4480x1440, SAR 1:1 DAR 28:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      title           : Video
Stream mapping:
  Stream #0:0 (vp8) -> crop
  crop -> Stream #0:0 (libvpx-vp9)
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x555d33895d40] v1.8.2
Output #0, webm, to '/juno/u/tylerlum/Videos/Example_Video_1.webm':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 1920x1200 [SAR 1:1 DAR 8:5], q=-1--1, 200 kb/s, 30 fps, 1k tbn, 30 tbc (default)
    Metadata:
      encoder         : Lavc58.54.100 libvpx-vp9
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame=  120 fps= 28 q=0.0 Lsize=     205kB time=00:00:13.76 bitrate= 121.8kbits/s speed=3.25x    
video:203kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.705541%
================================================================================
Done!
================================================================================
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/tylerlum/split_screen_recording_by_monitor",
    "name": "split-screen-recording-by-monitor",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "python,screen recording,ffmpeg,split,monitor",
    "author": "Tyler Lum",
    "author_email": "tylergwlum@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/fc/d1/ede70956cd056a7f3bfac0180adaea9212116f3e96e977a84e15b7307c00/split_screen_recording_by_monitor-0.0.1.tar.gz",
    "platform": null,
    "description": "# split_screen_recording_by_monitor\n\nSplit a screen recording video file into N video files, one per monitor \n\n# Installing\n\nInstall:\n\n```\npip install split_screen_recording_by_monitor\n```\n\n# Usage\n\nIn Ubuntu, it is very convenient to start and stop screen-recording with CTRL + ALT + SHIFT + R. From my experience, it produces a more compact video file than [Kazam](https://github.com/henrywoo/kazam), which is very useful when we want to convert videos to gifs so they can be put into Google Slides (50 MB limit per GIF). \n\nThe problem this library solves is when screen recording with dual monitors. The screen recording captures both monitors, but we often only want the screen recording for one monitor. You could do the cropping with an online tool, but this can be slow, manual, and time-consuming. This problem is even worse when you have large files and slow upload speeds.\n\nSimply screen record as usual with CTRL + ALT + SHIFT + R, then run `split_screen_recording_by_monitor --input-video-filepath <PATH_TO_SCREEN_RECORDING>` the result will be N video files (one per monitor).\n\n```\nsplit_screen_recording_by_monitor --help\nusage: split_screen_recording_by_monitor [-h] --input-video-filepath PATH [--output-video-folderpath PATH]\n\n\u256d\u2500 arguments \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 -h, --help        show this help message and exit            \u2502\n\u2502 --input-video-filepath PATH                                  \u2502\n\u2502                   (required)                                 \u2502\n\u2502 --output-video-folderpath PATH                               \u2502\n\u2502                   (default: /home/tylerlum)                  \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n```\n\n# Limitations\n\n* Assumes that the video was captured with the same monitor setup as the monitor setup running this function (this assumption makes it easy to decide where the cropping bounds should be)\n* Assumes that the monitors will be layed out horizontally or vertically (cannot currently handle grids of monitors)\n\n# Example Video\n\n## Original Recording\n\n![2023-12-14_21-06-39_Example_Video](https://github.com/tylerlum/split_screen_recording_by_monitor/assets/26510814/231310f9-65db-446b-8472-d36ef859bff2)\n\n## Split Recordings\n![2023-12-14_21-07-09_Example_Video_0](https://github.com/tylerlum/split_screen_recording_by_monitor/assets/26510814/87e730bb-3925-482a-aefd-4ee5534e752d)\n\n![2023-12-14_21-07-00_Example_Video_1](https://github.com/tylerlum/split_screen_recording_by_monitor/assets/26510814/135a1ff9-606b-4d70-8d16-e8bb99fea852)\n\n## How Example Was Created\n\n```\nsplit_screen_recording_by_monitor --input-video-filepath Example_Video.webm \n================================================================================\nFound input video resolution: (4480, 1440)\n================================================================================\n\n================================================================================\nFound the following monitors: [Monitor(x=1920, y=0, width=2560, height=1440, width_mm=597, height_mm=336, name='DP-0', is_primary=False), Monitor(x=0, y=0, width=1920, height=1200, width_mm=518, height_mm=324, name='DP-4', is_primary=True)]\n================================================================================\n\n================================================================================\nPassed monitor layout check!\n================================================================================\n\n================================================================================\nSplitting video by monitor...\n================================================================================\n\nffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers\n  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)\n  configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared\n  libavutil      56. 31.100 / 56. 31.100\n  libavcodec     58. 54.100 / 58. 54.100\n  libavformat    58. 29.100 / 58. 29.100\n  libavdevice    58.  8.100 / 58.  8.100\n  libavfilter     7. 57.100 /  7. 57.100\n  libavresample   4.  0.  0 /  4.  0.  0\n  libswscale      5.  5.100 /  5.  5.100\n  libswresample   3.  5.100 /  3.  5.100\n  libpostproc    55.  5.100 / 55.  5.100\nInput #0, matroska,webm, from 'Example_Video.webm':\n  Metadata:\n    encoder         : GStreamer matroskamux version 1.16.3\n    creation_time   : 2023-12-15T05:04:03.000000Z\n  Duration: 00:00:13.80, start: 0.006000, bitrate: 511 kb/s\n    Stream #0:0(eng): Video: vp8, yuv420p(tv, bt709, progressive), 4480x1440, SAR 1:1 DAR 28:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)\n    Metadata:\n      title           : Video\nStream mapping:\n  Stream #0:0 (vp8) -> crop\n  crop -> Stream #0:0 (libvpx-vp9)\nPress [q] to stop, [?] for help\n[libvpx-vp9 @ 0x55c3d4adad40] v1.8.2\nOutput #0, webm, to '/juno/u/tylerlum/Videos/Example_Video_0.webm':\n  Metadata:\n    encoder         : Lavf58.29.100\n    Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 2560x1440 [SAR 1:1 DAR 16:9], q=-1--1, 200 kb/s, 30 fps, 1k tbn, 30 tbc (default)\n    Metadata:\n      encoder         : Lavc58.54.100 libvpx-vp9\n    Side data:\n      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1\nframe=  120 fps= 18 q=0.0 Lsize=     409kB time=00:00:13.76 bitrate= 243.3kbits/s speed=2.09x    \nvideo:407kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.358540%\nffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers\n  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)\n  configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared\n  libavutil      56. 31.100 / 56. 31.100\n  libavcodec     58. 54.100 / 58. 54.100\n  libavformat    58. 29.100 / 58. 29.100\n  libavdevice    58.  8.100 / 58.  8.100\n  libavfilter     7. 57.100 /  7. 57.100\n  libavresample   4.  0.  0 /  4.  0.  0\n  libswscale      5.  5.100 /  5.  5.100\n  libswresample   3.  5.100 /  3.  5.100\n  libpostproc    55.  5.100 / 55.  5.100\nInput #0, matroska,webm, from 'Example_Video.webm':\n  Metadata:\n    encoder         : GStreamer matroskamux version 1.16.3\n    creation_time   : 2023-12-15T05:04:03.000000Z\n  Duration: 00:00:13.80, start: 0.006000, bitrate: 511 kb/s\n    Stream #0:0(eng): Video: vp8, yuv420p(tv, bt709, progressive), 4480x1440, SAR 1:1 DAR 28:9, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)\n    Metadata:\n      title           : Video\nStream mapping:\n  Stream #0:0 (vp8) -> crop\n  crop -> Stream #0:0 (libvpx-vp9)\nPress [q] to stop, [?] for help\n[libvpx-vp9 @ 0x555d33895d40] v1.8.2\nOutput #0, webm, to '/juno/u/tylerlum/Videos/Example_Video_1.webm':\n  Metadata:\n    encoder         : Lavf58.29.100\n    Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 1920x1200 [SAR 1:1 DAR 8:5], q=-1--1, 200 kb/s, 30 fps, 1k tbn, 30 tbc (default)\n    Metadata:\n      encoder         : Lavc58.54.100 libvpx-vp9\n    Side data:\n      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1\nframe=  120 fps= 28 q=0.0 Lsize=     205kB time=00:00:13.76 bitrate= 121.8kbits/s speed=3.25x    \nvideo:203kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.705541%\n================================================================================\nDone!\n================================================================================\n```\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Split a screen recording video file into N video files, one per monitor",
    "version": "0.0.1",
    "project_urls": {
        "Homepage": "https://github.com/tylerlum/split_screen_recording_by_monitor"
    },
    "split_keywords": [
        "python",
        "screen recording",
        "ffmpeg",
        "split",
        "monitor"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e49997450a58427e0966ea2b05aa05b6729f4a076d4f9673182ad1a82ae0a0f7",
                "md5": "4001dff6f77949e69bcebc0f88b32b08",
                "sha256": "ffa165ac64c496e154569d66795f404e5e5d4d7ec8e06e1e7fd63b286d0169ab"
            },
            "downloads": -1,
            "filename": "split_screen_recording_by_monitor-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4001dff6f77949e69bcebc0f88b32b08",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 6492,
            "upload_time": "2023-12-15T05:09:41",
            "upload_time_iso_8601": "2023-12-15T05:09:41.703993Z",
            "url": "https://files.pythonhosted.org/packages/e4/99/97450a58427e0966ea2b05aa05b6729f4a076d4f9673182ad1a82ae0a0f7/split_screen_recording_by_monitor-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fcd1ede70956cd056a7f3bfac0180adaea9212116f3e96e977a84e15b7307c00",
                "md5": "2b2b8e7aad357eae54d78e18347179d7",
                "sha256": "84f56816377ca09c5ef2de37bb77a60b7d40bb36483d27cd75ac327d8735a197"
            },
            "downloads": -1,
            "filename": "split_screen_recording_by_monitor-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "2b2b8e7aad357eae54d78e18347179d7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 5532,
            "upload_time": "2023-12-15T05:09:43",
            "upload_time_iso_8601": "2023-12-15T05:09:43.489275Z",
            "url": "https://files.pythonhosted.org/packages/fc/d1/ede70956cd056a7f3bfac0180adaea9212116f3e96e977a84e15b7307c00/split_screen_recording_by_monitor-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-15 05:09:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tylerlum",
    "github_project": "split_screen_recording_by_monitor",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "split-screen-recording-by-monitor"
}
        
Elapsed time: 0.39989s