semvec/pypi-packages huggingface dataset:
md2video 0.0.1
Convert markdown presentations files to video
License: MIT
Requires Python: >=3.9

# markdown2video

markdown2video，让你用markdown生成视频和PPT！

以视频为核心，目标是同时生成博客文章。

## 安装

下载ffmpeg然后放到PATH中。

通过pip安装：

```
pip install md2video
```

## 使用

### markdown（视频脚本）

基础语法如下：

- 使用`<!-- mode: slide -->`后，后续内容作为PPT的页面渲染。
- 使用`<!-- mode comment -->`后，后续内容作为TTS的输入生成语音，解释前一页面。

```
<!-- mode: slide -->

# PPT的标题

PPT的内容

<!-- mode comment -->

这里是解释本页PPT的内容。会被转为语音配上上面的画面。

```

- 对复杂的内容展示需求，可以使用下面的方式直接编写reveal.js代码。(基于[pandoc的html的拓展](https://pandoc.org/demo/example33/8.14-raw-html.html#extension-raw_attribute))

    ```
    \```{=html}

    \```
    ```

### md2video

命令行工具，通过`python -m md2video`调用。将markdown视频脚本转换为视频

指定输入的markdown文件后，会创建后缀为`.md2video`的缓存文件夹。

```
markdown视频脚本 --(md2slidemd)--> pandoc支持的markdown编写PPT的格式（reveal.js） --(md2image)--> html格式的PPT，每页PPT的图像，以及打印得到pdf格式的PPT。
```

```
python -m md2video.md2slidemd
```

## 架构

- md2slidemd：基于[pandoc filters](https://pandoc.org/filters.html)实现markdown解析，并利用pandoc转换为reveal.js格式的markdown幻灯片。
- md2image：基于playwright的headless浏览器打开页面，截屏转换为图片序列。
- TTS：基于[kokoro_onnx](https://github.com/thewh1teagle/kokoro-onnx)项目生成每个幻灯片的语音
- slidemd2video：基于python-ffmpeg，从图片和语音生成视频。

## 拓展的Markdown语义特性

需求分解：
- 标记为slide的块，在生成文章的时候也正常渲染？即，即使不加修改，作为markdown也可以看。
- 原始的markdown是以文章优先还是slides优先？能否做到原始markdown直接是文章？似乎不太能做到文章和slides兼顾。
- 标识的方式：如果只用起始标识，而不是标识开始和结束，那么整个文章默认会被划分为slides，文字部分必须主动处理为非slides？还是把用于生成图片的部分单独拿出来吧。然后单独去生成文章。
- 其他方便浏览的格式：slides的pdf格式。

## TODO

- 模型文件放到appdata，然后缺文件的时候问用户是否立刻下载。
- 通过分句生成语音的方式生成字幕。
- 生成竖屏内容。
- 同时支持中文和英语。
- 集成更多的TTS API，包括edge TTS。
crdp-gcr 0.1
A fast Ramer-Douglas-Peucker algorithm implementation. Updated for GCP cloud run
License: MIT
Requires Python: <4,>=3.10
Keywords: rdp ramer douglas peucker line simplification cython

# crdp-gcr

Cython implementation of Ramer-Douglas-Peucker algorithm, identical to [crdp](https://pypi.org/project/crdp/0.0.2/) but modified to run as a google cloud function.

## Usage
```
pip instal crdp-gcr
```

```python
In [1]: from crdp import rdp

In [2]: rdp([[1,1],[2,3],[3,3],[4,4]], 0.8)
Out[2]: [[1, 1], [4, 4]]

In [3]: rdp([[1,1],[2,3],[3,3],[4,4]], 0.7)
Out[3]: [[1, 1], [2, 3], [4, 4]]
```

All credit to [Bi Ran](https://github.com/biran0079), author of the original code
payrex-python 1.7.3
PayRex Python Library
License: MIT
Keywords: payrex

# PayRex Python

PayRex Python library provides Python applications an easy access to the PayRex API. Explore various Python classes that represents PayRex API resources on object instantiation.

## Requirements

Python 3.9.+

## Installation

If you want to use the package, run the following command:

```sh
pip install payrex-python
```

If you want to build the library from source:

Create a virtual environment

```sh
python -m venv venv
```

Activate the virtual environment

```sh
source venv/bin/activate
```

Install the package to the virtual environment

```sh
pip install -e /Your/Local/Path/payrex-python

python
```

## Getting Started

Simple usage looks like:

```python
from payrex import Client as PayrexClient

payrex_client = PayrexClient('sk_test_...')
payment_intent = payrex_client.payment_intents.retrieve('pi_...')

payment_intent = payrex_client.payment_intents.create(
    {
        'amount': 10000,
        'currency': 'PHP',
        'description': 'Dino Treat',
        'payment_methods': ['gcash']
    }
)
```

## Handle errors

```python
try:
    payrex_client = PayrexClient('sk_test_...')

    payment_intent = payrex_client.payment_intents.create(
        {
            'amount': 10000,
            'description': 'Dino Treat',
            'payment_methods': ['gcash']
        }
    )
except BaseException as e:
    # Handle error
    print(type(e))
    print(e.errors[0].code)
    print(e.errors[0].detail)
    print(e.errors[0].parameter)
```

## Verify webhook signature

```python
try:
    payload = '{"id":"evt_...","resource":"event","type":"payment_intent.succeeded","data":{...'
    signature_header = 't=1715236958,te=,li=...'
    webhook_secret_key = 'whsk_...'

    payrex_client.webhooks.parse_event(
        payload,
        signature_header,
        webhook_secret_key
    )
except SignatureVerificationException as e:
    # Handle invalid signature
```