myslideslive


Namemyslideslive JSON
Version 0.7 PyPI version JSON
download
home_pagehttps://github.com/So-Cool/myslideslive/tree/master/
SummaryDownload the (video) slides of your SlidesLive talk
upload_time2024-04-19 13:29:37
maintainerNone
docs_urlNone
authorKacper Sokol
requires_python>=3.6
licenseBSD License
keywords slideslive
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # mySlidesLive
> ...helps you to extract your SlidesLive presentation.


[![Licence][licence-badge]][licence-link]
[![Python][python-badge]][python-link]
[![PyPI][pypi-badge]][pypi-link]
[![Documentation][doc-badge]][doc-link]

[licence-badge]: https://img.shields.io/github/license/so-cool/myslideslive.svg
[licence-link]: https://github.com/so-cool/myslideslive/blob/master/LICENSE
[python-badge]: https://img.shields.io/badge/python-3.6-blue.svg
[python-link]: https://github.com/so-cool/myslideslive
[pypi-badge]: https://img.shields.io/pypi/v/myslideslive.svg
[pypi-link]: https://pypi.org/project/myslideslive
[doc-badge]: https://img.shields.io/badge/read-documentation-blue.svg
[doc-link]: https://so-cool.github.io/myslideslive

## Install

```bash
pip install myslideslive
```

## Usage

### Python

In a Python console:

```
from myslideslive import SlidesLive

msl = SlidesLive('https://slideslive.com/38956531/'
                 'beyond-static-papers-'
                 'rethinking-how-we-share-scientific-understanding-in-ml')
msl.download_slides(slide=(1074, 1075))
msl.compose_video()
```

### CLI

Directly from terminal:
```bash
msl --slide 1074 1075 \
https://slideslive.com/38956531/beyond-static-papers-rethinking-how-we-share-scientific-understanding-in-ml
```

## Development
- To develop this package you need [nbdev] v1 and [unidecode] (`pip install "nbdev<2" unidecode`).
- The library (and `Makefile`) is built with `nbdev_build_lib`.
- `nbdev_update_lib` updates the notebooks based on changes in the library.
- The `README.md` is regenerated with `nbdev_build_docs`.
- The git hooks are set up with `nbdev_install_git_hooks`.
- `jupyter nbconvert --clear-output --inplace notebook.ipynb` clears all output cells of a notebook.

Before committing code changes make sure to run:
```bash
nbdev_install_git_hooks && \
nbdev_build_lib && \
nbdev_build_docs && \
nbdev_clean_nbs --clear_all True && \
nbdev_test_nbs
```

[nbdev]: https://nbdev.fast.ai/
[unidecode]: https://github.com/avian2/unidecode

## What about the SlidesLive video recording?
If you want to get the video recording of your SlidesLive presentation as well,
[youtube-dl] can take care of that.

## Cutting the video
Then you can cut the video with:
```bash
ffmpeg -i video_in.mp4 -ss [start] -t [duration] -c copy video_out.mp4
```
where `[start]` specifies the start time, e.g. `00:01:23.000` or `83` (in seconds);
and `[duration]` specifies the duration in the same format.
Alternatively to `-t [duration]`, you may use `-to [end]`, i.e.:
```bash
ffmpeg -i video_in.mp4 -ss [start] -to [end] -c copy video_out.mp4
```
**NOTE:** the order of ffmpeg flags seems to influence the precision of
the video cut.

## Picture-in-Picture embedding
To embed the video recording within the bottom-right part of the presentation video,
preserving the audio stream from the former use:
```bash
ffmpeg -i embedded_video.mp4 -i main_video.mp4 \
  -filter_complex "[0] scale=iw/10:ih/10 [embed]; \
                   [1] fps=25 [bg]; \
                   [bg][embed] overlay=main_w-overlay_w:main_h-overlay_h" \
  -framerate 25 \
  -b:v 4810k \
  -b:a 126k \
  -ar 44100 \
  PiP_video.mp4
```
The sound stream is always taken from the first video in the input (`-i`) list;
if you swap the input videos, you also need to swap `[0]` and `[1]` in
the filter string (`-filter_complex`).
To move the embedded video to a different position, you need to change
the `overlay` parameter.
For example, `overlay=main_w-overlay_w:0` will place the embed in
the top-right corner; `overlay=0:0` in the top-left; and
`overlay=0:main_h-overlay_h` in the bottom-left.

