{"id":13573630,"url":"https://github.com/soulless-viewer/mkdocs-video","last_synced_at":"2025-09-27T05:31:29.840Z","repository":{"id":38774999,"uuid":"381719899","full_name":"soulless-viewer/mkdocs-video","owner":"soulless-viewer","description":"MkDocs Video plugin","archived":true,"fork":false,"pushed_at":"2024-01-04T21:17:41.000Z","size":31,"stargazers_count":71,"open_issues_count":9,"forks_count":14,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-17T13:39:28.281Z","etag":null,"topics":["mkdocs","mkdocs-plugin","mkdocs-plugins"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soulless-viewer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-06-30T13:55:40.000Z","updated_at":"2024-12-26T22:00:50.000Z","dependencies_parsed_at":"2024-01-04T22:37:50.112Z","dependency_job_id":"fa06b562-6c5e-4583-aa8c-2bb30eb96bb1","html_url":"https://github.com/soulless-viewer/mkdocs-video","commit_stats":{"total_commits":15,"total_committers":7,"mean_commits":2.142857142857143,"dds":0.6666666666666667,"last_synced_commit":"4c9b1fba49919ffc19bcd2c20ef868c26576e384"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulless-viewer%2Fmkdocs-video","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulless-viewer%2Fmkdocs-video/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulless-viewer%2Fmkdocs-video/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulless-viewer%2Fmkdocs-video/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soulless-viewer","download_url":"https://codeload.github.com/soulless-viewer/mkdocs-video/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234391380,"owners_count":18824809,"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":["mkdocs","mkdocs-plugin","mkdocs-plugins"],"created_at":"2024-08-01T15:00:38.541Z","updated_at":"2025-09-27T05:31:29.519Z","avatar_url":"https://github.com/soulless-viewer.png","language":"Python","funding_links":["https://www.buymeacoffee.com/soulless.viewer"],"categories":["Python"],"sub_categories":[],"readme":"\u003e [!WARNING]  \n\u003e This project is no longer maintained. You can still use it, but there will be no more updates.\n\n# MkDocs Video\n\nThis plugin allows you to embed videos on the documentation pages using a simple Markdown syntax.\n\n## Contents\n\n* [Installation](#installation)\n* [Usage](#usage)\n* [Configuration](#configuration)  \n    * [Marker](#marker)\n    * [Style](#style)\n    * [Tag `\u003cvideo\u003e`](#tag-video)\n    * [Video type](#video-type)\n    * [Video autoplay](#video-autoplay)\n    * [Video loop](#video-loop)\n    * [Video muted](#video-muted)\n    * [Video controls](#video-controls)\n* [Embedding examples](#embedding-examples)\n\n## Installation\n\nInstall the package with pip:\n\n```bash\n$ pip install mkdocs-video\n```\n\nEnable the plugin in the `mkdocs.yml` file:\n\n```yaml\nplugins:\n    - mkdocs-video\n```\n\n\u003e See how to use [MkDocs Plugins](https://www.mkdocs.org/dev-guide/plugins/#using-plugins)\n\n## Usage\n\nTo add a video to the final documentation page, you need to use the Markdown syntax for images with a **specific name** *(hereinafter ***marker***)*.\n\n\u003e See how to use [Markdown syntax](https://guides.github.com/features/mastering-markdown/)\n\n**Example:**\n\n*content folder structure*\n\n```\n├── content\n|   ├── ...\n│   ├── video.md\n│   └── videos\n│       └── costa_rica.mp4\n└── mkdocs.yml\n```\n\n*video.md*\n```\n# Video example\n\nLorem ipsum dolor sit amet\n\n![type:video](https://www.youtube.com/embed/LXb3EKWsInQ)\n```\n\n*\\\u003cmkdocs-url\u003e/video*\n\n![](https://user-images.githubusercontent.com/29832584/123962612-5188db00-d9ba-11eb-9e0f-1470ca57c452.png)\n\nYou can also use relative paths for videos stored together with your content\n```\n![type:video](./videos/costa_rica.mp4)\n```\n\n## Configuration\n\nThe following parameters can be used to change the functionality and appearance of video elements in the final HTML. Keep in mind that the plugin configuration parameters are applied globally to all relevant [marked](#marker) elements. To fine-tune each video element, you can use the [Attribute Lists](https://python-markdown.github.io/extensions/attr_list/) extension.\n\nWhen using this plugin and the mentioned extension together, the following rules apply *(with an illustrative examples)*:\n\n0. *[Let's assume we have this plugin configuration]*\n   ```yaml\n   # mkdocs.yml\n   markdown_extensions:\n     - attr_list\n   plugins:\n     - mkdocs-video:\n         is_video: True\n         video_muted: True\n         video_controls: True\n         css_style:\n           width: \"50%\"\n   ```\n\n1. The plugin attributes are used globally by default\n   ```markdown\n   ![type:video](video.mp4)\n   ```\n   ```html\n   \u003cvideo style=\"width:50%\" muted=\"\" controls=\"\" alt=\"type:video\"\u003e\n      \u003csource src=\"video.mp4\" type=\"video/mp4\"\u003e\n   \u003c/video\u003e\n   ```\n\n2. The extension attributes will override the corresponding plugin attributes, but the rest will remain by default.\n   ```markdown\n   ![type:video](video.mp4){: style='width: 100%'}\n   ```\n   ```html\n   \u003cvideo style=\"width: 100%\" muted=\"\" controls=\"\" alt=\"type:video\"\u003e\n      \u003csource src=\"video.mp4\" type=\"video/mp4\"\u003e\n   \u003c/video\u003e\n   ```\n\n3. The plugin attributes can be disabled for specific video element by adding `disable-global-config` attribute.\n   ```markdown\n   ![type:video](video.mp4){: disable-global-config style='width: 100%'}\n   ```\n   ```html\n   \u003cvideo alt=\"type:video\" style=\"width: 100%\"\u003e\n      \u003csource src=\"video.mp4\" type=\"video/mp4\"\u003e\n   \u003c/video\u003e\n   ```\n\n4. The extension attribute `src` will override video source... Do what you want with this info 🙃.\n   ```markdown\n   ![type:video](video.mp4){: src='another-video.mp4'}\n   ```\n   ```html\n   \u003cvideo style=\"width:50%\" muted=\"\" controls=\"\" alt=\"type:video\"\u003e\n      \u003csource src=\"another-video.mp4\" type=\"video/mp4\"\u003e\n   \u003c/video\u003e\n   ```\n\n### Marker\n\nBy default, the string `type:video` is used as a **marker** in the Markdown syntax.\n\nYou can change this value by adding the following lines to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-video:\n      mark: \"custom-marker\"\n```\n\nNow you can use this **marker** in the Markdown syntax:\n\n```\n![custom-marker](https://www.youtube.com/embed/LXb3EKWsInQ)\n```\n\n### Style\n\nBy default, the following CSS styles are used for the `\u003ciframe\u003e` tag that is inserted into the final page:\n\n```css\nposition: relative;\nwidth: 100%;\nheight: 22.172vw;\n```\n\nYou can change the style by adding the following lines to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-video:\n      css_style:\n        width: \"100%\"\n        height: \"22.172vw\"\n        ...\n```\n\n### Tag `\u003cvideo\u003e`\n\nBy default, the `\u003ciframe\u003e` tag will be used to display the video in the final page, but in some cases you may need to use `\u003cvideo\u003e` tag instead. You can use it by adding the following lines to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-video:\n      is_video: True\n      ...\n```\n\n### Video type\n\n\u003e This parameter will only work with the `\u003cvideo\u003e` tag (`is_video: True`)\n\nYou can specify the MIME type of the video *(default: `mp4`)* resource by adding the following lines to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-video:\n      is_video: True\n      video_type: ogg\n      ...\n```\n\n### Video autoplay\n\n\u003e This parameter will only work with the `\u003cvideo\u003e` tag (`is_video: True`)\n\nYou can specify whether the video should be played automatically *(default: `False`)* or not by adding the following lines to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-video:\n      is_video: True\n      video_autoplay: True\n      ...\n```\n\n\u003e The operation of this parameter may be affected by browser settings or video provider configuration\n\n### Video loop\n\n\u003e This parameter will only work with the `\u003cvideo\u003e` tag (`is_video: True`)\n\nYou can specify whether the video should be looped *(default: `False`)* or not by adding the following lines to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-video:\n      is_video: True\n      video_loop: True\n      ...\n```\n\n\u003e The operation of this parameter may be affected by browser settings or video provider configuration\n\n### Video muted\n\n\u003e This parameter will only work with the `\u003cvideo\u003e` tag (`is_video: True`)\n\nYou can specify whether the video should be muted *(default: `False`)* or not by adding the following lines to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-video:\n      is_video: True\n      video_muted: True\n      ...\n```\n\n\u003e The operation of this parameter may be affected by browser settings or video provider configuration\n\n### Video controls\n\n\u003e This parameter will only work with the `\u003cvideo\u003e` tag (`is_video: True`)\n\nYou can specify whether the video controls should be displayed *(default: `True`)* or not by adding the following lines to your `mkdocs.yml`:\n\n```yaml\nplugins:\n  - mkdocs-video:\n      is_video: True\n      video_controls: False\n      ...\n```\n\n\u003e The operation of this parameter may be affected by browser settings or video provider configuration\n\n## Embedding examples\n\nThe following list contains some of the popular services, as well as examples of direct and embedded links to their videos.\n\n* YouTube\n    * https://www.youtube.com/watch?v=iSpglxHTJVM\n    * https://www.youtube.com/embed/iSpglxHTJVM\n* Vimeo\n    * https://vimeo.com/224903454\n    * https://player.vimeo.com/video/224903454\n* Dailymotion\n    * https://www.dailymotion.com/video/x7ogfqo\n    * https://www.dailymotion.com/embed/video/x7ogfqo\n* Facebook Watch\n    * https://www.facebook.com/gamechangersmovie/videos/343098689705587\n    * https://www.facebook.com/plugins/video.php?href=https://www.facebook.com/gamechangersmovie/videos/343098689705587\n\n## Contributing\n\n1.  Fork it.\n2.  Create your feature branch:  `git checkout -b my-new-feature`\n3.  Commit your changes:  `git commit -am 'Add some feature'`\n4.  Push to the branch:  `git push origin my-new-feature`\n5.  Submit a pull request\n\n## License\nThe MIT License (MIT)\n\nCopyright (c) 2023 Mikalai Lisitsa\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n## Did you like it?\n\n\u003ca href=\"https://www.buymeacoffee.com/soulless.viewer\"\u003e\n  \u003cimg height=\"50em\" src=\"https://cdn.buymeacoffee.com/buttons/v2/default-blue.png\" alt=\"soulless.viewer\" /\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoulless-viewer%2Fmkdocs-video","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoulless-viewer%2Fmkdocs-video","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoulless-viewer%2Fmkdocs-video/lists"}