# Youtube_subscription_manager
[![PyPI](http://img.shields.io/pypi/v/youtube-sm.svg)](http://pypi.python.org/pypi/youtube-sm/)
[![example](https://sawyerf.gitlab.io/youtube_sm/exampleshield.svg)](https://sawyerf.gitlab.io/youtube_sm/example.html)
[![docs](https://img.shields.io/static/v1?label=docs&message=master&color=brightgreen)](docs/Home.md)
[<img alt="Github" src="https://ionogy.github.io/kernel.css/GitHub-Mark.png" width="22px">](https://github.com/sawyerf/youtube-sm)
[![GitLab](https://sawyerf.gitlab.io/youtube_sm/gitlab.jpg)](https://gitlab.com/sawyerf/youtube-sm)
<p><img align='right' width=400px height=auto src='https://sawyerf.gitlab.io/youtube_sm/binome.jpg' /></p>
- [Description](#description)
- [Installation](#installation)
- [Usage](#usage)
- [Commands](#commands)
- [Support Platforms](#support-platforms)
- [Example](#example)
- [Type of File](#type-of-file)
- [Cache](#cache)
- [Requirements](#requirements)
- [Compatible](#compatible)
- [Screenshots](#screenshots)
*If you have a problem, create an issue rather than sending me an email otherwise the response time will be longer, Thanks.*
## Description
Youtube_subscription_manager is an alternative to youtube.com to retrieve the videos of your subscriptions feed without requires an account [*(You can also recover the videos of other platform)*](#support-platforms).
It can gather informations about every video in a playlist, a channel or your subsciptions feed and outputs it as a html page, a detailed list or a list of links.
## Installation
1. Clone the project: `git clone https://github.com/sawyerf/youtube-sm.git`
2. Open the folder you just cloned : `cd youtube-sm`
3. Execute the setup: `sudo python3 setup.py install`
4. Recover your subscription file in youtube and you are ready to go !
## Usage
1. Download your subscriptions configuration from youtube.com ([here](https://www.youtube.com/subscription_manager?action_takeout=1))
2. Once this is done, you may load it by using the following command :
```
youtube-sm --init [file]
```
3. Finally, you can start using the program using the commands shown below :
```
youtube-sm [OPTIONS]
```
## Commands
```
-a URL Add a sub to your sub list.
-e Edit your sub list.
-h Print this help text and exit.
-l URL Analyze only one sub.
-m MODE Choose the type of the output file (html, json, raw, list).
-r Remove the cache.
-t DAYS Select how many DAYS ago the last content written to your file will be dated .
-v Verbose.
--af FILE Add a list of sub to your sub list.
--ax FILE Add a xml file in your sub list.
--cat View your subscriptions.
--css STYLE Export the css files (light, dark, switch).
--dead Show the dead channels + those who posted no videos.
--help Print this help text and exit.
--html Recover sub with html page instead of RSS. This method recover more videos.
--init FILE Remove all your subs and add new.
--loading Print a progress bar.
--old Show channels who didn't post videos since DAYS.
--output FILE Write the output in FILE.
--version Print version.
--test
```
## Support Platforms
- ~~Dailymotion~~
- Evous Manifestation
- Infoconcert
- La Quadrature du Net
- Peertube
- Reddit
- Revolution Permanente
- Twitter
- Youtube
## Example
- Basic
```
youtube-sm
```
- Your sub since 1 month
```
youtube-sm -t 30 --css --loading
```
- All the videos of a channel
```
youtube-sm -l https://www.youtube.com/channel/UC-lHJZR3Gqxm24_Vd_AJ5Yw -t -1 -m list --loading -r --output test.csv
```
- Add a sub
```
youtube-sm -a https://www.youtube.com/channel/UC-lHJZR3Gqxm24_Vd_AJ5Yw
```
## Type of File
#### Raw :
```
{date} {video_id} {channel_id} {title} {channel} {link_pic}
```
#### List :
```
https://www.youtube.com/watch?v={video_id}
```
#### View :
```
{views}
```
#### Json :
```json
{
"url": {
"content": "https://www.youtube.com/watch?v=ID",
"image": "https://i.ytimg.com/vi/ID/mqdefault.jpg",
"uploader": "https://youtube.com/channel/ID"
},
"date": "2020-04-23 16:08:22",
"title": "Video Title",
"uploader": "Channel",
"views": "228283"
}
```
#### Html :
```html
<!--NEXT -->
<div class="video">
<a class="left" href="{video_id}">
<div class="container">
<img src="{link_pic}">
<div class="bottom-right">{time}</div>
</div>
</a>
<a href="https://www.youtube.com/watch?v={video_id}"><h4>{title}</h4> </a>
<a href="https://www.youtube.com/channel/{channel_id}"> <p>{channel}</p> </a>
<p>{date}</p>
<p class="clear"></p>
</div>
```
## Cache
3 files are generated by the program : `sub.swy`, `log` and `data/`.
- `sub.swy` is a list of yours subscriptions.
- `log` contains the script's time of execution.
- `data/` is a folder where the information for every video are stored.
These 3 files are generated in:
- Windows: `C:\Users\<name>\.youtube_sm\`.
- Linux/MacOS: `/home/<name>/.cache/youtube_sm/.`.
## Requirements
- Python 3
## Compatible
- Linux
- Windows
- Android (Termux)
- MacOS
## Screenshots
<a href="https://sawyerf.gitlab.io/youtube_sm/example.html"><img src="https://sawyerf.gitlab.io/youtube_sm/sub_mob.jpg" alt="Phone screen" width=405px height=720px>
<img src="https://sawyerf.gitlab.io/youtube_sm/sub_pc.jpg" alt="PC screen" width=100% height=auto></a>
Raw data
{
"_id": null,
"home_page": "https://github.com/sawyerf/youtube-sm",
"name": "youtube-sm",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "youtube subscription api manager html",
"author": "Sawyerf",
"author_email": "sawyer.flink@protonmail.ch",
"download_url": "https://files.pythonhosted.org/packages/e5/1b/b8fb24bbfc9de8ffa696c45541779a341e2257c74fe50916a8bc7d51d0b0/youtube_sm-2024.6.19.tar.gz",
"platform": null,
"description": "# Youtube_subscription_manager\n\n[![PyPI](http://img.shields.io/pypi/v/youtube-sm.svg)](http://pypi.python.org/pypi/youtube-sm/)\n[![example](https://sawyerf.gitlab.io/youtube_sm/exampleshield.svg)](https://sawyerf.gitlab.io/youtube_sm/example.html)\n[![docs](https://img.shields.io/static/v1?label=docs&message=master&color=brightgreen)](docs/Home.md)\n[<img alt=\"Github\" src=\"https://ionogy.github.io/kernel.css/GitHub-Mark.png\" width=\"22px\">](https://github.com/sawyerf/youtube-sm)\n[![GitLab](https://sawyerf.gitlab.io/youtube_sm/gitlab.jpg)](https://gitlab.com/sawyerf/youtube-sm)\n\n<p><img align='right' width=400px height=auto src='https://sawyerf.gitlab.io/youtube_sm/binome.jpg' /></p>\n\n- [Description](#description)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Commands](#commands)\n- [Support Platforms](#support-platforms)\n- [Example](#example)\n- [Type of File](#type-of-file)\n- [Cache](#cache)\n- [Requirements](#requirements)\n- [Compatible](#compatible)\n- [Screenshots](#screenshots)\n\n*If you have a problem, create an issue rather than sending me an email otherwise the response time will be longer, Thanks.*\n\n## Description\nYoutube_subscription_manager is an alternative to youtube.com to retrieve the videos of your subscriptions feed without requires an account [*(You can also recover the videos of other platform)*](#support-platforms).\n\nIt can gather informations about every video in a playlist, a channel or your subsciptions feed and outputs it as a html page, a detailed list or a list of links.\n\n## Installation\n1. Clone the project: `git clone https://github.com/sawyerf/youtube-sm.git`\n2. Open the folder you just cloned : `cd youtube-sm`\n3. Execute the setup: `sudo python3 setup.py install`\n4. Recover your subscription file in youtube and you are ready to go !\n\n## Usage\n\n1. Download your subscriptions configuration from youtube.com ([here](https://www.youtube.com/subscription_manager?action_takeout=1))\n2. Once this is done, you may load it by using the following command :\n```\nyoutube-sm --init [file]\n```\n\n3. Finally, you can start using the program using the commands shown below :\n```\nyoutube-sm [OPTIONS]\n```\n\n## Commands\n\n```\n-a URL Add a sub to your sub list.\n-e Edit your sub list.\n-h Print this help text and exit.\n-l URL Analyze only one sub.\n-m MODE Choose the type of the output file (html, json, raw, list).\n-r Remove the cache.\n-t DAYS Select how many DAYS ago the last content written to your file will be dated .\n-v Verbose.\n--af FILE Add a list of sub to your sub list.\n--ax FILE Add a xml file in your sub list.\n--cat View your subscriptions.\n--css STYLE Export the css files (light, dark, switch).\n--dead Show the dead channels + those who posted no videos.\n--help Print this help text and exit.\n--html Recover sub with html page instead of RSS. This method recover more videos.\n--init FILE Remove all your subs and add new.\n--loading Print a progress bar.\n--old Show channels who didn't post videos since DAYS.\n--output FILE Write the output in FILE.\n--version Print version.\n--test \n```\n\n## Support Platforms\n- ~~Dailymotion~~\n- Evous Manifestation\n- Infoconcert\n- La Quadrature du Net\n- Peertube\n- Reddit\n- Revolution Permanente\n- Twitter\n- Youtube\n\n## Example\n\n- Basic\n```\nyoutube-sm\n```\n\n- Your sub since 1 month\n```\nyoutube-sm -t 30 --css --loading\n```\n\n- All the videos of a channel\n```\nyoutube-sm -l https://www.youtube.com/channel/UC-lHJZR3Gqxm24_Vd_AJ5Yw -t -1 -m list --loading -r --output test.csv\n```\n\n- Add a sub\n```\nyoutube-sm -a https://www.youtube.com/channel/UC-lHJZR3Gqxm24_Vd_AJ5Yw\n```\n\n## Type of File\n#### Raw :\n```\n{date} {video_id} {channel_id} {title} {channel} {link_pic}\n```\n#### List :\n```\nhttps://www.youtube.com/watch?v={video_id}\n```\n#### View :\n```\n{views}\n```\n#### Json :\n```json\n{\n\t\"url\": {\n\t\t\"content\": \"https://www.youtube.com/watch?v=ID\",\n\t\t\"image\": \"https://i.ytimg.com/vi/ID/mqdefault.jpg\",\n\t\t\"uploader\": \"https://youtube.com/channel/ID\"\n\t},\n\t\"date\": \"2020-04-23 16:08:22\",\n\t\"title\": \"Video Title\",\n\t\"uploader\": \"Channel\",\n\t\"views\": \"228283\"\n}\n```\n#### Html :\n```html\n<!--NEXT -->\n<div class=\"video\">\n\t<a class=\"left\" href=\"{video_id}\">\n\t\t<div class=\"container\">\n\t\t\t<img src=\"{link_pic}\">\n\t\t\t<div class=\"bottom-right\">{time}</div>\n\t\t</div>\n\t</a>\n\t<a href=\"https://www.youtube.com/watch?v={video_id}\"><h4>{title}</h4> </a>\n\t<a href=\"https://www.youtube.com/channel/{channel_id}\"> <p>{channel}</p> </a>\n\t<p>{date}</p>\n\t<p class=\"clear\"></p>\n</div>\n```\n\n## Cache\n3 files are generated by the program : `sub.swy`, `log` and `data/`.\n- `sub.swy` is a list of yours subscriptions.\n- `log` contains the script's time of execution.\n- `data/` is a folder where the information for every video are stored.\n\nThese 3 files are generated in:\n- Windows: `C:\\Users\\<name>\\.youtube_sm\\`.\n- Linux/MacOS: `/home/<name>/.cache/youtube_sm/.`.\n\n## Requirements\n- Python 3\n\n## Compatible\n- Linux\n- Windows\n- Android (Termux)\n- MacOS\n\n## Screenshots\n<a href=\"https://sawyerf.gitlab.io/youtube_sm/example.html\"><img src=\"https://sawyerf.gitlab.io/youtube_sm/sub_mob.jpg\" alt=\"Phone screen\" width=405px height=720px>\n<img src=\"https://sawyerf.gitlab.io/youtube_sm/sub_pc.jpg\" alt=\"PC screen\" width=100% height=auto></a>\n",
"bugtrack_url": null,
"license": "MLP-2.0",
"summary": "Youtube subscription manager",
"version": "2024.6.19",
"project_urls": {
"Homepage": "https://github.com/sawyerf/youtube-sm"
},
"split_keywords": [
"youtube",
"subscription",
"api",
"manager",
"html"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "be522be2e2803abf3df3618480f0174b0ac0996058bba0538e613c9fa245bcda",
"md5": "2f2fc8a2e56b5728f043f81344d33764",
"sha256": "0beeb650e4b1913a705ed34f44c1e779ee7a03ddf08f59d8320445e3363fd3d2"
},
"downloads": -1,
"filename": "youtube_sm-2024.6.19-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2f2fc8a2e56b5728f043f81344d33764",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 37384,
"upload_time": "2024-06-19T11:40:27",
"upload_time_iso_8601": "2024-06-19T11:40:27.202346Z",
"url": "https://files.pythonhosted.org/packages/be/52/2be2e2803abf3df3618480f0174b0ac0996058bba0538e613c9fa245bcda/youtube_sm-2024.6.19-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e51bb8fb24bbfc9de8ffa696c45541779a341e2257c74fe50916a8bc7d51d0b0",
"md5": "0c014f8a19557d0f58c6fe6df5c6bd28",
"sha256": "f908e4a4079edd912de004026f96fd6580f7e67de477494ff8fa6b7240c4b47a"
},
"downloads": -1,
"filename": "youtube_sm-2024.6.19.tar.gz",
"has_sig": false,
"md5_digest": "0c014f8a19557d0f58c6fe6df5c6bd28",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 29288,
"upload_time": "2024-06-19T11:40:32",
"upload_time_iso_8601": "2024-06-19T11:40:32.095302Z",
"url": "https://files.pythonhosted.org/packages/e5/1b/b8fb24bbfc9de8ffa696c45541779a341e2257c74fe50916a8bc7d51d0b0/youtube_sm-2024.6.19.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-19 11:40:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sawyerf",
"github_project": "youtube-sm",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "youtube-sm"
}