[youtube-dl]: https://github.com/ytdl-org/youtube-dl

## About

This Python module was inspired by:
* <https://github.com/Chandrahasd/slideslive-slides-dl>; and
* <https://github.com/AugustKarlstedt/slideslive-downloader>.

PiP ffmpeg command comes from [here](https://www.oodlestechnologies.com/blogs/PICTURE-IN-PICTURE-effect-using-FFMPEG/).



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/So-Cool/myslideslive/tree/master/",
    "name": "myslideslive",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "SlidesLive",
    "author": "Kacper Sokol",
    "author_email": "dev@kcpr.me",
    "download_url": "https://files.pythonhosted.org/packages/40/1f/993d402afbf3182bf221e07e5baa31926dccc5ff1185e7508995cf39b985/myslideslive-0.7.tar.gz",
    "platform": null,
    "description": "# mySlidesLive\n> ...helps you to extract your SlidesLive presentation.\n\n\n[![Licence][licence-badge]][licence-link]\n[![Python][python-badge]][python-link]\n[![PyPI][pypi-badge]][pypi-link]\n[![Documentation][doc-badge]][doc-link]\n\n[licence-badge]: https://img.shields.io/github/license/so-cool/myslideslive.svg\n[licence-link]: https://github.com/so-cool/myslideslive/blob/master/LICENSE\n[python-badge]: https://img.shields.io/badge/python-3.6-blue.svg\n[python-link]: https://github.com/so-cool/myslideslive\n[pypi-badge]: https://img.shields.io/pypi/v/myslideslive.svg\n[pypi-link]: https://pypi.org/project/myslideslive\n[doc-badge]: https://img.shields.io/badge/read-documentation-blue.svg\n[doc-link]: https://so-cool.github.io/myslideslive\n\n## Install\n\n```bash\npip install myslideslive\n```\n\n## Usage\n\n### Python\n\nIn a Python console:\n\n```\nfrom myslideslive import SlidesLive\n\nmsl = SlidesLive('https://slideslive.com/38956531/'\n                 'beyond-static-papers-'\n                 'rethinking-how-we-share-scientific-understanding-in-ml')\nmsl.download_slides(slide=(1074, 1075))\nmsl.compose_video()\n```\n\n### CLI\n\nDirectly from terminal:\n```bash\nmsl --slide 1074 1075 \\\nhttps://slideslive.com/38956531/beyond-static-papers-rethinking-how-we-share-scientific-understanding-in-ml\n```\n\n## Development\n- To develop this package you need [nbdev] v1 and [unidecode] (`pip install \"nbdev<2\" unidecode`).\n- The library (and `Makefile`) is built with `nbdev_build_lib`.\n- `nbdev_update_lib` updates the notebooks based on changes in the library.\n- The `README.md` is regenerated with `nbdev_build_docs`.\n- The git hooks are set up with `nbdev_install_git_hooks`.\n- `jupyter nbconvert --clear-output --inplace notebook.ipynb` clears all output cells of a notebook.\n\nBefore committing code changes make sure to run:\n```bash\nnbdev_install_git_hooks && \\\nnbdev_build_lib && \\\nnbdev_build_docs && \\\nnbdev_clean_nbs --clear_all True && \\\nnbdev_test_nbs\n```\n\n[nbdev]: https://nbdev.fast.ai/\n[unidecode]: https://github.com/avian2/unidecode\n\n## What about the SlidesLive video recording?\nIf you want to get the video recording of your SlidesLive presentation as well,\n[youtube-dl] can take care of that.\n\n## Cutting the video\nThen you can cut the video with:\n```bash\nffmpeg -i video_in.mp4 -ss [start] -t [duration] -c copy video_out.mp4\n```\nwhere `[start]` specifies the start time, e.g. `00:01:23.000` or `83` (in seconds);\nand `[duration]` specifies the duration in the same format.\nAlternatively to `-t [duration]`, you may use `-to [end]`, i.e.:\n```bash\nffmpeg -i video_in.mp4 -ss [start] -to [end] -c copy video_out.mp4\n```\n**NOTE:** the order of ffmpeg flags seems to influence the precision of\nthe video cut.\n\n## Picture-in-Picture embedding\nTo embed the video recording within the bottom-right part of the presentation video,\npreserving the audio stream from the former use:\n```bash\nffmpeg -i embedded_video.mp4 -i main_video.mp4 \\\n  -filter_complex \"[0] scale=iw/10:ih/10 [embed]; \\\n                   [1] fps=25 [bg]; \\\n                   [bg][embed] overlay=main_w-overlay_w:main_h-overlay_h\" \\\n  -framerate 25 \\\n  -b:v 4810k \\\n  -b:a 126k \\\n  -ar 44100 \\\n  PiP_video.mp4\n```\nThe sound stream is always taken from the first video in the input (`-i`) list;\nif you swap the input videos, you also need to swap `[0]` and `[1]` in\nthe filter string (`-filter_complex`).\nTo move the embedded video to a different position, you need to change\nthe `overlay` parameter.\nFor example, `overlay=main_w-overlay_w:0` will place the embed in\nthe top-right corner; `overlay=0:0` in the top-left; and\n`overlay=0:main_h-overlay_h` in the bottom-left.\n\n[youtube-dl]: https://github.com/ytdl-org/youtube-dl\n\n## About\n\nThis Python module was inspired by:\n* <https://github.com/Chandrahasd/slideslive-slides-dl>; and\n* <https://github.com/AugustKarlstedt/slideslive-downloader>.\n\nPiP ffmpeg command comes from [here](https://www.oodlestechnologies.com/blogs/PICTURE-IN-PICTURE-effect-using-FFMPEG/).\n\n\n",
    "bugtrack_url": null,
    "license": "BSD License",
    "summary": "Download the (video) slides of your SlidesLive talk",
    "version": "0.7",
    "project_urls": {
        "Homepage": "https://github.com/So-Cool/myslideslive/tree/master/"
    },
    "split_keywords": [
        "slideslive"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c95bb04528b17ac35e778c9405b5b84de88379a7597dc8928979baca7b0fef2",
                "md5": "d61620ae9db05ca25527f2a908d2eb20",
                "sha256": "d6575aceb7da3c4eeee7fee123fe391184145f37bf14643415c95cb1efbc10fd"
            },
            "downloads": -1,
            "filename": "myslideslive-0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d61620ae9db05ca25527f2a908d2eb20",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 13513,
            "upload_time": "2024-04-19T13:29:36",
            "upload_time_iso_8601": "2024-04-19T13:29:36.876523Z",
            "url": "https://files.pythonhosted.org/packages/0c/95/bb04528b17ac35e778c9405b5b84de88379a7597dc8928979baca7b0fef2/myslideslive-0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "401f993d402afbf3182bf221e07e5baa31926dccc5ff1185e7508995cf39b985",
                "md5": "0802aa3c8a4a0af9b72fad094eff07c8",
                "sha256": "e13815c9d0e66ce98d5aa7962ae7255aa291076cc39abcc9236db281244245c2"
            },
            "downloads": -1,
            "filename": "myslideslive-0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "0802aa3c8a4a0af9b72fad094eff07c8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 15584,
            "upload_time": "2024-04-19T13:29:37",
            "upload_time_iso_8601": "2024-04-19T13:29:37.977854Z",
            "url": "https://files.pythonhosted.org/packages/40/1f/993d402afbf3182bf221e07e5baa31926dccc5ff1185e7508995cf39b985/myslideslive-0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-19 13:29:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "So-Cool",
    "github_project": "myslideslive",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "myslideslive"
}
        
Elapsed time: 1.10923s