freetube-import


Namefreetube-import JSON
Version 0.36.2 PyPI version JSON
download
home_pageNone
SummaryConverts text and youtube .csv files into FreeTube playlists
upload_time2025-10-07 18:42:31
maintainerNone
docs_urlNone
authorNoSpiner
requires_python>=3.8
licenseNone
keywords freetube youtube tube playlist import cli console video videos
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![PyPI](https://img.shields.io/pypi/v/freetube-import?label=pypi%20package)![PyPI - Downloads](https://img.shields.io/pypi/dm/freetube-import)



# Freetube-import
Creates [FreeTube](https://freetubeapp.io/) .db playlist files from a list of youtube video urls separated by a newline (.txt) or from .csv files exported from 'Google takeout'.

Run the scrip with a path to a valid .txt file of youtube urls, or youtube's .csv playlist file. Then import the resulting .db file into FreeTube.



Install via pip:

      pip install freetube-import

https://pypi.org/project/freetube-import/

Basic usage:

      freetube-import <file>... <file2> <file3>

Help message:

      usage: freetube_import.py [-h] [-a] [-b] [-e] [-s] [filepath ...]

      Import youtube playlists

      positional arguments:
        filepath              path to a valid .txt or .csv playlist file or files

      optional arguments:
        -h, --help            show this help message and exit
        -a, --list-all        Takes all .txt and csv files as input from the current working directory.
        -b, --list-broken-videos
                        Lists videos that were added but have possibly broken metadata (for debugging).
        -e, --log-errors      Also lists the videos that failed the metadata fetch
        -s, --stdin           Takes stdin as input and outputs dirextly to stdout
        -n NAME, --name NAME  sets a name for playlist, otherwise uses input filename

While buggy and experimental `stdin` mode can used in scripts and automation. Not for average users.

       cat test.txt | freetube-import -s > std_test.db

It might be usefull to set a name that shows up in FreeTube. Otherwise in stdin mode a placeholder name is generated.

       cat test.txt | freetube-import -s -n playlist-name > std_test.db

pro tip: Try appending the ouput to FreeTube's own playlist.db file. So playlists get automatically added. (at your own risk, backup your files beforehand, close freetube to avoid file corruption)

      cat test.txt | freetube-import -s -n playlist-name >> your/path/FreeTube/playlists.db


Works without YouTube api through a custom version of [YouTube-search library](https://github.com/joetats/youtube_search/). Also works atleast on piped links, probably also on lists of Invidious links and other links that follow the standard youtube url format. VPN/proxy isn't strictly nessesary by my experience. I have run 1,5k videos videos through this in one sitting and gotten no ip blocks.

###  Dependencies 

       pip install requests
https://pypi.org/project/requests/

      pip install tqdm
https://pypi.org/project/tqdm/

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "freetube-import",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "freetube, youtube, tube, playlist, import, cli, console, video, videos",
    "author": "NoSpiner",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/d1/ca/b610d5caef2d5ec4d6258226f6459b474063456406e099cc12ac71eaf819/freetube_import-0.36.2.tar.gz",
    "platform": null,
    "description": "![PyPI](https://img.shields.io/pypi/v/freetube-import?label=pypi%20package)![PyPI - Downloads](https://img.shields.io/pypi/dm/freetube-import)\n\n\n\n# Freetube-import\nCreates [FreeTube](https://freetubeapp.io/) .db playlist files from a list of youtube video urls separated by a newline (.txt) or from .csv files exported from 'Google takeout'.\n\nRun the scrip with a path to a valid .txt file of youtube urls, or youtube's .csv playlist file. Then import the resulting .db file into FreeTube.\n\n\n\nInstall via pip:\n\n      pip install freetube-import\n\nhttps://pypi.org/project/freetube-import/\n\nBasic usage:\n\n      freetube-import <file>... <file2> <file3>\n\nHelp message:\n\n      usage: freetube_import.py [-h] [-a] [-b] [-e] [-s] [filepath ...]\n\n      Import youtube playlists\n\n      positional arguments:\n        filepath              path to a valid .txt or .csv playlist file or files\n\n      optional arguments:\n        -h, --help            show this help message and exit\n        -a, --list-all        Takes all .txt and csv files as input from the current working directory.\n        -b, --list-broken-videos\n                        Lists videos that were added but have possibly broken metadata (for debugging).\n        -e, --log-errors      Also lists the videos that failed the metadata fetch\n        -s, --stdin           Takes stdin as input and outputs dirextly to stdout\n        -n NAME, --name NAME  sets a name for playlist, otherwise uses input filename\n\nWhile buggy and experimental `stdin` mode can used in scripts and automation. Not for average users.\n\n       cat test.txt | freetube-import -s > std_test.db\n\nIt might be usefull to set a name that shows up in FreeTube. Otherwise in stdin mode a placeholder name is generated.\n\n       cat test.txt | freetube-import -s -n playlist-name > std_test.db\n\npro tip: Try appending the ouput to FreeTube's own playlist.db file. So playlists get automatically added. (at your own risk, backup your files beforehand, close freetube to avoid file corruption)\n\n      cat test.txt | freetube-import -s -n playlist-name >> your/path/FreeTube/playlists.db\n\n\nWorks without YouTube api through a custom version of [YouTube-search library](https://github.com/joetats/youtube_search/). Also works atleast on piped links, probably also on lists of Invidious links and other links that follow the standard youtube url format. VPN/proxy isn't strictly nessesary by my experience. I have run 1,5k videos videos through this in one sitting and gotten no ip blocks.\n\n###  Dependencies \n\n       pip install requests\nhttps://pypi.org/project/requests/\n\n      pip install tqdm\nhttps://pypi.org/project/tqdm/\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Converts text and youtube .csv files into FreeTube playlists",
    "version": "0.36.2",
    "project_urls": {
        "Homepage": "https://github.com/NoSpiner/Freetube-import",
        "Issues": "https://github.com/NoSpiner/Freetube-import/issues"
    },
    "split_keywords": [
        "freetube",
        " youtube",
        " tube",
        " playlist",
        " import",
        " cli",
        " console",
        " video",
        " videos"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b8829272534d5c76c1530736228d0bcf68ebb310ac137dfebd40494baf304efe",
                "md5": "b1029e830c973fb49f71f57e6a277909",
                "sha256": "b6ad6f4aee3a0a9436425556a9947349c770652924739a975d2062bf3bc0894f"
            },
            "downloads": -1,
            "filename": "freetube_import-0.36.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b1029e830c973fb49f71f57e6a277909",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 9001,
            "upload_time": "2025-10-07T18:42:30",
            "upload_time_iso_8601": "2025-10-07T18:42:30.687966Z",
            "url": "https://files.pythonhosted.org/packages/b8/82/9272534d5c76c1530736228d0bcf68ebb310ac137dfebd40494baf304efe/freetube_import-0.36.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d1cab610d5caef2d5ec4d6258226f6459b474063456406e099cc12ac71eaf819",
                "md5": "32743b44f6ad9edb8086331cfec4820c",
                "sha256": "f38d8e86c0dc22c4c425097ca87eab2b1ff96669723bd683e532b64f30604061"
            },
            "downloads": -1,
            "filename": "freetube_import-0.36.2.tar.gz",
            "has_sig": false,
            "md5_digest": "32743b44f6ad9edb8086331cfec4820c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 8179,
            "upload_time": "2025-10-07T18:42:31",
            "upload_time_iso_8601": "2025-10-07T18:42:31.672856Z",
            "url": "https://files.pythonhosted.org/packages/d1/ca/b610d5caef2d5ec4d6258226f6459b474063456406e099cc12ac71eaf819/freetube_import-0.36.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-07 18:42:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "NoSpiner",
    "github_project": "Freetube-import",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "freetube-import"
}
        
Elapsed time: 1.41039s