diff --git a/README.md b/README.md
index a4f3597..109b92d 100644
--- a/README.md
+++ b/README.md
@@ -59,7 +59,8 @@
- š„ **RPDB Posters**: RPDB posters support with fallback to MediaFusion posters.
- š„ **Browser Download Support**: Support for downloading video files from debrid services directly in the browser.
- š« **Support DMCA Take Down**: Torrent blocking feature for DMCA compliance.
-
+ - **Manual Torrent Contribution**: Add support for manual torrent contribution and private and webseeded torrent import support. [Webseed Creator Colab Link](https://colab.research.google.com/github/mhdzumair/MediaFusion/blob/main/docs/TorrentWebCreator.ipynb)
+ - š **Jackett Indexer Support**: Add support for Jackett indexer with AKA title searching and individual search.
## š Installation Guide
### Stremio Add-on Installation
diff --git a/docs/TorrentWebCreator.ipynb b/docs/TorrentWebCreator.ipynb
index dfa7e13..9f37417 100644
--- a/docs/TorrentWebCreator.ipynb
+++ b/docs/TorrentWebCreator.ipynb
@@ -1,3510 +1,3337 @@
{
- "nbformat": 4,
- "nbformat_minor": 0,
- "metadata": {
- "colab": {
- "provenance": [],
- "authorship_tag": "ABX9TyP/3jAD0HrOSOZAuPRU40e/",
- "include_colab_link": true
- },
- "kernelspec": {
- "name": "python3",
- "display_name": "Python 3"
- },
- "language_info": {
- "name": "python"
- },
- "widgets": {
- "application/vnd.jupyter.widget-state+json": {
- "f94ff181953845f6bf1cd2790c06482c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "VBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "VBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "VBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_5a643171d7704209ae26d0cc72f35de6",
- "IPY_MODEL_650a8365a5ea46f9897444f9d29976e3",
- "IPY_MODEL_1dd1de36da7147ebaf57c3ac26e01e16",
- "IPY_MODEL_ec31953cf7a54132b4b0a0e6492b0a9c",
- "IPY_MODEL_3dd745bd3811406e989f7e864ca5a64b",
- "IPY_MODEL_508b2c8e88a846978796cfdabb21cf30",
- "IPY_MODEL_cd1eeaec65554cb6b410a3403683103e",
- "IPY_MODEL_01357233b8444261999638b2821a143b",
- "IPY_MODEL_6d53d0d9969a4fc7b7711801fb71ba31",
- "IPY_MODEL_0c17e545386f44ef91972dab303008d8"
- ],
- "layout": "IPY_MODEL_e09a60b3518145f4aa8048dcfbb9d10c"
- }
- },
- "5a643171d7704209ae26d0cc72f35de6": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_4c1e8353eda0441b932db04f94badd3b",
- "placeholder": "ā",
- "style": "IPY_MODEL_00ac08cdb7b34dc3b28c815e30e8ec95",
- "value": "
WebSeed Torrent Creator
"
- }
- },
- "650a8365a5ea46f9897444f9d29976e3": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "TextModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "TextModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "TextView",
- "continuous_update": true,
- "description": "URL:",
- "description_tooltip": null,
- "disabled": false,
- "layout": "IPY_MODEL_81bbc52a95084b018dfe70b008bbd7fd",
- "placeholder": "Enter URL",
- "style": "IPY_MODEL_663594b1d1ea43f38a4311fd3a0c258d",
- "value": ""
- }
- },
- "1dd1de36da7147ebaf57c3ac26e01e16": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ToggleButtonsModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ToggleButtonsModel",
- "_options_labels": [
- "Direct Filename",
- "Use Metadata"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "ToggleButtonsView",
- "button_style": "",
- "description": "Naming Mode:",
- "description_tooltip": null,
- "disabled": false,
- "icons": [],
- "index": 0,
- "layout": "IPY_MODEL_4a6dfa1b025e461a97f9dc1b9bcde46d",
- "style": "IPY_MODEL_3777b719f6a24a6389b65e4dea9300a7",
- "tooltips": []
- }
- },
- "ec31953cf7a54132b4b0a0e6492b0a9c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "TextModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "TextModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "TextView",
- "continuous_update": true,
- "description": "Filename:",
- "description_tooltip": null,
- "disabled": false,
- "layout": "IPY_MODEL_2e481d00aa3f427c8556703bbd070a1f",
- "placeholder": "Enter complete filename (e.g., Movie.Name.2024.1080p.BluRay.x264)",
- "style": "IPY_MODEL_1c260f8f16514b8da6f65b6285ef50e9",
- "value": ""
- }
- },
- "3dd745bd3811406e989f7e864ca5a64b": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DropdownModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DropdownModel",
- "_options_labels": [
- "mp4",
- "mkv",
- "avi",
- "webm"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "DropdownView",
- "description": "File Type:",
- "description_tooltip": null,
- "disabled": false,
- "index": 1,
- "layout": "IPY_MODEL_acb195c4fc23429cbc02f74ffa96f54d",
- "style": "IPY_MODEL_d490a1616e1549ea9fb34f35b485e49b"
- }
- },
- "508b2c8e88a846978796cfdabb21cf30": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "VBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "VBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "VBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_7ccdf13407dc4dabba45164021d0073c",
- "IPY_MODEL_4c8961f45fd14de492894bcd29e8c339",
- "IPY_MODEL_53eb6abee62f49499cd0671ca53a5509",
- "IPY_MODEL_5f97dc511d5a49cca83c8810e272abc2",
- "IPY_MODEL_ffe7b64a9d714c04949a20d7cecd84c2",
- "IPY_MODEL_09bbd562f7134a57a6d56a36d41daa23",
- "IPY_MODEL_5b5d4db33b4d44088fff7f91127b23e2"
- ],
- "layout": "IPY_MODEL_152c1e9ef01b4c078e2ac9a2a450b89f"
- }
- },
- "cd1eeaec65554cb6b410a3403683103e": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ButtonModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ButtonModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "ButtonView",
- "button_style": "primary",
- "description": "Create Torrent",
- "disabled": false,
- "icon": "check",
- "layout": "IPY_MODEL_b3f4caabb5a74121b528af18f57c204b",
- "style": "IPY_MODEL_c959959fb86646e399ce8d2069851a9a",
- "tooltip": "Click to create torrent"
- }
- },
- "01357233b8444261999638b2821a143b": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_33e3feb4cb02417d9e6f40cc1a3881c1",
- "placeholder": "ā",
- "style": "IPY_MODEL_b84518394a414c2787290e99fe12ca49",
- "value": ""
- }
- },
- "6d53d0d9969a4fc7b7711801fb71ba31": {
- "model_module": "@jupyter-widgets/output",
- "model_name": "OutputModel",
- "model_module_version": "1.0.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/output",
- "_model_module_version": "1.0.0",
- "_model_name": "OutputModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/output",
- "_view_module_version": "1.0.0",
- "_view_name": "OutputView",
- "layout": "IPY_MODEL_187003d9379448109a7127ea88f52ec5",
- "msg_id": "",
- "outputs": []
- }
- },
- "0c17e545386f44ef91972dab303008d8": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_992eabf3533c471b94b3446850f50b11",
- "placeholder": "ā",
- "style": "IPY_MODEL_f6297debc67c4b30b8ff914fb54a5fea",
- "value": ""
- }
- },
- "e09a60b3518145f4aa8048dcfbb9d10c": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": "1px solid #ddd",
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": "20px",
- "right": null,
- "top": null,
- "visibility": null,
- "width": "100%"
- }
- },
- "4c1e8353eda0441b932db04f94badd3b": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "00ac08cdb7b34dc3b28c815e30e8ec95": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "81bbc52a95084b018dfe70b008bbd7fd": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "80%"
- }
- },
- "663594b1d1ea43f38a4311fd3a0c258d": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "4a6dfa1b025e461a97f9dc1b9bcde46d": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "3777b719f6a24a6389b65e4dea9300a7": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ToggleButtonsStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ToggleButtonsStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "button_width": "",
- "description_width": "initial",
- "font_weight": ""
- }
- },
- "2e481d00aa3f427c8556703bbd070a1f": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "80%"
- }
- },
- "1c260f8f16514b8da6f65b6285ef50e9": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "acb195c4fc23429cbc02f74ffa96f54d": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "d490a1616e1549ea9fb34f35b485e49b": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "7ccdf13407dc4dabba45164021d0073c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_b885310e230a404387f33da122b3bc36",
- "placeholder": "ā",
- "style": "IPY_MODEL_09facb7c405349da9616901d286c600e",
- "value": "Media Information
"
- }
- },
- "4c8961f45fd14de492894bcd29e8c339": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DropdownModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DropdownModel",
- "_options_labels": [
- "movie",
- "series"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "DropdownView",
- "description": "Type:",
- "description_tooltip": null,
- "disabled": false,
- "index": 0,
- "layout": "IPY_MODEL_288fd7c5bfa4406cbf3f5fa21e0ce489",
- "style": "IPY_MODEL_73bf0b41de5d454aafb7f4c62121ca8e"
- }
- },
- "53eb6abee62f49499cd0671ca53a5509": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "TextModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "TextModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "TextView",
- "continuous_update": true,
- "description": "Title:",
- "description_tooltip": null,
- "disabled": false,
- "layout": "IPY_MODEL_dde9cf0d1b124d908445d82a5d9dd162",
- "placeholder": "Enter title",
- "style": "IPY_MODEL_884b732934394ce5829497feef42fed7",
- "value": ""
- }
- },
- "5f97dc511d5a49cca83c8810e272abc2": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "TextModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "TextModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "TextView",
- "continuous_update": true,
- "description": "Year:",
- "description_tooltip": null,
- "disabled": false,
- "layout": "IPY_MODEL_f76ba60796054bffa5968f21ab23d278",
- "placeholder": "Optional: Year",
- "style": "IPY_MODEL_aae933c5c49c490fad99255389921ad8",
- "value": ""
- }
- },
- "ffe7b64a9d714c04949a20d7cecd84c2": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "IntTextModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "IntTextModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "IntTextView",
- "continuous_update": false,
- "description": "Season:",
- "description_tooltip": null,
- "disabled": false,
- "layout": "IPY_MODEL_34b47e7eb5154ce58c39f4bcc9a57b84",
- "step": 1,
- "style": "IPY_MODEL_bdb82d4baf364284935f0e4029ce11e3",
- "value": 1
- }
- },
- "09bbd562f7134a57a6d56a36d41daa23": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "IntTextModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "IntTextModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "IntTextView",
- "continuous_update": false,
- "description": "Episode:",
- "description_tooltip": null,
- "disabled": false,
- "layout": "IPY_MODEL_8baf8d27fb7d4c6894cdf7a6ed1b7a2b",
- "step": 1,
- "style": "IPY_MODEL_a3fd88efaac44ad484c2e1d692e21393",
- "value": 1
- }
- },
- "5b5d4db33b4d44088fff7f91127b23e2": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "VBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "VBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "VBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_3e4f975300d547bfb0d8bbe3bf704c5d",
- "IPY_MODEL_cf65722c7f3347d6aa12db29f491fc15",
- "IPY_MODEL_d3dfcdc9098a4213b26abdc6d5fcdb6b",
- "IPY_MODEL_c006b6128f92459d9915dca83284af95",
- "IPY_MODEL_3e651ee6da54499c96aa85995de2cc84",
- "IPY_MODEL_1735e1b5bcee4ecc983a75152db6edd0"
- ],
- "layout": "IPY_MODEL_7a89e13edc9944ca98cd0f432a59c919"
- }
- },
- "152c1e9ef01b4c078e2ac9a2a450b89f": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": "none",
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "b3f4caabb5a74121b528af18f57c204b": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "20px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "c959959fb86646e399ce8d2069851a9a": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "ButtonStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "ButtonStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "button_color": null,
- "font_weight": ""
- }
- },
- "33e3feb4cb02417d9e6f40cc1a3881c1": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": "none",
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "b84518394a414c2787290e99fe12ca49": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "992eabf3533c471b94b3446850f50b11": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": "none",
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "f6297debc67c4b30b8ff914fb54a5fea": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "b885310e230a404387f33da122b3bc36": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "09facb7c405349da9616901d286c600e": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "288fd7c5bfa4406cbf3f5fa21e0ce489": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "73bf0b41de5d454aafb7f4c62121ca8e": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "dde9cf0d1b124d908445d82a5d9dd162": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "80%"
- }
- },
- "884b732934394ce5829497feef42fed7": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "f76ba60796054bffa5968f21ab23d278": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "aae933c5c49c490fad99255389921ad8": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "34b47e7eb5154ce58c39f4bcc9a57b84": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": "none",
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "150px"
- }
- },
- "bdb82d4baf364284935f0e4029ce11e3": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "8baf8d27fb7d4c6894cdf7a6ed1b7a2b": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": "none",
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "150px"
- }
- },
- "a3fd88efaac44ad484c2e1d692e21393": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "3e4f975300d547bfb0d8bbe3bf704c5d": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_bfd2b708706746c0931171a9afbb45e2",
- "placeholder": "ā",
- "style": "IPY_MODEL_a8c3d93c1a7e4f09950fc85b916f1503",
- "value": "Quality Information
"
- }
- },
- "cf65722c7f3347d6aa12db29f491fc15": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_ba7dda4bb6f5478d8d1bc8b4327edd1e",
- "IPY_MODEL_b9eb9edf5d614135aa46ca31fb52ac42"
- ],
- "layout": "IPY_MODEL_929bc0d405a541d589ec20c4517f0972"
- }
- },
- "d3dfcdc9098a4213b26abdc6d5fcdb6b": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HBoxModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HBoxModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HBoxView",
- "box_style": "",
- "children": [
- "IPY_MODEL_1bce3a707ab64cb492a7d529e66b804c",
- "IPY_MODEL_1337c90ee0f4498680abff41da6544c1",
- "IPY_MODEL_7806daf8d7dc4bbfa96a53d352612d09"
- ],
- "layout": "IPY_MODEL_3f07d3b11eb44c20be3fa01c97affb4e"
- }
- },
- "c006b6128f92459d9915dca83284af95": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_61642aa8974444e18ce25482ae9a0e5e",
- "placeholder": "ā",
- "style": "IPY_MODEL_c6e32f9c079e4ff59af071d4de1d309c",
- "value": "Language Information
"
- }
- },
- "3e651ee6da54499c96aa85995de2cc84": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "SelectMultipleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "SelectMultipleModel",
- "_options_labels": [
- "English",
- "Spanish",
- "French",
- "German",
- "Italian",
- "Russian",
- "Japanese",
- "Korean",
- "Chinese",
- "Hindi",
- "Tamil",
- "Telugu",
- "Malayalam",
- "Kannada",
- "Portuguese",
- "Turkish",
- "Arabic",
- "Thai",
- "Vietnamese",
- "Indonesian"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "SelectMultipleView",
- "description": "Languages:",
- "description_tooltip": null,
- "disabled": false,
- "index": [],
- "layout": "IPY_MODEL_76a6655a459f480a86abda8299000fb2",
- "rows": 5,
- "style": "IPY_MODEL_c30d9fdff73745ab9d453ea2ccf5c857"
- }
- },
- "1735e1b5bcee4ecc983a75152db6edd0": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "HTMLModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "HTMLModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "HTMLView",
- "description": "",
- "description_tooltip": null,
- "layout": "IPY_MODEL_c638b489b6ee4cbcbd833d46f8af8401",
- "placeholder": "ā",
- "style": "IPY_MODEL_b1e663dd4a1a4668bcc1f083fecb6a40",
- "value": "Hold Ctrl/Cmd to select multiple languages"
- }
- },
- "7a89e13edc9944ca98cd0f432a59c919": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "bfd2b708706746c0931171a9afbb45e2": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "a8c3d93c1a7e4f09950fc85b916f1503": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "ba7dda4bb6f5478d8d1bc8b4327edd1e": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DropdownModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DropdownModel",
- "_options_labels": [
- "",
- "480p",
- "576p",
- "720p",
- "1080p",
- "1440p",
- "2160p",
- "4K"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "DropdownView",
- "description": "Resolution:",
- "description_tooltip": null,
- "disabled": false,
- "index": 0,
- "layout": "IPY_MODEL_d2ed8e7b0c864caa84c87dd34783cfcd",
- "style": "IPY_MODEL_dc7355250fb3489197d9f210023061be"
- }
- },
- "b9eb9edf5d614135aa46ca31fb52ac42": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DropdownModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DropdownModel",
- "_options_labels": [
- "",
- "BluRay",
- "BluRay REMUX",
- "BRRip",
- "BDRip",
- "WEB-DL",
- "HDRip",
- "DVDRip",
- "HDTV",
- "CAM",
- "TeleSync",
- "SCR"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "DropdownView",
- "description": "Source:",
- "description_tooltip": null,
- "disabled": false,
- "index": 0,
- "layout": "IPY_MODEL_a5459264ce2444758b770c5d2323250a",
- "style": "IPY_MODEL_cef3d4af029144ba94e009af4a675550"
- }
- },
- "929bc0d405a541d589ec20c4517f0972": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "1bce3a707ab64cb492a7d529e66b804c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DropdownModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DropdownModel",
- "_options_labels": [
- "",
- "x264",
- "x265",
- "H.264",
- "H.265",
- "HEVC",
- "AVC",
- "MPEG-2",
- "MPEG-4",
- "VP9"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "DropdownView",
- "description": "Video Codec:",
- "description_tooltip": null,
- "disabled": false,
- "index": 0,
- "layout": "IPY_MODEL_8d87b2887db34c5cbe0122a1fcaf085f",
- "style": "IPY_MODEL_547474f223c94b888e8e30c666f6371c"
- }
- },
- "1337c90ee0f4498680abff41da6544c1": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DropdownModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DropdownModel",
- "_options_labels": [
- "",
- "AAC",
- "AC3",
- "DTS",
- "DTS-HD MA",
- "TrueHD",
- "Atmos",
- "DD+"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "DropdownView",
- "description": "Audio Codec:",
- "description_tooltip": null,
- "disabled": false,
- "index": 0,
- "layout": "IPY_MODEL_ed2a9f01369a4f55be2208e2d2a0f1a8",
- "style": "IPY_MODEL_7a6159e116fa43ebbe3c4cb1563ef875"
- }
- },
- "7806daf8d7dc4bbfa96a53d352612d09": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DropdownModel",
- "model_module_version": "1.5.0",
- "state": {
- "_dom_classes": [],
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DropdownModel",
- "_options_labels": [
- "",
- "2.0",
- "5.1",
- "7.1"
- ],
- "_view_count": null,
- "_view_module": "@jupyter-widgets/controls",
- "_view_module_version": "1.5.0",
- "_view_name": "DropdownView",
- "description": "Audio Channels:",
- "description_tooltip": null,
- "disabled": false,
- "index": 0,
- "layout": "IPY_MODEL_177c0115fffb4192bc547c595823db1a",
- "style": "IPY_MODEL_65092a26f43645279b4fd8fb6664e47c"
- }
- },
- "3f07d3b11eb44c20be3fa01c97affb4e": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "61642aa8974444e18ce25482ae9a0e5e": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": null,
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "c6e32f9c079e4ff59af071d4de1d309c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "76a6655a459f480a86abda8299000fb2": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": "150px",
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "300px"
- }
- },
- "c30d9fdff73745ab9d453ea2ccf5c857": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "c638b489b6ee4cbcbd833d46f8af8401": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "0px 0px 10px 10px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- },
- "b1e663dd4a1a4668bcc1f083fecb6a40": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": ""
- }
- },
- "d2ed8e7b0c864caa84c87dd34783cfcd": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "dc7355250fb3489197d9f210023061be": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "a5459264ce2444758b770c5d2323250a": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "cef3d4af029144ba94e009af4a675550": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "8d87b2887db34c5cbe0122a1fcaf085f": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "547474f223c94b888e8e30c666f6371c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "ed2a9f01369a4f55be2208e2d2a0f1a8": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "7a6159e116fa43ebbe3c4cb1563ef875": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "177c0115fffb4192bc547c595823db1a": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": null,
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": null,
- "right": null,
- "top": null,
- "visibility": null,
- "width": "200px"
- }
- },
- "65092a26f43645279b4fd8fb6664e47c": {
- "model_module": "@jupyter-widgets/controls",
- "model_name": "DescriptionStyleModel",
- "model_module_version": "1.5.0",
- "state": {
- "_model_module": "@jupyter-widgets/controls",
- "_model_module_version": "1.5.0",
- "_model_name": "DescriptionStyleModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "StyleView",
- "description_width": "initial"
- }
- },
- "187003d9379448109a7127ea88f52ec5": {
- "model_module": "@jupyter-widgets/base",
- "model_name": "LayoutModel",
- "model_module_version": "1.2.0",
- "state": {
- "_model_module": "@jupyter-widgets/base",
- "_model_module_version": "1.2.0",
- "_model_name": "LayoutModel",
- "_view_count": null,
- "_view_module": "@jupyter-widgets/base",
- "_view_module_version": "1.2.0",
- "_view_name": "LayoutView",
- "align_content": null,
- "align_items": null,
- "align_self": null,
- "border": "1px solid black",
- "bottom": null,
- "display": null,
- "flex": null,
- "flex_flow": null,
- "grid_area": null,
- "grid_auto_columns": null,
- "grid_auto_flow": null,
- "grid_auto_rows": null,
- "grid_column": null,
- "grid_gap": null,
- "grid_row": null,
- "grid_template_areas": null,
- "grid_template_columns": null,
- "grid_template_rows": null,
- "height": null,
- "justify_content": null,
- "justify_items": null,
- "left": null,
- "margin": "10px 0px",
- "max_height": null,
- "max_width": null,
- "min_height": null,
- "min_width": null,
- "object_fit": null,
- "object_position": null,
- "order": null,
- "overflow": null,
- "overflow_x": null,
- "overflow_y": null,
- "padding": "10px",
- "right": null,
- "top": null,
- "visibility": null,
- "width": null
- }
- }
- }
- }
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "provenance": [],
+ "authorship_tag": "ABX9TyP/3jAD0HrOSOZAuPRU40e/",
+ "include_colab_link": true
},
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "view-in-github",
- "colab_type": "text"
- },
- "source": [
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "source": [
- "# WebSeed Torrent Creator\n",
- "**DISCLAIMER**: This notebook is provided for educational purposes only. It demonstrates the technical concepts of creating torrents with web seeds, proper media naming conventions, and metadata organization. Users are responsible for ensuring they comply with all applicable laws and have the necessary rights for any content they process.\n",
- "\n",
- "\n",
- "## Using the Creator\n",
- "1. Click on **Runtime** -> **Run all**\n",
- "2. **Scroll to the bottom** of the notebook to find the input interface\n",
- "\n",
- "3. Choose your preferred naming method:\n",
- " - **Direct Filename**: Enter complete name manually\n",
- " - **Use Metadata**: Build name using structured fields\n",
- "\n",
- "4. Required Fields:\n",
- " - URL: Source URL for the content\n",
- " - Filename or Title (depending on mode)\n",
- " - File Type (e.g., mkv, mp4)\n",
- "\n",
- "5. Optional Metadata Fields (if using metadata mode):\n",
- " - Media Type (movie/series)\n",
- " - Year\n",
- " - Season/Episode (for series)\n",
- " - Resolution (480p to 4K)\n",
- " - Source (BluRay, WEB-DL, etc.)\n",
- " - Video/Audio codecs\n",
- " - Languages (multiple selectable)\n",
- "\n",
- "6. Click \"Create Torrent\" and wait for processing\n",
- "7. Use the download button to get your torrent file\n",
- "\n"
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ },
+ "language_info": {
+ "name": "python"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "f94ff181953845f6bf1cd2790c06482c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "VBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "VBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "VBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_5a643171d7704209ae26d0cc72f35de6",
+ "IPY_MODEL_650a8365a5ea46f9897444f9d29976e3",
+ "IPY_MODEL_1dd1de36da7147ebaf57c3ac26e01e16",
+ "IPY_MODEL_ec31953cf7a54132b4b0a0e6492b0a9c",
+ "IPY_MODEL_3dd745bd3811406e989f7e864ca5a64b",
+ "IPY_MODEL_508b2c8e88a846978796cfdabb21cf30",
+ "IPY_MODEL_cd1eeaec65554cb6b410a3403683103e",
+ "IPY_MODEL_01357233b8444261999638b2821a143b",
+ "IPY_MODEL_6d53d0d9969a4fc7b7711801fb71ba31",
+ "IPY_MODEL_0c17e545386f44ef91972dab303008d8"
],
- "metadata": {
- "id": "ZcHohv30cKGC"
- }
+ "layout": "IPY_MODEL_e09a60b3518145f4aa8048dcfbb9d10c"
+ }
},
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {
- "id": "2kvN6iGA7pG7",
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "outputId": "4e52df64-d877-43a2-e5ec-b917f7e02890"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Requirement already satisfied: ipywidgets in /usr/local/lib/python3.10/dist-packages (7.7.1)\n",
- "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (2.32.3)\n",
- "Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.10/dist-packages (from ipywidgets) (5.5.6)\n",
- "Requirement already satisfied: ipython-genutils~=0.2.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets) (0.2.0)\n",
- "Requirement already satisfied: traitlets>=4.3.1 in /usr/local/lib/python3.10/dist-packages (from ipywidgets) (5.7.1)\n",
- "Requirement already satisfied: widgetsnbextension~=3.6.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets) (3.6.10)\n",
- "Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets) (7.34.0)\n",
- "Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets) (3.0.13)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests) (3.4.0)\n",
- "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests) (3.10)\n",
- "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests) (2.2.3)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests) (2024.12.14)\n",
- "Requirement already satisfied: jupyter-client in /usr/local/lib/python3.10/dist-packages (from ipykernel>=4.5.1->ipywidgets) (6.1.12)\n",
- "Requirement already satisfied: tornado>=4.2 in /usr/local/lib/python3.10/dist-packages (from ipykernel>=4.5.1->ipywidgets) (6.3.3)\n",
- "Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets) (75.1.0)\n",
- "Collecting jedi>=0.16 (from ipython>=4.0.0->ipywidgets)\n",
- " Downloading jedi-0.19.2-py2.py3-none-any.whl.metadata (22 kB)\n",
- "Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets) (4.4.2)\n",
- "Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets) (0.7.5)\n",
- "Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets) (3.0.48)\n",
- "Requirement already satisfied: pygments in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets) (2.18.0)\n",
- "Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets) (0.2.0)\n",
- "Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets) (0.1.7)\n",
- "Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets) (4.9.0)\n",
- "Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.10/dist-packages (from widgetsnbextension~=3.6.0->ipywidgets) (6.5.5)\n",
- "Requirement already satisfied: parso<0.9.0,>=0.8.4 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets) (0.8.4)\n",
- "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.1.4)\n",
- "Requirement already satisfied: pyzmq<25,>=17 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (24.0.1)\n",
- "Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (23.1.0)\n",
- "Requirement already satisfied: jupyter-core>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (5.7.2)\n",
- "Requirement already satisfied: nbformat in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (5.10.4)\n",
- "Requirement already satisfied: nbconvert>=5 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (7.16.4)\n",
- "Requirement already satisfied: nest-asyncio>=1.5 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.6.0)\n",
- "Requirement already satisfied: Send2Trash>=1.8.0 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.3)\n",
- "Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.18.1)\n",
- "Requirement already satisfied: prometheus-client in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.21.1)\n",
- "Requirement already satisfied: nbclassic>=0.4.7 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.1.0)\n",
- "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.10/dist-packages (from jupyter-client->ipykernel>=4.5.1->ipywidgets) (2.8.2)\n",
- "Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets) (0.7.0)\n",
- "Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets) (0.2.13)\n",
- "Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from jupyter-core>=4.6.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.3.6)\n",
- "Requirement already satisfied: notebook-shim>=0.2.3 in /usr/local/lib/python3.10/dist-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.2.4)\n",
- "Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.12.3)\n",
- "Requirement already satisfied: bleach!=5.0.0 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (6.2.0)\n",
- "Requirement already satisfied: defusedxml in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.7.1)\n",
- "Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.3.0)\n",
- "Requirement already satisfied: markupsafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.2)\n",
- "Requirement already satisfied: mistune<4,>=2.0.3 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.0.2)\n",
- "Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.10.1)\n",
- "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (24.2)\n",
- "Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.5.1)\n",
- "Requirement already satisfied: tinycss2 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.4.0)\n",
- "Requirement already satisfied: fastjsonschema>=2.15 in /usr/local/lib/python3.10/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.21.1)\n",
- "Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.10/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (4.23.0)\n",
- "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.1->jupyter-client->ipykernel>=4.5.1->ipywidgets) (1.17.0)\n",
- "Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.10/dist-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (21.2.0)\n",
- "Requirement already satisfied: webencodings in /usr/local/lib/python3.10/dist-packages (from bleach!=5.0.0->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.5.1)\n",
- "Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (24.3.0)\n",
- "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2024.10.1)\n",
- "Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.35.1)\n",
- "Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (0.22.3)\n",
- "Requirement already satisfied: jupyter-server<3,>=1.8 in /usr/local/lib/python3.10/dist-packages (from notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.24.0)\n",
- "Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.17.1)\n",
- "Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.6)\n",
- "Requirement already satisfied: pycparser in /usr/local/lib/python3.10/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (2.22)\n",
- "Requirement already satisfied: anyio<4,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (3.7.1)\n",
- "Requirement already satisfied: websocket-client in /usr/local/lib/python3.10/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.8.0)\n",
- "Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio<4,>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.3.1)\n",
- "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<4,>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets) (1.2.2)\n",
- "Downloading jedi-0.19.2-py2.py3-none-any.whl (1.6 MB)\n",
- "\u001b[2K \u001b[90māāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m15.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hInstalling collected packages: jedi\n",
- "Successfully installed jedi-0.19.2\n",
- "Selecting previously unselected package libc-ares2:amd64.\n",
- "(Reading database ... 123634 files and directories currently installed.)\n",
- "Preparing to unpack .../libc-ares2_1.18.1-1ubuntu0.22.04.3_amd64.deb ...\n",
- "Unpacking libc-ares2:amd64 (1.18.1-1ubuntu0.22.04.3) ...\n",
- "Selecting previously unselected package libaria2-0:amd64.\n",
- "Preparing to unpack .../libaria2-0_1.36.0-1_amd64.deb ...\n",
- "Unpacking libaria2-0:amd64 (1.36.0-1) ...\n",
- "Selecting previously unselected package aria2.\n",
- "Preparing to unpack .../aria2_1.36.0-1_amd64.deb ...\n",
- "Unpacking aria2 (1.36.0-1) ...\n",
- "Setting up libc-ares2:amd64 (1.18.1-1ubuntu0.22.04.3) ...\n",
- "Setting up libaria2-0:amd64 (1.36.0-1) ...\n",
- "Setting up aria2 (1.36.0-1) ...\n",
- "Processing triggers for man-db (2.10.2-1) ...\n",
- "Processing triggers for libc-bin (2.35-0ubuntu3.4) ...\n",
- "/sbin/ldconfig.real: /usr/local/lib/libtcm_debug.so.1 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libur_loader.so.0 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libhwloc.so.15 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libumf.so.0 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libtbbmalloc_proxy.so.2 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_0.so.3 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libtbbbind.so.3 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libtbbmalloc.so.2 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libtbb.so.12 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libtbbbind_2_5.so.3 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libtcm.so.1 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libur_adapter_level_zero.so.0 is not a symbolic link\n",
- "\n",
- "/sbin/ldconfig.real: /usr/local/lib/libur_adapter_opencl.so.0 is not a symbolic link\n",
- "\n"
- ]
- }
- ],
- "source": [
- "!pip install ipywidgets requests\n",
- "!apt-get -qq install aria2\n",
- "!wget -qO torrenttools.AppImage https://github.com/fbdtemme/torrenttools/releases/download/v0.6.2/torrenttools-0.6.2-linux-x86_64.AppImage\n",
- "!chmod +x torrenttools.AppImage\n",
- "!./torrenttools.AppImage --appimage-extract > /dev/null"
- ]
+ "5a643171d7704209ae26d0cc72f35de6": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_4c1e8353eda0441b932db04f94badd3b",
+ "placeholder": "ā",
+ "style": "IPY_MODEL_00ac08cdb7b34dc3b28c815e30e8ec95",
+ "value": "WebSeed Torrent Creator
"
+ }
},
- {
- "cell_type": "code",
- "source": [
- "import os\n",
- "import subprocess\n",
- "import base64\n",
- "from typing import Dict, Optional, List\n",
- "from urllib.parse import urlparse, unquote\n",
- "import requests\n",
- "import ipywidgets as widgets\n",
- "from IPython.display import display, HTML, Javascript\n",
- "\n",
- "class MediaTorrentCreator:\n",
- " # Constants for media information\n",
- " RESOLUTIONS = ['480p', '576p', '720p', '1080p', '1440p', '2160p', '4K']\n",
- " SOURCES = ['BluRay', 'BluRay REMUX', 'BRRip', 'BDRip', 'WEB-DL', 'HDRip', 'DVDRip', 'HDTV', 'CAM', 'TeleSync', 'SCR']\n",
- " AUDIO_CODECS = ['AAC', 'AC3', 'DTS', 'DTS-HD MA', 'TrueHD', 'Atmos', 'DD+']\n",
- " VIDEO_CODECS = ['x264', 'x265', 'H.264', 'H.265', 'HEVC', 'AVC', 'MPEG-2', 'MPEG-4', 'VP9']\n",
- " AUDIO_CHANNELS = ['2.0', '5.1', '7.1']\n",
- " FILE_TYPES = ['mp4', 'mkv', 'avi', 'webm']\n",
- " LANGUAGES = [\n",
- " 'English', 'Spanish', 'French', 'German', 'Italian', 'Russian', 'Japanese',\n",
- " 'Korean', 'Chinese', 'Hindi', 'Tamil', 'Telugu', 'Malayalam', 'Kannada',\n",
- " 'Portuguese', 'Turkish', 'Arabic', 'Thai', 'Vietnamese', 'Indonesian'\n",
- " ]\n",
- " LANGUAGE_CODES = {\n",
- " 'English': 'ENG', 'Spanish': 'SPA', 'French': 'FRE', 'German': 'GER',\n",
- " 'Italian': 'ITA', 'Russian': 'RUS', 'Japanese': 'JPN', 'Korean': 'KOR',\n",
- " 'Chinese': 'CHI', 'Hindi': 'HIN', 'Tamil': 'TAM', 'Telugu': 'TEL',\n",
- " 'Malayalam': 'MAL', 'Kannada': 'KAN', 'Portuguese': 'POR', 'Turkish': 'TUR',\n",
- " 'Arabic': 'ARA', 'Thai': 'THA', 'Vietnamese': 'VIE', 'Indonesian': 'IND'\n",
- " }\n",
- "\n",
- " def __init__(self, base_path: str = \"./media_storage\"):\n",
- " \"\"\"Initialize the creator with local storage paths\"\"\"\n",
- " self.base_path = base_path\n",
- " self.create_storage_directories()\n",
- "\n",
- " def create_storage_directories(self):\n",
- " \"\"\"Create necessary directories for local storage\"\"\"\n",
- " directories = ['downloads', 'torrents']\n",
- " for dir_name in directories:\n",
- " path = os.path.join(self.base_path, dir_name)\n",
- " os.makedirs(path, exist_ok=True)\n",
- " print(f\"Created directory: {path}\")\n",
- "\n",
- " def _fetch_best_trackers(self) -> List[str]:\n",
- " \"\"\"Fetch best trackers from ngosang's trackerslist\"\"\"\n",
- " try:\n",
- " response = requests.get(\n",
- " \"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt\",\n",
- " timeout=30\n",
- " )\n",
- " if response.status_code == 200:\n",
- " return [tracker.strip() for tracker in response.text.split(\"\\n\") if tracker.strip()]\n",
- " return []\n",
- " except Exception as e:\n",
- " print(f\"Warning: Failed to fetch trackers: {str(e)}\")\n",
- " return []\n",
- "\n",
- " def _get_filename_from_url(self, url: str, custom_filename: Optional[str] = None) -> str:\n",
- " \"\"\"Get filename from URL or custom input\"\"\"\n",
- " if custom_filename:\n",
- " return custom_filename\n",
- "\n",
- " try:\n",
- " # Try to get filename from Content-Disposition header\n",
- " response = requests.head(url, allow_redirects=True, timeout=10)\n",
- " if 'Content-Disposition' in response.headers:\n",
- " content_disp = response.headers['Content-Disposition']\n",
- " if 'filename=' in content_disp:\n",
- " return content_disp.split('filename=')[-1].strip('\"\\'')\n",
- "\n",
- " # Try to get filename from URL path\n",
- " parsed_url = urlparse(url)\n",
- " url_path = unquote(parsed_url.path)\n",
- " filename = os.path.basename(url_path)\n",
- "\n",
- " if filename and '.' in filename:\n",
- " return filename\n",
- "\n",
- " # Use Content-Type for extension if available\n",
- " if 'Content-Type' in response.headers:\n",
- " content_type = response.headers['Content-Type'].split(';')[0]\n",
- " ext_map = {\n",
- " 'video/mp4': '.mp4',\n",
- " 'video/x-matroska': '.mkv',\n",
- " 'video/webm': '.webm',\n",
- " 'application/x-bittorrent': '.torrent'\n",
- " }\n",
- " ext = ext_map.get(content_type, '')\n",
- " if ext:\n",
- " return f'download{ext}'\n",
- "\n",
- " except Exception as e:\n",
- " print(f\"Warning: Error in filename detection: {str(e)}\")\n",
- "\n",
- " return 'download'\n",
- "\n",
- " def _generate_torrent_name(self, media_info: Dict) -> str:\n",
- " \"\"\"Generate structured torrent name from media information\"\"\"\n",
- " parts = []\n",
- "\n",
- " # Add title and year\n",
- " title = media_info.get('title', '').replace(' ', '.')\n",
- " year = media_info.get('year', '')\n",
- " parts.append(f\"{title}{f'.{year}' if year else ''}\")\n",
- "\n",
- " # Add season and episode for series\n",
- " if media_info.get('media_type') == 'series':\n",
- " season = media_info.get('season')\n",
- " episode = media_info.get('episode')\n",
- " if season and episode:\n",
- " parts.append(f\"S{int(season):02d}E{int(episode):02d}\")\n",
- "\n",
- " # Add quality info\n",
- " resolution = media_info.get('resolution', '')\n",
- " source = media_info.get('source', '')\n",
- " if resolution and source:\n",
- " parts.append(f\"{resolution}.{source}\")\n",
- " elif resolution:\n",
- " parts.append(resolution)\n",
- " elif source:\n",
- " parts.append(source)\n",
- "\n",
- " # Add language info\n",
- " languages = media_info.get('languages', [])\n",
- " if languages:\n",
- " # Convert full language names to codes and join them\n",
- " language_codes = [self.LANGUAGE_CODES.get(lang, lang) for lang in languages]\n",
- " parts.append('-'.join(language_codes))\n",
- "\n",
- " # Add codec info\n",
- " video_codec = media_info.get('video_codec', '')\n",
- " if video_codec:\n",
- " parts.append(video_codec)\n",
- "\n",
- " # Add audio info\n",
- " audio_codec = media_info.get('audio_codec', '')\n",
- " audio_channels = media_info.get('audio_channels', '')\n",
- " if audio_codec and audio_channels:\n",
- " parts.append(f\"{audio_codec}.{audio_channels}\")\n",
- " elif audio_codec:\n",
- " parts.append(audio_codec)\n",
- "\n",
- " return '.'.join(parts)\n",
- "\n",
- " def create_torrent(\n",
- " self,\n",
- " source_url: str,\n",
- " media_info: Dict,\n",
- " custom_filename: Optional[str] = None,\n",
- " cleanup: bool = False\n",
- " ) -> Dict:\n",
- " \"\"\"Create a torrent with web seeding for content\"\"\"\n",
- " try:\n",
- " download_dir = os.path.join(self.base_path, \"downloads\")\n",
- " trackers = self._fetch_best_trackers()\n",
- "\n",
- " # Get appropriate filename for download\n",
- " download_filename = self._get_filename_from_url(source_url, custom_filename)\n",
- " safe_download_filename = \"\".join(c for c in download_filename if c.isalnum() or c in \"._- \").strip()\n",
- " local_file_path = os.path.join(download_dir, safe_download_filename)\n",
- "\n",
- " # Generate torrent name\n",
- " torrent_name = self._generate_torrent_name(media_info)\n",
- "\n",
- " # Download with aria2c\n",
- " print(f\"Downloading using aria2c to: {safe_download_filename}\")\n",
- " aria2c_command = [\n",
- " \"aria2c\",\n",
- " \"-x\", \"16\",\n",
- " \"-s\", \"16\",\n",
- " \"-k\", \"1M\",\n",
- " \"-o\", safe_download_filename,\n",
- " \"-d\", download_dir,\n",
- " source_url\n",
- " ]\n",
- "\n",
- " process = subprocess.run(\n",
- " aria2c_command,\n",
- " stdout=subprocess.PIPE,\n",
- " stderr=subprocess.PIPE,\n",
- " text=True\n",
- " )\n",
- "\n",
- " if process.returncode != 0:\n",
- " raise Exception(f\"Failed to download file: {process.stderr}\")\n",
- "\n",
- " if not os.path.exists(local_file_path):\n",
- " raise Exception(f\"Downloaded file not found: {local_file_path}\")\n",
- "\n",
- " # Create torrent file\n",
- " output_path = os.path.join(self.base_path, \"torrents\", f\"{torrent_name}.torrent\")\n",
- "\n",
- " create_command = [\n",
- " \"./squashfs-root/AppRun\",\n",
- " \"create\",\n",
- " local_file_path,\n",
- " \"-v\", \"1\",\n",
- " \"-n\", torrent_name,\n",
- " \"-o\", output_path,\n",
- " \"-w\", source_url,\n",
- " \"-c\", f\"Created from: {source_url}\",\n",
- " \"--announce\", \" \".join(trackers),\n",
- " \"-l\", \"auto\",\n",
- " \"-s\", \"WebSeedTorrentCreator\",\n",
- " \"--created-by\", \"WebSeedTorrentCreator\"\n",
- " ]\n",
- "\n",
- " process = subprocess.run(\n",
- " create_command,\n",
- " stdout=subprocess.PIPE,\n",
- " stderr=subprocess.PIPE,\n",
- " text=True\n",
- " )\n",
- "\n",
- " if process.returncode != 0:\n",
- " raise Exception(f\"Failed to create torrent: {process.stderr}\")\n",
- "\n",
- " if cleanup:\n",
- " try:\n",
- " os.remove(local_file_path)\n",
- " print(f\"Cleaned up downloaded file: {local_file_path}\")\n",
- " except Exception as e:\n",
- " print(f\"Warning: Failed to clean up file: {str(e)}\")\n",
- "\n",
- " return {\n",
- " \"torrent_path\": output_path,\n",
- " \"web_seed_url\": source_url,\n",
- " \"local_file\": local_file_path,\n",
- " \"filename\": safe_download_filename,\n",
- " \"torrent_name\": torrent_name,\n",
- " \"trackers\": trackers,\n",
- " \"command_output\": process.stdout\n",
- " }\n",
- "\n",
- " except Exception as e:\n",
- " raise Exception(f\"Error in create_torrent: {str(e)}\")\n",
- "\n",
- " def create_torrent_gui(self):\n",
- " \"\"\"Create GUI with structured naming options\"\"\"\n",
- " # Create all input widgets\n",
- " url_input = widgets.Text(\n",
- " value='',\n",
- " placeholder='Enter URL',\n",
- " description='URL:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='80%', margin='10px 0px')\n",
- " )\n",
- "\n",
- " naming_mode = widgets.ToggleButtons(\n",
- " options=['Direct Filename', 'Use Metadata'],\n",
- " description='Naming Mode:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(margin='10px 0px')\n",
- " )\n",
- "\n",
- " direct_filename = widgets.Text(\n",
- " value='',\n",
- " placeholder='Enter complete filename (e.g., Movie.Name.2024.1080p.BluRay.x264)',\n",
- " description='Filename:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='80%', margin='10px 0px')\n",
- " )\n",
- "\n",
- " file_type = widgets.Dropdown(\n",
- " options=self.FILE_TYPES,\n",
- " value='mkv',\n",
- " description='File Type:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " media_type = widgets.Dropdown(\n",
- " options=['movie', 'series'],\n",
- " value='movie',\n",
- " description='Type:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " title_input = widgets.Text(\n",
- " value='',\n",
- " placeholder='Enter title',\n",
- " description='Title:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='80%', margin='10px 0px')\n",
- " )\n",
- "\n",
- " year_input = widgets.Text(\n",
- " value='',\n",
- " placeholder='Optional: Year',\n",
- " description='Year:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " season_input = widgets.IntText(\n",
- " value=1,\n",
- " description='Season:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='150px', margin='10px 0px', display='none')\n",
- " )\n",
- "\n",
- " episode_input = widgets.IntText(\n",
- " value=1,\n",
- " description='Episode:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='150px', margin='10px 0px', display='none')\n",
- " )\n",
- "\n",
- " resolution_input = widgets.Dropdown(\n",
- " options=[''] + self.RESOLUTIONS,\n",
- " value='',\n",
- " description='Resolution:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " source_input = widgets.Dropdown(\n",
- " options=[''] + self.SOURCES,\n",
- " value='',\n",
- " description='Source:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " video_codec_input = widgets.Dropdown(\n",
- " options=[''] + self.VIDEO_CODECS,\n",
- " value='',\n",
- " description='Video Codec:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " audio_codec_input = widgets.Dropdown(\n",
- " options=[''] + self.AUDIO_CODECS,\n",
- " value='',\n",
- " description='Audio Codec:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " audio_channels_input = widgets.Dropdown(\n",
- " options=[''] + self.AUDIO_CHANNELS,\n",
- " value='',\n",
- " description='Audio Channels:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " languages_select = widgets.SelectMultiple(\n",
- " options=self.LANGUAGES,\n",
- " value=[],\n",
- " description='Languages:',\n",
- " style={'description_width': 'initial'},\n",
- " layout=widgets.Layout(width='300px', height='150px', margin='10px 0px')\n",
- " )\n",
- "\n",
- " language_description = widgets.HTML(\n",
- " value='Hold Ctrl/Cmd to select multiple languages',\n",
- " layout=widgets.Layout(margin='0px 0px 10px 10px')\n",
- " )\n",
- "\n",
- " create_button = widgets.Button(\n",
- " description='Create Torrent',\n",
- " button_style='primary',\n",
- " tooltip='Click to create torrent',\n",
- " icon='check',\n",
- " layout=widgets.Layout(width='200px', margin='20px 0px')\n",
- " )\n",
- "\n",
- " output_area = widgets.Output(\n",
- " layout={'border': '1px solid black', 'margin': '10px 0px', 'padding': '10px'}\n",
- " )\n",
- "\n",
- " download_area = widgets.HTML(\n",
- " value='',\n",
- " layout=widgets.Layout(display='none', margin='10px 0px')\n",
- " )\n",
- "\n",
- " loading_indicator = widgets.HTML(\n",
- " value='',\n",
- " layout=widgets.Layout(display='none')\n",
- " )\n",
- "\n",
- " # Add loading spinner CSS\n",
- " display(HTML(\"\"\"\n",
- " \n",
- " \"\"\"))\n",
- "\n",
- " def on_naming_mode_change(change):\n",
- " if change['new'] == 'Direct Filename':\n",
- " metadata_section.layout.display = 'none'\n",
- " direct_filename.layout.display = 'block'\n",
- " else:\n",
- " metadata_section.layout.display = 'block'\n",
- " direct_filename.layout.display = 'none'\n",
- "\n",
- " def on_media_type_change(change):\n",
- " if change['new'] == 'series':\n",
- " season_input.layout.display = 'block'\n",
- " episode_input.layout.display = 'block'\n",
- " else:\n",
- " season_input.layout.display = 'none'\n",
- " episode_input.layout.display = 'none'\n",
- "\n",
- " def create_download_button(torrent_path: str, filename: str):\n",
- " \"\"\"Create a download button for the torrent file\"\"\"\n",
- " try:\n",
- " with open(torrent_path, 'rb') as f:\n",
- " torrent_data = f.read()\n",
- " b64_data = base64.b64encode(torrent_data).decode('utf-8')\n",
- "\n",
- " download_html = f\"\"\"\n",
- " \n",
- " š„ Download Torrent File\n",
- " \n",
- " \"\"\"\n",
- " download_area.value = download_html\n",
- " download_area.layout.display = 'block'\n",
- " except Exception as e:\n",
- " print(f\"Error creating download button: {str(e)}\")\n",
- "\n",
- " def on_create_button_click(b):\n",
- " # Disable button and show loading\n",
- " create_button.disabled = True\n",
- " loading_indicator.layout.display = 'block'\n",
- "\n",
- " with output_area:\n",
- " output_area.clear_output()\n",
- " print(\"Starting torrent creation process...\")\n",
- " try:\n",
- " # Determine torrent name based on mode\n",
- " if naming_mode.value == 'Direct Filename':\n",
- " media_info = {\n",
- " 'title': direct_filename.value\n",
- " }\n",
- " torrent_name = f\"{direct_filename.value}.{file_type.value}\"\n",
- " else:\n",
- " media_info = {\n",
- " 'media_type': media_type.value,\n",
- " 'title': title_input.value,\n",
- " 'year': year_input.value,\n",
- " 'resolution': resolution_input.value,\n",
- " 'source': source_input.value,\n",
- " 'video_codec': video_codec_input.value,\n",
- " 'audio_codec': audio_codec_input.value,\n",
- " 'audio_channels': audio_channels_input.value,\n",
- " 'languages': list(languages_select.value)\n",
- " }\n",
- "\n",
- " if media_type.value == 'series':\n",
- " media_info.update({\n",
- " 'season': season_input.value,\n",
- " 'episode': episode_input.value\n",
- " })\n",
- "\n",
- " torrent_name = self._generate_torrent_name(media_info)\n",
- " torrent_name = f\"{torrent_name}.{file_type.value}\"\n",
- "\n",
- " result = self.create_torrent(\n",
- " source_url=url_input.value,\n",
- " media_info={'title': torrent_name}, # Pass the complete name\n",
- " custom_filename=f\"{torrent_name}\"\n",
- " )\n",
- "\n",
- " print(\"\\nā
Torrent created successfully!\")\n",
- " print(f\"š Torrent path: {result['torrent_path']}\")\n",
- " print(f\"š·ļø Torrent name: {result['torrent_name']}\")\n",
- " print(f\"š Download filename: {result['filename']}\")\n",
- " print(f\"š Web seed URL: {result['web_seed_url']}\")\n",
- "\n",
- " # Create download button\n",
- " create_download_button(result['torrent_path'], os.path.basename(result['torrent_path']))\n",
- "\n",
- " except Exception as e:\n",
- " print(f\"ā Error creating torrent: {str(e)}\")\n",
- " print(\"\\nPlease check:\")\n",
- " print(\"1. Is the URL valid and accessible?\")\n",
- " print(\"2. Have you filled in all required fields?\")\n",
- " print(\"3. Do you have write permissions in the output directory?\")\n",
- "\n",
- " finally:\n",
- " # Re-enable button and hide loading\n",
- " create_button.disabled = False\n",
- " loading_indicator.layout.display = 'none'\n",
- "\n",
- " # Connect event handlers\n",
- " naming_mode.observe(on_naming_mode_change, names='value')\n",
- " media_type.observe(on_media_type_change, names='value')\n",
- " create_button.on_click(on_create_button_click)\n",
- "\n",
- " # Create layout sections\n",
- " quality_info = widgets.VBox([\n",
- " widgets.HTML(\"Quality Information
\"),\n",
- " widgets.HBox([resolution_input, source_input]),\n",
- " widgets.HBox([video_codec_input, audio_codec_input, audio_channels_input]),\n",
- " widgets.HTML(\"Language Information
\"),\n",
- " languages_select,\n",
- " language_description\n",
- " ])\n",
- "\n",
- " # Metadata section contains all the structured input fields\n",
- " metadata_section = widgets.VBox([\n",
- " widgets.HTML(\"Media Information
\"),\n",
- " media_type,\n",
- " title_input,\n",
- " year_input,\n",
- " season_input,\n",
- " episode_input,\n",
- " quality_info\n",
- " ])\n",
- "\n",
- " # Initial layout setup\n",
- " metadata_section.layout.display = 'none' # Start with direct filename mode\n",
- "\n",
- " # Main container\n",
- " container = widgets.VBox([\n",
- " widgets.HTML(\"WebSeed Torrent Creator
\"),\n",
- " url_input,\n",
- " naming_mode,\n",
- " direct_filename,\n",
- " file_type,\n",
- " metadata_section,\n",
- " create_button,\n",
- " loading_indicator,\n",
- " output_area,\n",
- " download_area\n",
- " ], layout=widgets.Layout(\n",
- " width='100%',\n",
- " padding='20px',\n",
- " border='1px solid #ddd',\n",
- " border_radius='5px'\n",
- " ))\n",
- "\n",
- " display(container)"
+ "650a8365a5ea46f9897444f9d29976e3": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "TextModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "TextModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "TextView",
+ "continuous_update": true,
+ "description": "URL:",
+ "description_tooltip": null,
+ "disabled": false,
+ "layout": "IPY_MODEL_81bbc52a95084b018dfe70b008bbd7fd",
+ "placeholder": "Enter URL",
+ "style": "IPY_MODEL_663594b1d1ea43f38a4311fd3a0c258d",
+ "value": ""
+ }
+ },
+ "1dd1de36da7147ebaf57c3ac26e01e16": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ToggleButtonsModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ToggleButtonsModel",
+ "_options_labels": [
+ "Direct Filename",
+ "Use Metadata"
],
- "metadata": {
- "id": "l9rgfQ7-BITK"
- },
- "execution_count": 3,
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ToggleButtonsView",
+ "button_style": "",
+ "description": "Naming Mode:",
+ "description_tooltip": null,
+ "disabled": false,
+ "icons": [],
+ "index": 0,
+ "layout": "IPY_MODEL_4a6dfa1b025e461a97f9dc1b9bcde46d",
+ "style": "IPY_MODEL_3777b719f6a24a6389b65e4dea9300a7",
+ "tooltips": []
+ }
+ },
+ "ec31953cf7a54132b4b0a0e6492b0a9c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "TextModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "TextModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "TextView",
+ "continuous_update": true,
+ "description": "Filename:",
+ "description_tooltip": null,
+ "disabled": false,
+ "layout": "IPY_MODEL_2e481d00aa3f427c8556703bbd070a1f",
+ "placeholder": "Enter complete filename (e.g., Movie.Name.2024.1080p.BluRay.x264)",
+ "style": "IPY_MODEL_1c260f8f16514b8da6f65b6285ef50e9",
+ "value": ""
+ }
+ },
+ "3dd745bd3811406e989f7e864ca5a64b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DropdownModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DropdownModel",
+ "_options_labels": [
+ "mp4",
+ "mkv",
+ "avi",
+ "webm"
+ ],
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "DropdownView",
+ "description": "File Type:",
+ "description_tooltip": null,
+ "disabled": false,
+ "index": 1,
+ "layout": "IPY_MODEL_acb195c4fc23429cbc02f74ffa96f54d",
+ "style": "IPY_MODEL_d490a1616e1549ea9fb34f35b485e49b"
+ }
+ },
+ "508b2c8e88a846978796cfdabb21cf30": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "VBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "VBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "VBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_7ccdf13407dc4dabba45164021d0073c",
+ "IPY_MODEL_4c8961f45fd14de492894bcd29e8c339",
+ "IPY_MODEL_53eb6abee62f49499cd0671ca53a5509",
+ "IPY_MODEL_5f97dc511d5a49cca83c8810e272abc2",
+ "IPY_MODEL_ffe7b64a9d714c04949a20d7cecd84c2",
+ "IPY_MODEL_09bbd562f7134a57a6d56a36d41daa23",
+ "IPY_MODEL_5b5d4db33b4d44088fff7f91127b23e2"
+ ],
+ "layout": "IPY_MODEL_152c1e9ef01b4c078e2ac9a2a450b89f"
+ }
+ },
+ "cd1eeaec65554cb6b410a3403683103e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ButtonModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ButtonModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "ButtonView",
+ "button_style": "primary",
+ "description": "Create Torrent",
+ "disabled": false,
+ "icon": "check",
+ "layout": "IPY_MODEL_b3f4caabb5a74121b528af18f57c204b",
+ "style": "IPY_MODEL_c959959fb86646e399ce8d2069851a9a",
+ "tooltip": "Click to create torrent"
+ }
+ },
+ "01357233b8444261999638b2821a143b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_33e3feb4cb02417d9e6f40cc1a3881c1",
+ "placeholder": "ā",
+ "style": "IPY_MODEL_b84518394a414c2787290e99fe12ca49",
+ "value": ""
+ }
+ },
+ "6d53d0d9969a4fc7b7711801fb71ba31": {
+ "model_module": "@jupyter-widgets/output",
+ "model_name": "OutputModel",
+ "model_module_version": "1.0.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/output",
+ "_model_module_version": "1.0.0",
+ "_model_name": "OutputModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/output",
+ "_view_module_version": "1.0.0",
+ "_view_name": "OutputView",
+ "layout": "IPY_MODEL_187003d9379448109a7127ea88f52ec5",
+ "msg_id": "",
"outputs": []
+ }
},
- {
- "cell_type": "code",
- "source": [
- "# Create and display the GUI\n",
- "creator = MediaTorrentCreator()\n",
- "creator.create_torrent_gui()"
+ "0c17e545386f44ef91972dab303008d8": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_992eabf3533c471b94b3446850f50b11",
+ "placeholder": "ā",
+ "style": "IPY_MODEL_f6297debc67c4b30b8ff914fb54a5fea",
+ "value": ""
+ }
+ },
+ "e09a60b3518145f4aa8048dcfbb9d10c": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": "1px solid #ddd",
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": "20px",
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "100%"
+ }
+ },
+ "4c1e8353eda0441b932db04f94badd3b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "00ac08cdb7b34dc3b28c815e30e8ec95": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "81bbc52a95084b018dfe70b008bbd7fd": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "80%"
+ }
+ },
+ "663594b1d1ea43f38a4311fd3a0c258d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "4a6dfa1b025e461a97f9dc1b9bcde46d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "3777b719f6a24a6389b65e4dea9300a7": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ToggleButtonsStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ToggleButtonsStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "button_width": "",
+ "description_width": "initial",
+ "font_weight": ""
+ }
+ },
+ "2e481d00aa3f427c8556703bbd070a1f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "80%"
+ }
+ },
+ "1c260f8f16514b8da6f65b6285ef50e9": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "acb195c4fc23429cbc02f74ffa96f54d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "d490a1616e1549ea9fb34f35b485e49b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "7ccdf13407dc4dabba45164021d0073c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_b885310e230a404387f33da122b3bc36",
+ "placeholder": "ā",
+ "style": "IPY_MODEL_09facb7c405349da9616901d286c600e",
+ "value": "Media Information
"
+ }
+ },
+ "4c8961f45fd14de492894bcd29e8c339": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DropdownModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DropdownModel",
+ "_options_labels": [
+ "movie",
+ "series"
],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/",
- "height": 471,
- "referenced_widgets": [
- "f94ff181953845f6bf1cd2790c06482c",
- "5a643171d7704209ae26d0cc72f35de6",
- "650a8365a5ea46f9897444f9d29976e3",
- "1dd1de36da7147ebaf57c3ac26e01e16",
- "ec31953cf7a54132b4b0a0e6492b0a9c",
- "3dd745bd3811406e989f7e864ca5a64b",
- "508b2c8e88a846978796cfdabb21cf30",
- "cd1eeaec65554cb6b410a3403683103e",
- "01357233b8444261999638b2821a143b",
- "6d53d0d9969a4fc7b7711801fb71ba31",
- "0c17e545386f44ef91972dab303008d8",
- "e09a60b3518145f4aa8048dcfbb9d10c",
- "4c1e8353eda0441b932db04f94badd3b",
- "00ac08cdb7b34dc3b28c815e30e8ec95",
- "81bbc52a95084b018dfe70b008bbd7fd",
- "663594b1d1ea43f38a4311fd3a0c258d",
- "4a6dfa1b025e461a97f9dc1b9bcde46d",
- "3777b719f6a24a6389b65e4dea9300a7",
- "2e481d00aa3f427c8556703bbd070a1f",
- "1c260f8f16514b8da6f65b6285ef50e9",
- "acb195c4fc23429cbc02f74ffa96f54d",
- "d490a1616e1549ea9fb34f35b485e49b",
- "7ccdf13407dc4dabba45164021d0073c",
- "4c8961f45fd14de492894bcd29e8c339",
- "53eb6abee62f49499cd0671ca53a5509",
- "5f97dc511d5a49cca83c8810e272abc2",
- "ffe7b64a9d714c04949a20d7cecd84c2",
- "09bbd562f7134a57a6d56a36d41daa23",
- "5b5d4db33b4d44088fff7f91127b23e2",
- "152c1e9ef01b4c078e2ac9a2a450b89f",
- "b3f4caabb5a74121b528af18f57c204b",
- "c959959fb86646e399ce8d2069851a9a",
- "33e3feb4cb02417d9e6f40cc1a3881c1",
- "b84518394a414c2787290e99fe12ca49",
- "992eabf3533c471b94b3446850f50b11",
- "f6297debc67c4b30b8ff914fb54a5fea",
- "b885310e230a404387f33da122b3bc36",
- "09facb7c405349da9616901d286c600e",
- "288fd7c5bfa4406cbf3f5fa21e0ce489",
- "73bf0b41de5d454aafb7f4c62121ca8e",
- "dde9cf0d1b124d908445d82a5d9dd162",
- "884b732934394ce5829497feef42fed7",
- "f76ba60796054bffa5968f21ab23d278",
- "aae933c5c49c490fad99255389921ad8",
- "34b47e7eb5154ce58c39f4bcc9a57b84",
- "bdb82d4baf364284935f0e4029ce11e3",
- "8baf8d27fb7d4c6894cdf7a6ed1b7a2b",
- "a3fd88efaac44ad484c2e1d692e21393",
- "3e4f975300d547bfb0d8bbe3bf704c5d",
- "cf65722c7f3347d6aa12db29f491fc15",
- "d3dfcdc9098a4213b26abdc6d5fcdb6b",
- "c006b6128f92459d9915dca83284af95",
- "3e651ee6da54499c96aa85995de2cc84",
- "1735e1b5bcee4ecc983a75152db6edd0",
- "7a89e13edc9944ca98cd0f432a59c919",
- "bfd2b708706746c0931171a9afbb45e2",
- "a8c3d93c1a7e4f09950fc85b916f1503",
- "ba7dda4bb6f5478d8d1bc8b4327edd1e",
- "b9eb9edf5d614135aa46ca31fb52ac42",
- "929bc0d405a541d589ec20c4517f0972",
- "1bce3a707ab64cb492a7d529e66b804c",
- "1337c90ee0f4498680abff41da6544c1",
- "7806daf8d7dc4bbfa96a53d352612d09",
- "3f07d3b11eb44c20be3fa01c97affb4e",
- "61642aa8974444e18ce25482ae9a0e5e",
- "c6e32f9c079e4ff59af071d4de1d309c",
- "76a6655a459f480a86abda8299000fb2",
- "c30d9fdff73745ab9d453ea2ccf5c857",
- "c638b489b6ee4cbcbd833d46f8af8401",
- "b1e663dd4a1a4668bcc1f083fecb6a40",
- "d2ed8e7b0c864caa84c87dd34783cfcd",
- "dc7355250fb3489197d9f210023061be",
- "a5459264ce2444758b770c5d2323250a",
- "cef3d4af029144ba94e009af4a675550",
- "8d87b2887db34c5cbe0122a1fcaf085f",
- "547474f223c94b888e8e30c666f6371c",
- "ed2a9f01369a4f55be2208e2d2a0f1a8",
- "7a6159e116fa43ebbe3c4cb1563ef875",
- "177c0115fffb4192bc547c595823db1a",
- "65092a26f43645279b4fd8fb6664e47c",
- "187003d9379448109a7127ea88f52ec5"
- ]
- },
- "id": "pTos-QBAYN7E",
- "outputId": "eac16872-98b6-4933-8fd9-bbfb04e9226b"
- },
- "execution_count": 4,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Created directory: ./media_storage/downloads\n",
- "Created directory: ./media_storage/torrents\n"
- ]
- },
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- ""
- ],
- "text/html": [
- "\n",
- " \n",
- " "
- ]
- },
- "metadata": {}
- },
- {
- "output_type": "display_data",
- "data": {
- "text/plain": [
- "VBox(children=(HTML(value='WebSeed Torrent Creator
'), Text(value='', description='URL:', layout=Layouā¦"
- ],
- "application/vnd.jupyter.widget-view+json": {
- "version_major": 2,
- "version_minor": 0,
- "model_id": "f94ff181953845f6bf1cd2790c06482c"
- }
- },
- "metadata": {}
- }
- ]
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "DropdownView",
+ "description": "Type:",
+ "description_tooltip": null,
+ "disabled": false,
+ "index": 0,
+ "layout": "IPY_MODEL_288fd7c5bfa4406cbf3f5fa21e0ce489",
+ "style": "IPY_MODEL_73bf0b41de5d454aafb7f4c62121ca8e"
+ }
+ },
+ "53eb6abee62f49499cd0671ca53a5509": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "TextModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "TextModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "TextView",
+ "continuous_update": true,
+ "description": "Title:",
+ "description_tooltip": null,
+ "disabled": false,
+ "layout": "IPY_MODEL_dde9cf0d1b124d908445d82a5d9dd162",
+ "placeholder": "Enter title",
+ "style": "IPY_MODEL_884b732934394ce5829497feef42fed7",
+ "value": ""
+ }
+ },
+ "5f97dc511d5a49cca83c8810e272abc2": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "TextModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "TextModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "TextView",
+ "continuous_update": true,
+ "description": "Year:",
+ "description_tooltip": null,
+ "disabled": false,
+ "layout": "IPY_MODEL_f76ba60796054bffa5968f21ab23d278",
+ "placeholder": "Optional: Year",
+ "style": "IPY_MODEL_aae933c5c49c490fad99255389921ad8",
+ "value": ""
+ }
+ },
+ "ffe7b64a9d714c04949a20d7cecd84c2": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "IntTextModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "IntTextModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "IntTextView",
+ "continuous_update": false,
+ "description": "Season:",
+ "description_tooltip": null,
+ "disabled": false,
+ "layout": "IPY_MODEL_34b47e7eb5154ce58c39f4bcc9a57b84",
+ "step": 1,
+ "style": "IPY_MODEL_bdb82d4baf364284935f0e4029ce11e3",
+ "value": 1
+ }
+ },
+ "09bbd562f7134a57a6d56a36d41daa23": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "IntTextModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "IntTextModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "IntTextView",
+ "continuous_update": false,
+ "description": "Episode:",
+ "description_tooltip": null,
+ "disabled": false,
+ "layout": "IPY_MODEL_8baf8d27fb7d4c6894cdf7a6ed1b7a2b",
+ "step": 1,
+ "style": "IPY_MODEL_a3fd88efaac44ad484c2e1d692e21393",
+ "value": 1
+ }
+ },
+ "5b5d4db33b4d44088fff7f91127b23e2": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "VBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "VBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "VBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_3e4f975300d547bfb0d8bbe3bf704c5d",
+ "IPY_MODEL_cf65722c7f3347d6aa12db29f491fc15",
+ "IPY_MODEL_d3dfcdc9098a4213b26abdc6d5fcdb6b",
+ "IPY_MODEL_c006b6128f92459d9915dca83284af95",
+ "IPY_MODEL_3e651ee6da54499c96aa85995de2cc84",
+ "IPY_MODEL_1735e1b5bcee4ecc983a75152db6edd0"
+ ],
+ "layout": "IPY_MODEL_7a89e13edc9944ca98cd0f432a59c919"
+ }
+ },
+ "152c1e9ef01b4c078e2ac9a2a450b89f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": "none",
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "b3f4caabb5a74121b528af18f57c204b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "20px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "c959959fb86646e399ce8d2069851a9a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "ButtonStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "ButtonStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "button_color": null,
+ "font_weight": ""
+ }
+ },
+ "33e3feb4cb02417d9e6f40cc1a3881c1": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": "none",
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "b84518394a414c2787290e99fe12ca49": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "992eabf3533c471b94b3446850f50b11": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": "none",
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "f6297debc67c4b30b8ff914fb54a5fea": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "b885310e230a404387f33da122b3bc36": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "09facb7c405349da9616901d286c600e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "288fd7c5bfa4406cbf3f5fa21e0ce489": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "73bf0b41de5d454aafb7f4c62121ca8e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "dde9cf0d1b124d908445d82a5d9dd162": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "80%"
+ }
+ },
+ "884b732934394ce5829497feef42fed7": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "f76ba60796054bffa5968f21ab23d278": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "aae933c5c49c490fad99255389921ad8": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "34b47e7eb5154ce58c39f4bcc9a57b84": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": "none",
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "150px"
+ }
+ },
+ "bdb82d4baf364284935f0e4029ce11e3": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "8baf8d27fb7d4c6894cdf7a6ed1b7a2b": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": "none",
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "150px"
+ }
+ },
+ "a3fd88efaac44ad484c2e1d692e21393": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "3e4f975300d547bfb0d8bbe3bf704c5d": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_bfd2b708706746c0931171a9afbb45e2",
+ "placeholder": "ā",
+ "style": "IPY_MODEL_a8c3d93c1a7e4f09950fc85b916f1503",
+ "value": "Quality Information
"
+ }
+ },
+ "cf65722c7f3347d6aa12db29f491fc15": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_ba7dda4bb6f5478d8d1bc8b4327edd1e",
+ "IPY_MODEL_b9eb9edf5d614135aa46ca31fb52ac42"
+ ],
+ "layout": "IPY_MODEL_929bc0d405a541d589ec20c4517f0972"
+ }
+ },
+ "d3dfcdc9098a4213b26abdc6d5fcdb6b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HBoxModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_1bce3a707ab64cb492a7d529e66b804c",
+ "IPY_MODEL_1337c90ee0f4498680abff41da6544c1",
+ "IPY_MODEL_7806daf8d7dc4bbfa96a53d352612d09"
+ ],
+ "layout": "IPY_MODEL_3f07d3b11eb44c20be3fa01c97affb4e"
+ }
+ },
+ "c006b6128f92459d9915dca83284af95": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_61642aa8974444e18ce25482ae9a0e5e",
+ "placeholder": "ā",
+ "style": "IPY_MODEL_c6e32f9c079e4ff59af071d4de1d309c",
+ "value": "Language Information
"
+ }
+ },
+ "3e651ee6da54499c96aa85995de2cc84": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "SelectMultipleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "SelectMultipleModel",
+ "_options_labels": [
+ "English",
+ "Spanish",
+ "French",
+ "German",
+ "Italian",
+ "Russian",
+ "Japanese",
+ "Korean",
+ "Chinese",
+ "Hindi",
+ "Tamil",
+ "Telugu",
+ "Malayalam",
+ "Kannada",
+ "Portuguese",
+ "Turkish",
+ "Arabic",
+ "Thai",
+ "Vietnamese",
+ "Indonesian"
+ ],
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "SelectMultipleView",
+ "description": "Languages:",
+ "description_tooltip": null,
+ "disabled": false,
+ "index": [],
+ "layout": "IPY_MODEL_76a6655a459f480a86abda8299000fb2",
+ "rows": 5,
+ "style": "IPY_MODEL_c30d9fdff73745ab9d453ea2ccf5c857"
+ }
+ },
+ "1735e1b5bcee4ecc983a75152db6edd0": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "HTMLModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_tooltip": null,
+ "layout": "IPY_MODEL_c638b489b6ee4cbcbd833d46f8af8401",
+ "placeholder": "ā",
+ "style": "IPY_MODEL_b1e663dd4a1a4668bcc1f083fecb6a40",
+ "value": "Hold Ctrl/Cmd to select multiple languages"
+ }
+ },
+ "7a89e13edc9944ca98cd0f432a59c919": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "bfd2b708706746c0931171a9afbb45e2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "a8c3d93c1a7e4f09950fc85b916f1503": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "ba7dda4bb6f5478d8d1bc8b4327edd1e": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DropdownModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DropdownModel",
+ "_options_labels": [
+ "",
+ "480p",
+ "576p",
+ "720p",
+ "1080p",
+ "1440p",
+ "2160p",
+ "4K"
+ ],
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "DropdownView",
+ "description": "Resolution:",
+ "description_tooltip": null,
+ "disabled": false,
+ "index": 0,
+ "layout": "IPY_MODEL_d2ed8e7b0c864caa84c87dd34783cfcd",
+ "style": "IPY_MODEL_dc7355250fb3489197d9f210023061be"
+ }
+ },
+ "b9eb9edf5d614135aa46ca31fb52ac42": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DropdownModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DropdownModel",
+ "_options_labels": [
+ "",
+ "BluRay",
+ "BluRay REMUX",
+ "BRRip",
+ "BDRip",
+ "WEB-DL",
+ "HDRip",
+ "DVDRip",
+ "HDTV",
+ "CAM",
+ "TeleSync",
+ "SCR"
+ ],
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "DropdownView",
+ "description": "Source:",
+ "description_tooltip": null,
+ "disabled": false,
+ "index": 0,
+ "layout": "IPY_MODEL_a5459264ce2444758b770c5d2323250a",
+ "style": "IPY_MODEL_cef3d4af029144ba94e009af4a675550"
+ }
+ },
+ "929bc0d405a541d589ec20c4517f0972": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1bce3a707ab64cb492a7d529e66b804c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DropdownModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DropdownModel",
+ "_options_labels": [
+ "",
+ "x264",
+ "x265",
+ "H.264",
+ "H.265",
+ "HEVC",
+ "AVC",
+ "MPEG-2",
+ "MPEG-4",
+ "VP9"
+ ],
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "DropdownView",
+ "description": "Video Codec:",
+ "description_tooltip": null,
+ "disabled": false,
+ "index": 0,
+ "layout": "IPY_MODEL_8d87b2887db34c5cbe0122a1fcaf085f",
+ "style": "IPY_MODEL_547474f223c94b888e8e30c666f6371c"
+ }
+ },
+ "1337c90ee0f4498680abff41da6544c1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DropdownModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DropdownModel",
+ "_options_labels": [
+ "",
+ "AAC",
+ "AC3",
+ "DTS",
+ "DTS-HD MA",
+ "TrueHD",
+ "Atmos",
+ "DD+"
+ ],
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "DropdownView",
+ "description": "Audio Codec:",
+ "description_tooltip": null,
+ "disabled": false,
+ "index": 0,
+ "layout": "IPY_MODEL_ed2a9f01369a4f55be2208e2d2a0f1a8",
+ "style": "IPY_MODEL_7a6159e116fa43ebbe3c4cb1563ef875"
+ }
+ },
+ "7806daf8d7dc4bbfa96a53d352612d09": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DropdownModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DropdownModel",
+ "_options_labels": [
+ "",
+ "2.0",
+ "5.1",
+ "7.1"
+ ],
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "1.5.0",
+ "_view_name": "DropdownView",
+ "description": "Audio Channels:",
+ "description_tooltip": null,
+ "disabled": false,
+ "index": 0,
+ "layout": "IPY_MODEL_177c0115fffb4192bc547c595823db1a",
+ "style": "IPY_MODEL_65092a26f43645279b4fd8fb6664e47c"
+ }
+ },
+ "3f07d3b11eb44c20be3fa01c97affb4e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "61642aa8974444e18ce25482ae9a0e5e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "c6e32f9c079e4ff59af071d4de1d309c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "76a6655a459f480a86abda8299000fb2": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": "150px",
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "300px"
+ }
+ },
+ "c30d9fdff73745ab9d453ea2ccf5c857": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "c638b489b6ee4cbcbd833d46f8af8401": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "0px 0px 10px 10px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "b1e663dd4a1a4668bcc1f083fecb6a40": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": ""
+ }
+ },
+ "d2ed8e7b0c864caa84c87dd34783cfcd": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "dc7355250fb3489197d9f210023061be": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "a5459264ce2444758b770c5d2323250a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "cef3d4af029144ba94e009af4a675550": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "8d87b2887db34c5cbe0122a1fcaf085f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "547474f223c94b888e8e30c666f6371c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "ed2a9f01369a4f55be2208e2d2a0f1a8": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "7a6159e116fa43ebbe3c4cb1563ef875": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "177c0115fffb4192bc547c595823db1a": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": "200px"
+ }
+ },
+ "65092a26f43645279b4fd8fb6664e47c": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_name": "DescriptionStyleModel",
+ "model_module_version": "1.5.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "1.5.0",
+ "_model_name": "DescriptionStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "StyleView",
+ "description_width": "initial"
+ }
+ },
+ "187003d9379448109a7127ea88f52ec5": {
+ "model_module": "@jupyter-widgets/base",
+ "model_name": "LayoutModel",
+ "model_module_version": "1.2.0",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "1.2.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "1.2.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border": "1px solid black",
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": "10px 0px",
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "overflow_x": null,
+ "overflow_y": null,
+ "padding": "10px",
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
}
- ]
-}
\ No newline at end of file
+ }
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "view-in-github",
+ "colab_type": "text"
+ },
+ "source": [
+ "
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# WebSeed Torrent Creator\n",
+ "**DISCLAIMER**: This notebook is provided for educational purposes only. It demonstrates the technical concepts of creating torrents with web seeds, proper media naming conventions, and metadata organization. Users are responsible for ensuring they comply with all applicable laws and have the necessary rights for any content they process.\n",
+ "\n",
+ "\n",
+ "## Using the Creator\n",
+ "1. Click on **Runtime** -> **Run all**\n",
+ "2. **Scroll to the bottom** of the notebook to find the input interface\n",
+ "\n",
+ "3. Choose your preferred naming method:\n",
+ " - **Direct Filename**: Enter complete name manually\n",
+ " - **Use Metadata**: Build name using structured fields\n",
+ "\n",
+ "4. Required Fields:\n",
+ " - URL: Source URL for the content\n",
+ " - Filename or Title (depending on mode)\n",
+ " - File Type (e.g., mkv, mp4)\n",
+ "\n",
+ "5. Optional Metadata Fields (if using metadata mode):\n",
+ " - Media Type (movie/series)\n",
+ " - Year\n",
+ " - Season/Episode (for series)\n",
+ " - Resolution (480p to 4K)\n",
+ " - Source (BluRay, WEB-DL, etc.)\n",
+ " - Video/Audio codecs\n",
+ " - Languages (multiple selectable)\n",
+ "\n",
+ "6. Click \"Create Torrent\" and wait for processing\n",
+ "7. Use the download button to get your torrent file\n",
+ "\n"
+ ],
+ "metadata": {
+ "id": "ZcHohv30cKGC"
+ }
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "2kvN6iGA7pG7",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "4e52df64-d877-43a2-e5ec-b917f7e02890"
+ },
+ "source": [
+ "!pip install ipywidgets requests\n",
+ "!apt-get -qq install aria2\n",
+ "!wget -qO torrenttools.AppImage https://github.com/fbdtemme/torrenttools/releases/download/v0.6.2/torrenttools-0.6.2-linux-x86_64.AppImage\n",
+ "!chmod +x torrenttools.AppImage\n",
+ "!./torrenttools.AppImage --appimage-extract > /dev/null"
+ ],
+ "outputs": [],
+ "execution_count": null
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import os\n",
+ "import subprocess\n",
+ "import base64\n",
+ "from typing import Dict, Optional, List\n",
+ "from urllib.parse import urlparse, unquote\n",
+ "import requests\n",
+ "import ipywidgets as widgets\n",
+ "from IPython.display import display, HTML, Javascript\n",
+ "\n",
+ "class MediaTorrentCreator:\n",
+ " # Constants for media information\n",
+ " RESOLUTIONS = ['480p', '576p', '720p', '1080p', '1440p', '2160p', '4K']\n",
+ " SOURCES = ['BluRay', 'BluRay REMUX', 'BRRip', 'BDRip', 'WEB-DL', 'HDRip', 'DVDRip', 'HDTV', 'CAM', 'TeleSync', 'SCR']\n",
+ " AUDIO_CODECS = ['AAC', 'AC3', 'DTS', 'DTS-HD MA', 'TrueHD', 'Atmos', 'DD+']\n",
+ " VIDEO_CODECS = ['x264', 'x265', 'H.264', 'H.265', 'HEVC', 'AVC', 'MPEG-2', 'MPEG-4', 'VP9']\n",
+ " AUDIO_CHANNELS = ['2.0', '5.1', '7.1']\n",
+ " FILE_TYPES = ['mp4', 'mkv', 'avi', 'webm']\n",
+ " LANGUAGES = [\n",
+ " 'English', 'Spanish', 'French', 'German', 'Italian', 'Russian', 'Japanese',\n",
+ " 'Korean', 'Chinese', 'Hindi', 'Tamil', 'Telugu', 'Malayalam', 'Kannada',\n",
+ " 'Portuguese', 'Turkish', 'Arabic', 'Thai', 'Vietnamese', 'Indonesian'\n",
+ " ]\n",
+ " LANGUAGE_CODES = {\n",
+ " 'English': 'ENG', 'Spanish': 'SPA', 'French': 'FRE', 'German': 'GER',\n",
+ " 'Italian': 'ITA', 'Russian': 'RUS', 'Japanese': 'JPN', 'Korean': 'KOR',\n",
+ " 'Chinese': 'CHI', 'Hindi': 'HIN', 'Tamil': 'TAM', 'Telugu': 'TEL',\n",
+ " 'Malayalam': 'MAL', 'Kannada': 'KAN', 'Portuguese': 'POR', 'Turkish': 'TUR',\n",
+ " 'Arabic': 'ARA', 'Thai': 'THA', 'Vietnamese': 'VIE', 'Indonesian': 'IND'\n",
+ " }\n",
+ "\n",
+ " def __init__(self, base_path: str = \"./media_storage\"):\n",
+ " \"\"\"Initialize the creator with local storage paths\"\"\"\n",
+ " self.base_path = base_path\n",
+ " self.create_storage_directories()\n",
+ "\n",
+ " def create_storage_directories(self):\n",
+ " \"\"\"Create necessary directories for local storage\"\"\"\n",
+ " directories = ['downloads', 'torrents']\n",
+ " for dir_name in directories:\n",
+ " path = os.path.join(self.base_path, dir_name)\n",
+ " os.makedirs(path, exist_ok=True)\n",
+ " print(f\"Created directory: {path}\")\n",
+ "\n",
+ " def _fetch_best_trackers(self) -> List[str]:\n",
+ " \"\"\"Fetch best trackers from ngosang's trackerslist\"\"\"\n",
+ " try:\n",
+ " response = requests.get(\n",
+ " \"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt\",\n",
+ " timeout=30\n",
+ " )\n",
+ " if response.status_code == 200:\n",
+ " return [tracker.strip() for tracker in response.text.split(\"\\n\") if tracker.strip()]\n",
+ " return []\n",
+ " except Exception as e:\n",
+ " print(f\"Warning: Failed to fetch trackers: {str(e)}\")\n",
+ " return []\n",
+ "\n",
+ " def _get_filename_from_url(self, url: str, custom_filename: Optional[str] = None) -> str:\n",
+ " \"\"\"Get filename from URL or custom input\"\"\"\n",
+ " if custom_filename:\n",
+ " return custom_filename\n",
+ "\n",
+ " try:\n",
+ " # Try to get filename from Content-Disposition header\n",
+ " response = requests.head(url, allow_redirects=True, timeout=10)\n",
+ " if 'Content-Disposition' in response.headers:\n",
+ " content_disp = response.headers['Content-Disposition']\n",
+ " if 'filename=' in content_disp:\n",
+ " return content_disp.split('filename=')[-1].strip('\"\\'')\n",
+ "\n",
+ " # Try to get filename from URL path\n",
+ " parsed_url = urlparse(url)\n",
+ " url_path = unquote(parsed_url.path)\n",
+ " filename = os.path.basename(url_path)\n",
+ "\n",
+ " if filename and '.' in filename:\n",
+ " return filename\n",
+ "\n",
+ " # Use Content-Type for extension if available\n",
+ " if 'Content-Type' in response.headers:\n",
+ " content_type = response.headers['Content-Type'].split(';')[0]\n",
+ " ext_map = {\n",
+ " 'video/mp4': '.mp4',\n",
+ " 'video/x-matroska': '.mkv',\n",
+ " 'video/webm': '.webm',\n",
+ " 'application/x-bittorrent': '.torrent'\n",
+ " }\n",
+ " ext = ext_map.get(content_type, '')\n",
+ " if ext:\n",
+ " return f'download{ext}'\n",
+ "\n",
+ " except Exception as e:\n",
+ " print(f\"Warning: Error in filename detection: {str(e)}\")\n",
+ "\n",
+ " return 'download'\n",
+ "\n",
+ " def _generate_torrent_name(self, media_info: Dict) -> str:\n",
+ " \"\"\"Generate structured torrent name from media information\"\"\"\n",
+ " parts = []\n",
+ "\n",
+ " # Add title and year\n",
+ " title = media_info.get('title', '').replace(' ', '.')\n",
+ " year = media_info.get('year', '')\n",
+ " parts.append(f\"{title}{f'.{year}' if year else ''}\")\n",
+ "\n",
+ " # Add season and episode for series\n",
+ " if media_info.get('media_type') == 'series':\n",
+ " season = media_info.get('season')\n",
+ " episode = media_info.get('episode')\n",
+ " if season and episode:\n",
+ " parts.append(f\"S{int(season):02d}E{int(episode):02d}\")\n",
+ "\n",
+ " # Add quality info\n",
+ " resolution = media_info.get('resolution', '')\n",
+ " source = media_info.get('source', '')\n",
+ " if resolution and source:\n",
+ " parts.append(f\"{resolution}.{source}\")\n",
+ " elif resolution:\n",
+ " parts.append(resolution)\n",
+ " elif source:\n",
+ " parts.append(source)\n",
+ "\n",
+ " # Add language info\n",
+ " languages = media_info.get('languages', [])\n",
+ " if languages:\n",
+ " # Convert full language names to codes and join them\n",
+ " language_codes = [self.LANGUAGE_CODES.get(lang, lang) for lang in languages]\n",
+ " parts.append('-'.join(language_codes))\n",
+ "\n",
+ " # Add codec info\n",
+ " video_codec = media_info.get('video_codec', '')\n",
+ " if video_codec:\n",
+ " parts.append(video_codec)\n",
+ "\n",
+ " # Add audio info\n",
+ " audio_codec = media_info.get('audio_codec', '')\n",
+ " audio_channels = media_info.get('audio_channels', '')\n",
+ " if audio_codec and audio_channels:\n",
+ " parts.append(f\"{audio_codec}.{audio_channels}\")\n",
+ " elif audio_codec:\n",
+ " parts.append(audio_codec)\n",
+ "\n",
+ " return '.'.join(parts)\n",
+ "\n",
+ " def create_torrent(\n",
+ " self,\n",
+ " source_url: str,\n",
+ " media_info: Dict,\n",
+ " custom_filename: Optional[str] = None,\n",
+ " cleanup: bool = False\n",
+ " ) -> Dict:\n",
+ " \"\"\"Create a torrent with web seeding for content\"\"\"\n",
+ " try:\n",
+ " download_dir = os.path.join(self.base_path, \"downloads\")\n",
+ " trackers = self._fetch_best_trackers()\n",
+ "\n",
+ " # Get appropriate filename for download\n",
+ " download_filename = self._get_filename_from_url(source_url, custom_filename)\n",
+ " safe_download_filename = \"\".join(c for c in download_filename if c.isalnum() or c in \"._- \").strip()\n",
+ " local_file_path = os.path.join(download_dir, safe_download_filename)\n",
+ "\n",
+ " # Generate torrent name\n",
+ " torrent_name = self._generate_torrent_name(media_info)\n",
+ "\n",
+ " # Download with aria2c\n",
+ " print(f\"Downloading using aria2c to: {safe_download_filename}\")\n",
+ " aria2c_command = [\n",
+ " \"aria2c\",\n",
+ " \"-x\", \"16\",\n",
+ " \"-s\", \"16\",\n",
+ " \"-k\", \"1M\",\n",
+ " \"-o\", safe_download_filename,\n",
+ " \"-d\", download_dir,\n",
+ " source_url\n",
+ " ]\n",
+ "\n",
+ " process = subprocess.run(\n",
+ " aria2c_command,\n",
+ " stdout=subprocess.PIPE,\n",
+ " stderr=subprocess.PIPE,\n",
+ " text=True\n",
+ " )\n",
+ "\n",
+ " if process.returncode != 0:\n",
+ " raise Exception(f\"Failed to download file: {process.stderr}\")\n",
+ "\n",
+ " if not os.path.exists(local_file_path):\n",
+ " raise Exception(f\"Downloaded file not found: {local_file_path}\")\n",
+ "\n",
+ " # Create torrent file\n",
+ " output_path = os.path.join(self.base_path, \"torrents\", f\"{torrent_name}.torrent\")\n",
+ "\n",
+ " create_command = [\n",
+ " \"./squashfs-root/AppRun\",\n",
+ " \"create\",\n",
+ " local_file_path,\n",
+ " \"-v\", \"1\",\n",
+ " \"-n\", torrent_name,\n",
+ " \"-o\", output_path,\n",
+ " \"-w\", source_url,\n",
+ " \"--announce\", *trackers,\n",
+ " \"-l\", \"auto\",\n",
+ " \"-s\", \"WebSeedTorrentCreator\",\n",
+ " \"--created-by\", \"WebSeedTorrentCreator\"\n",
+ " ]\n",
+ "\n",
+ " process = subprocess.run(\n",
+ " create_command,\n",
+ " stdout=subprocess.PIPE,\n",
+ " stderr=subprocess.PIPE,\n",
+ " text=True\n",
+ " )\n",
+ "\n",
+ " if process.returncode != 0:\n",
+ " raise Exception(f\"Failed to create torrent: {process.stderr}\")\n",
+ "\n",
+ " if cleanup:\n",
+ " try:\n",
+ " os.remove(local_file_path)\n",
+ " print(f\"Cleaned up downloaded file: {local_file_path}\")\n",
+ " except Exception as e:\n",
+ " print(f\"Warning: Failed to clean up file: {str(e)}\")\n",
+ "\n",
+ " return {\n",
+ " \"torrent_path\": output_path,\n",
+ " \"web_seed_url\": source_url,\n",
+ " \"local_file\": local_file_path,\n",
+ " \"filename\": safe_download_filename,\n",
+ " \"torrent_name\": torrent_name,\n",
+ " \"trackers\": trackers,\n",
+ " \"command_output\": process.stdout\n",
+ " }\n",
+ "\n",
+ " except Exception as e:\n",
+ " raise Exception(f\"Error in create_torrent: {str(e)}\")\n",
+ "\n",
+ " def create_torrent_gui(self):\n",
+ " \"\"\"Create GUI with structured naming options\"\"\"\n",
+ " # Create all input widgets\n",
+ " url_input = widgets.Text(\n",
+ " value='',\n",
+ " placeholder='Enter URL',\n",
+ " description='URL:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='80%', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " naming_mode = widgets.ToggleButtons(\n",
+ " options=['Direct Filename', 'Use Metadata'],\n",
+ " description='Naming Mode:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " direct_filename = widgets.Text(\n",
+ " value='',\n",
+ " placeholder='Enter complete filename (e.g., Movie.Name.2024.1080p.BluRay.x264)',\n",
+ " description='Filename:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='80%', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " file_type = widgets.Dropdown(\n",
+ " options=self.FILE_TYPES,\n",
+ " value='mkv',\n",
+ " description='File Type:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " media_type = widgets.Dropdown(\n",
+ " options=['movie', 'series'],\n",
+ " value='movie',\n",
+ " description='Type:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " title_input = widgets.Text(\n",
+ " value='',\n",
+ " placeholder='Enter title',\n",
+ " description='Title:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='80%', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " year_input = widgets.Text(\n",
+ " value='',\n",
+ " placeholder='Optional: Year',\n",
+ " description='Year:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " season_input = widgets.IntText(\n",
+ " value=1,\n",
+ " description='Season:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='150px', margin='10px 0px', display='none')\n",
+ " )\n",
+ "\n",
+ " episode_input = widgets.IntText(\n",
+ " value=1,\n",
+ " description='Episode:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='150px', margin='10px 0px', display='none')\n",
+ " )\n",
+ "\n",
+ " resolution_input = widgets.Dropdown(\n",
+ " options=[''] + self.RESOLUTIONS,\n",
+ " value='',\n",
+ " description='Resolution:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " source_input = widgets.Dropdown(\n",
+ " options=[''] + self.SOURCES,\n",
+ " value='',\n",
+ " description='Source:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " video_codec_input = widgets.Dropdown(\n",
+ " options=[''] + self.VIDEO_CODECS,\n",
+ " value='',\n",
+ " description='Video Codec:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " audio_codec_input = widgets.Dropdown(\n",
+ " options=[''] + self.AUDIO_CODECS,\n",
+ " value='',\n",
+ " description='Audio Codec:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " audio_channels_input = widgets.Dropdown(\n",
+ " options=[''] + self.AUDIO_CHANNELS,\n",
+ " value='',\n",
+ " description='Audio Channels:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='200px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " languages_select = widgets.SelectMultiple(\n",
+ " options=self.LANGUAGES,\n",
+ " value=[],\n",
+ " description='Languages:',\n",
+ " style={'description_width': 'initial'},\n",
+ " layout=widgets.Layout(width='300px', height='150px', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " language_description = widgets.HTML(\n",
+ " value='Hold Ctrl/Cmd to select multiple languages',\n",
+ " layout=widgets.Layout(margin='0px 0px 10px 10px')\n",
+ " )\n",
+ "\n",
+ " create_button = widgets.Button(\n",
+ " description='Create Torrent',\n",
+ " button_style='primary',\n",
+ " tooltip='Click to create torrent',\n",
+ " icon='check',\n",
+ " layout=widgets.Layout(width='200px', margin='20px 0px')\n",
+ " )\n",
+ "\n",
+ " output_area = widgets.Output(\n",
+ " layout={'border': '1px solid black', 'margin': '10px 0px', 'padding': '10px'}\n",
+ " )\n",
+ "\n",
+ " download_area = widgets.HTML(\n",
+ " value='',\n",
+ " layout=widgets.Layout(display='none', margin='10px 0px')\n",
+ " )\n",
+ "\n",
+ " loading_indicator = widgets.HTML(\n",
+ " value='',\n",
+ " layout=widgets.Layout(display='none')\n",
+ " )\n",
+ "\n",
+ " # Add loading spinner CSS\n",
+ " display(HTML(\"\"\"\n",
+ " \n",
+ " \"\"\"))\n",
+ "\n",
+ " def on_naming_mode_change(change):\n",
+ " if change['new'] == 'Direct Filename':\n",
+ " metadata_section.layout.display = 'none'\n",
+ " direct_filename.layout.display = 'block'\n",
+ " else:\n",
+ " metadata_section.layout.display = 'block'\n",
+ " direct_filename.layout.display = 'none'\n",
+ "\n",
+ " def on_media_type_change(change):\n",
+ " if change['new'] == 'series':\n",
+ " season_input.layout.display = 'block'\n",
+ " episode_input.layout.display = 'block'\n",
+ " else:\n",
+ " season_input.layout.display = 'none'\n",
+ " episode_input.layout.display = 'none'\n",
+ "\n",
+ " def create_download_button(torrent_path: str, filename: str):\n",
+ " \"\"\"Create a download button for the torrent file\"\"\"\n",
+ " try:\n",
+ " with open(torrent_path, 'rb') as f:\n",
+ " torrent_data = f.read()\n",
+ " b64_data = base64.b64encode(torrent_data).decode('utf-8')\n",
+ "\n",
+ " download_html = f\"\"\"\n",
+ " \n",
+ " š„ Download Torrent File\n",
+ " \n",
+ " \"\"\"\n",
+ " download_area.value = download_html\n",
+ " download_area.layout.display = 'block'\n",
+ " except Exception as e:\n",
+ " print(f\"Error creating download button: {str(e)}\")\n",
+ "\n",
+ " def on_create_button_click(b):\n",
+ " # Disable button and show loading\n",
+ " create_button.disabled = True\n",
+ " loading_indicator.layout.display = 'block'\n",
+ "\n",
+ " with output_area:\n",
+ " output_area.clear_output()\n",
+ " print(\"Starting torrent creation process...\")\n",
+ " try:\n",
+ " # Determine torrent name based on mode\n",
+ " if naming_mode.value == 'Direct Filename':\n",
+ " media_info = {\n",
+ " 'title': direct_filename.value\n",
+ " }\n",
+ " torrent_name = f\"{direct_filename.value}.{file_type.value}\"\n",
+ " else:\n",
+ " media_info = {\n",
+ " 'media_type': media_type.value,\n",
+ " 'title': title_input.value,\n",
+ " 'year': year_input.value,\n",
+ " 'resolution': resolution_input.value,\n",
+ " 'source': source_input.value,\n",
+ " 'video_codec': video_codec_input.value,\n",
+ " 'audio_codec': audio_codec_input.value,\n",
+ " 'audio_channels': audio_channels_input.value,\n",
+ " 'languages': list(languages_select.value)\n",
+ " }\n",
+ "\n",
+ " if media_type.value == 'series':\n",
+ " media_info.update({\n",
+ " 'season': season_input.value,\n",
+ " 'episode': episode_input.value\n",
+ " })\n",
+ "\n",
+ " torrent_name = self._generate_torrent_name(media_info)\n",
+ " torrent_name = f\"{torrent_name}.{file_type.value}\"\n",
+ "\n",
+ " result = self.create_torrent(\n",
+ " source_url=url_input.value,\n",
+ " media_info={'title': torrent_name}, # Pass the complete name\n",
+ " custom_filename=f\"{torrent_name}\"\n",
+ " )\n",
+ "\n",
+ " print(\"\\nā
Torrent created successfully!\")\n",
+ " print(f\"š Torrent path: {result['torrent_path']}\")\n",
+ " print(f\"š·ļø Torrent name: {result['torrent_name']}\")\n",
+ " print(f\"š Download filename: {result['filename']}\")\n",
+ " print(f\"š Web seed URL: {result['web_seed_url']}\")\n",
+ "\n",
+ " # Create download button\n",
+ " create_download_button(result['torrent_path'], os.path.basename(result['torrent_path']))\n",
+ "\n",
+ " except Exception as e:\n",
+ " print(f\"ā Error creating torrent: {str(e)}\")\n",
+ " print(\"\\nPlease check:\")\n",
+ " print(\"1. Is the URL valid and accessible?\")\n",
+ " print(\"2. Have you filled in all required fields?\")\n",
+ " print(\"3. Do you have write permissions in the output directory?\")\n",
+ "\n",
+ " finally:\n",
+ " # Re-enable button and hide loading\n",
+ " create_button.disabled = False\n",
+ " loading_indicator.layout.display = 'none'\n",
+ "\n",
+ " # Connect event handlers\n",
+ " naming_mode.observe(on_naming_mode_change, names='value')\n",
+ " media_type.observe(on_media_type_change, names='value')\n",
+ " create_button.on_click(on_create_button_click)\n",
+ "\n",
+ " # Create layout sections\n",
+ " quality_info = widgets.VBox([\n",
+ " widgets.HTML(\"Quality Information
\"),\n",
+ " widgets.HBox([resolution_input, source_input]),\n",
+ " widgets.HBox([video_codec_input, audio_codec_input, audio_channels_input]),\n",
+ " widgets.HTML(\"Language Information
\"),\n",
+ " languages_select,\n",
+ " language_description\n",
+ " ])\n",
+ "\n",
+ " # Metadata section contains all the structured input fields\n",
+ " metadata_section = widgets.VBox([\n",
+ " widgets.HTML(\"Media Information
\"),\n",
+ " media_type,\n",
+ " title_input,\n",
+ " year_input,\n",
+ " season_input,\n",
+ " episode_input,\n",
+ " quality_info\n",
+ " ])\n",
+ "\n",
+ " # Initial layout setup\n",
+ " metadata_section.layout.display = 'none' # Start with direct filename mode\n",
+ "\n",
+ " # Main container\n",
+ " container = widgets.VBox([\n",
+ " widgets.HTML(\"WebSeed Torrent Creator
\"),\n",
+ " url_input,\n",
+ " naming_mode,\n",
+ " direct_filename,\n",
+ " file_type,\n",
+ " metadata_section,\n",
+ " create_button,\n",
+ " loading_indicator,\n",
+ " output_area,\n",
+ " download_area\n",
+ " ], layout=widgets.Layout(\n",
+ " width='100%',\n",
+ " padding='20px',\n",
+ " border='1px solid #ddd',\n",
+ " border_radius='5px'\n",
+ " ))\n",
+ "\n",
+ " display(container)"
+ ],
+ "metadata": {
+ "id": "l9rgfQ7-BITK"
+ },
+ "outputs": [],
+ "execution_count": null
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "# Create and display the GUI\n",
+ "creator = MediaTorrentCreator()\n",
+ "creator.create_torrent_gui()"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 471,
+ "referenced_widgets": [
+ "f94ff181953845f6bf1cd2790c06482c",
+ "5a643171d7704209ae26d0cc72f35de6",
+ "650a8365a5ea46f9897444f9d29976e3",
+ "1dd1de36da7147ebaf57c3ac26e01e16",
+ "ec31953cf7a54132b4b0a0e6492b0a9c",
+ "3dd745bd3811406e989f7e864ca5a64b",
+ "508b2c8e88a846978796cfdabb21cf30",
+ "cd1eeaec65554cb6b410a3403683103e",
+ "01357233b8444261999638b2821a143b",
+ "6d53d0d9969a4fc7b7711801fb71ba31",
+ "0c17e545386f44ef91972dab303008d8",
+ "e09a60b3518145f4aa8048dcfbb9d10c",
+ "4c1e8353eda0441b932db04f94badd3b",
+ "00ac08cdb7b34dc3b28c815e30e8ec95",
+ "81bbc52a95084b018dfe70b008bbd7fd",
+ "663594b1d1ea43f38a4311fd3a0c258d",
+ "4a6dfa1b025e461a97f9dc1b9bcde46d",
+ "3777b719f6a24a6389b65e4dea9300a7",
+ "2e481d00aa3f427c8556703bbd070a1f",
+ "1c260f8f16514b8da6f65b6285ef50e9",
+ "acb195c4fc23429cbc02f74ffa96f54d",
+ "d490a1616e1549ea9fb34f35b485e49b",
+ "7ccdf13407dc4dabba45164021d0073c",
+ "4c8961f45fd14de492894bcd29e8c339",
+ "53eb6abee62f49499cd0671ca53a5509",
+ "5f97dc511d5a49cca83c8810e272abc2",
+ "ffe7b64a9d714c04949a20d7cecd84c2",
+ "09bbd562f7134a57a6d56a36d41daa23",
+ "5b5d4db33b4d44088fff7f91127b23e2",
+ "152c1e9ef01b4c078e2ac9a2a450b89f",
+ "b3f4caabb5a74121b528af18f57c204b",
+ "c959959fb86646e399ce8d2069851a9a",
+ "33e3feb4cb02417d9e6f40cc1a3881c1",
+ "b84518394a414c2787290e99fe12ca49",
+ "992eabf3533c471b94b3446850f50b11",
+ "f6297debc67c4b30b8ff914fb54a5fea",
+ "b885310e230a404387f33da122b3bc36",
+ "09facb7c405349da9616901d286c600e",
+ "288fd7c5bfa4406cbf3f5fa21e0ce489",
+ "73bf0b41de5d454aafb7f4c62121ca8e",
+ "dde9cf0d1b124d908445d82a5d9dd162",
+ "884b732934394ce5829497feef42fed7",
+ "f76ba60796054bffa5968f21ab23d278",
+ "aae933c5c49c490fad99255389921ad8",
+ "34b47e7eb5154ce58c39f4bcc9a57b84",
+ "bdb82d4baf364284935f0e4029ce11e3",
+ "8baf8d27fb7d4c6894cdf7a6ed1b7a2b",
+ "a3fd88efaac44ad484c2e1d692e21393",
+ "3e4f975300d547bfb0d8bbe3bf704c5d",
+ "cf65722c7f3347d6aa12db29f491fc15",
+ "d3dfcdc9098a4213b26abdc6d5fcdb6b",
+ "c006b6128f92459d9915dca83284af95",
+ "3e651ee6da54499c96aa85995de2cc84",
+ "1735e1b5bcee4ecc983a75152db6edd0",
+ "7a89e13edc9944ca98cd0f432a59c919",
+ "bfd2b708706746c0931171a9afbb45e2",
+ "a8c3d93c1a7e4f09950fc85b916f1503",
+ "ba7dda4bb6f5478d8d1bc8b4327edd1e",
+ "b9eb9edf5d614135aa46ca31fb52ac42",
+ "929bc0d405a541d589ec20c4517f0972",
+ "1bce3a707ab64cb492a7d529e66b804c",
+ "1337c90ee0f4498680abff41da6544c1",
+ "7806daf8d7dc4bbfa96a53d352612d09",
+ "3f07d3b11eb44c20be3fa01c97affb4e",
+ "61642aa8974444e18ce25482ae9a0e5e",
+ "c6e32f9c079e4ff59af071d4de1d309c",
+ "76a6655a459f480a86abda8299000fb2",
+ "c30d9fdff73745ab9d453ea2ccf5c857",
+ "c638b489b6ee4cbcbd833d46f8af8401",
+ "b1e663dd4a1a4668bcc1f083fecb6a40",
+ "d2ed8e7b0c864caa84c87dd34783cfcd",
+ "dc7355250fb3489197d9f210023061be",
+ "a5459264ce2444758b770c5d2323250a",
+ "cef3d4af029144ba94e009af4a675550",
+ "8d87b2887db34c5cbe0122a1fcaf085f",
+ "547474f223c94b888e8e30c666f6371c",
+ "ed2a9f01369a4f55be2208e2d2a0f1a8",
+ "7a6159e116fa43ebbe3c4cb1563ef875",
+ "177c0115fffb4192bc547c595823db1a",
+ "65092a26f43645279b4fd8fb6664e47c",
+ "187003d9379448109a7127ea88f52ec5"
+ ]
+ },
+ "id": "pTos-QBAYN7E",
+ "outputId": "eac16872-98b6-4933-8fd9-bbfb04e9226b"
+ },
+ "outputs": [],
+ "execution_count": null
+ }
+ ]
+}