generss


Namegenerss JSON
Version 0.3.3 PyPI version JSON
download
home_pageNone
SummaryGenerate RSS feeds from media files in a directory
upload_time2024-12-11 16:36:50
maintainerNone
docs_urlNone
authorAmine Sehili
requires_python>=3.4
licenseMIT License
keywords rss podcast
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # genRSS

[![Build Status](https://github.com/amsehili/genRSS/actions/workflows/ci.yml/badge.svg)](https://github.com/amsehili/genRSS/actions/workflows/ci.yml/)

`genRSS` is a tool for generating an RSS 2.0 feed from media files within a
directory. It can search for files recursively in subdirectories and restrict
the search to specific file extensions.

## Installation

Note: Another package named `genrss` already exists on PyPI. To install `genRSS`,
please use `generss` (with an *e* after the *n*):

```bash
pip install generss
```

Once installed, you can run `genRSS` directly from the command line.

## Determining Media File Duration

To include the duration of media files in your feeds (via the
`<itunes:duration>` tag), `genRSS` attempts to determine the duration using the
following tools, in order of preference:

1. **`mutagen`**: a python package (automatically installed if you install
   `genRSS` with `pip`) that supports both audio and video files.
2. **`sox`**: command-line tool, handles only audio files but is faster than
   `ffprobe`.
3. **`ffprobe`**: command-line tool, supports both audio and video files but
   is the slowest option.

If `genRSS` is unable to determine the media file duration using one tool, it
will automatically fall back to the next one in the list. If none of these tools
is available or if the file duration can't be retrieved, the `<itunes:duration>`
tag will not be included in the feed.


## Episode Descriptions

Text files with a `.txt` extension are automatically used to provide
descriptions for media files that share the same name but have different
extensions. As a result, files ending in `.txt` cannot be used as feed items.



## Usage options

Type `genRSS -h` to show the usage options:

```
  -d DIRECTORY, --dirname DIRECTORY
                        Directory to look for media files in.
                        This directory name will be appended to the host name
                        to create absolute paths to your media files.
  -r, --recursive       Look for media files recursively in subdirectories
                        [Default:False]
  -e STRING, --extensions STRING
                        A comma separated list of extensions (e.g. mp3,mp4,avi,ogg)
                        [Default: all files]
  -o FILE, --out FILE   Output RSS file [default: stdout]
  -H URL, --host URL    Host name (or IP address), possibly with a protocol
                        (default: http) a port number and the path to the base
                        directory where your media directory is located.
                        Examples of host names:
                         - http://localhost:8080 [default]
                         - mywebsite.com/media/JapaneseLessons
                         - mywebsite
                         - 192.168.1.12:8080
                         - http://192.168.1.12/media/JapaneseLessons
  -i URL, --image URL   Absolute or relative URL for feed's image [default: None]
  -M, --metadata        Use media files' metadata to extract item title [default: False]
  -t STRING, --title STRING
                        Title of the podcast [Default: use directory name as title]
  -p STRING, --description STRING
                        Description of the podcast [Default:None]
  -C, --sort-creation   Sort files by date of creation instead of name (default)
  -v, --verbose         set verbose [default: False]
```


### License
MIT

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "generss",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.4",
    "maintainer_email": null,
    "keywords": "RSS, podcast",
    "author": "Amine Sehili",
    "author_email": "Amine Sehili <amine.sehili@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/7e/1a/3e8d992493b6b5662cf933d9e71f020a7f3bb1a68adc945d7de48fe9c94a/generss-0.3.3.tar.gz",
    "platform": null,
    "description": "# genRSS\n\n[![Build Status](https://github.com/amsehili/genRSS/actions/workflows/ci.yml/badge.svg)](https://github.com/amsehili/genRSS/actions/workflows/ci.yml/)\n\n`genRSS` is a tool for generating an RSS 2.0 feed from media files within a\ndirectory. It can search for files recursively in subdirectories and restrict\nthe search to specific file extensions.\n\n## Installation\n\nNote: Another package named `genrss` already exists on PyPI. To install `genRSS`,\nplease use `generss` (with an *e* after the *n*):\n\n```bash\npip install generss\n```\n\nOnce installed, you can run `genRSS` directly from the command line.\n\n## Determining Media File Duration\n\nTo include the duration of media files in your feeds (via the\n`<itunes:duration>` tag), `genRSS` attempts to determine the duration using the\nfollowing tools, in order of preference:\n\n1. **`mutagen`**: a python package (automatically installed if you install\n   `genRSS` with `pip`) that supports both audio and video files.\n2. **`sox`**: command-line tool, handles only audio files but is faster than\n   `ffprobe`.\n3. **`ffprobe`**: command-line tool, supports both audio and video files but\n   is the slowest option.\n\nIf `genRSS` is unable to determine the media file duration using one tool, it\nwill automatically fall back to the next one in the list. If none of these tools\nis available or if the file duration can't be retrieved, the `<itunes:duration>`\ntag will not be included in the feed.\n\n\n## Episode Descriptions\n\nText files with a `.txt` extension are automatically used to provide\ndescriptions for media files that share the same name but have different\nextensions. As a result, files ending in `.txt` cannot be used as feed items.\n\n\n\n## Usage options\n\nType `genRSS -h` to show the usage options:\n\n```\n  -d DIRECTORY, --dirname DIRECTORY\n                        Directory to look for media files in.\n                        This directory name will be appended to the host name\n                        to create absolute paths to your media files.\n  -r, --recursive       Look for media files recursively in subdirectories\n                        [Default:False]\n  -e STRING, --extensions STRING\n                        A comma separated list of extensions (e.g. mp3,mp4,avi,ogg)\n                        [Default: all files]\n  -o FILE, --out FILE   Output RSS file [default: stdout]\n  -H URL, --host URL    Host name (or IP address), possibly with a protocol\n                        (default: http) a port number and the path to the base\n                        directory where your media directory is located.\n                        Examples of host names:\n                         - http://localhost:8080 [default]\n                         - mywebsite.com/media/JapaneseLessons\n                         - mywebsite\n                         - 192.168.1.12:8080\n                         - http://192.168.1.12/media/JapaneseLessons\n  -i URL, --image URL   Absolute or relative URL for feed's image [default: None]\n  -M, --metadata        Use media files' metadata to extract item title [default: False]\n  -t STRING, --title STRING\n                        Title of the podcast [Default: use directory name as title]\n  -p STRING, --description STRING\n                        Description of the podcast [Default:None]\n  -C, --sort-creation   Sort files by date of creation instead of name (default)\n  -v, --verbose         set verbose [default: False]\n```\n\n\n### License\nMIT\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Generate RSS feeds from media files in a directory",
    "version": "0.3.3",
    "project_urls": {
        "homepage": "https://pypi.org/project/generss/",
        "repository": "https://github.com/amsehili/genRSS"
    },
    "split_keywords": [
        "rss",
        " podcast"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "950eae080630804dbf9ef80a45542c79b2b214a7fa044af541fe5c5b5a190a7f",
                "md5": "d748d73617ee84327e7fe41908528bcc",
                "sha256": "de3b1bacb2bc8330d45698a46529560cf03bbb494274049a1e6342984ca37d21"
            },
            "downloads": -1,
            "filename": "generss-0.3.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d748d73617ee84327e7fe41908528bcc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.4",
            "size": 11519,
            "upload_time": "2024-12-11T16:36:47",
            "upload_time_iso_8601": "2024-12-11T16:36:47.092327Z",
            "url": "https://files.pythonhosted.org/packages/95/0e/ae080630804dbf9ef80a45542c79b2b214a7fa044af541fe5c5b5a190a7f/generss-0.3.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7e1a3e8d992493b6b5662cf933d9e71f020a7f3bb1a68adc945d7de48fe9c94a",
                "md5": "2b21c5c393205645d3b35afc49a6dad7",
                "sha256": "fc861202d586de39ae93a8ed3b70fa77f3dbc162ea4e25b1d9fc3088e9d8852b"
            },
            "downloads": -1,
            "filename": "generss-0.3.3.tar.gz",
            "has_sig": false,
            "md5_digest": "2b21c5c393205645d3b35afc49a6dad7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.4",
            "size": 13809,
            "upload_time": "2024-12-11T16:36:50",
            "upload_time_iso_8601": "2024-12-11T16:36:50.652659Z",
            "url": "https://files.pythonhosted.org/packages/7e/1a/3e8d992493b6b5662cf933d9e71f020a7f3bb1a68adc945d7de48fe9c94a/generss-0.3.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-11 16:36:50",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "amsehili",
    "github_project": "genRSS",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "generss"
}
        
Elapsed time: 0.61603s