在我啟動的項目“ reddit到文本到語音” YouTube視頻中的YouTube趨勢之後,該項目可以創建一個程序,該程序可以自動化接收,生成和上傳這些視頻的過程,並儘可能少地干預。完成該項目花了4個月的時間,由3個單獨的程序組成,這些程序同時工作以完成此任務。
這個想法是最大程度地減少手動干預,並自動化所有瑣碎的任務。但是,該過程不能100%自動化。例如,在其中帶有鏈接的評論無法保留,因為由於TTS,視頻的質量將由視頻的質量組成。此外,儘管評論可能會有大量選票,但對於YouTube視頻而言,它可能會令人反感,因此不安全,因此必須刪除。縮略圖雖然部分生成,但必須進行編輯,以創建任何類型的吸引觀眾以單擊您的視頻。視頻的標題也必須是點擊誘餌,才能受到任何關注。我試圖使用客戶端程序簡化手動過程,大約需要30分鐘才能創建6個視頻(可以在24小時內使用YouTube數據API上傳的最大視頻)。
我生成的一些視頻:
https://www.youtube.com/watch?v=xxdkmhyxcsq
https://www.youtube.com/watch?v=aw0yjixxnxi&t=35s
完成視頻的過程涉及:
示例reddit文本到語音頻道:
https://www.youtube.com/watch?v=izsxhx64pgq https://www.youtube.com/watch?v=vzdtuap2ztw
將它們放入YouTube機器人視頻生成器目錄中的名為“資產”的文件夾中。
此外,我通過項目部分改變了許多設計方面的想法,因此某些文件被奇怪地命名,並且在這里和那裡都有未使用的代碼。我將不再更新代碼,但是請隨時使用。
檢查依賴項.txt
要輕鬆安裝大多數Python依賴性,請在克隆後運行以下命令(有些可能需要手動安裝):
pip install -r requirements.txt
Reddit文本到語音視頻的最新趨勢(通常)由一個非常簡單的公式組成:
隨機選擇一首歌。我已經下載了約40首歌曲Kevin Macleod Royality免費歌曲,以隨機選擇。
https://www.youtube.com/watch?v=ccpyyrds-qo&list = plbzgr7h3fyus3lvitxtfaigv601ukuhjx
視頻中使用的所有資產都可以在此處下載:
http://www.mediafire.com/file/hpu1j1k1k1avwp9dj/youtube_bot_assets.zip/file
它們必須放在視頻生成器程序中的名為“資產”的文件夾中。
該項目由三個單獨的程序組成:
該程序包含用於連接到客戶端程序的(1)套接字服務器,以及用於連接到視頻生成器客戶端的(2)套接字服務器。此外,此程序還將每小時從Reddit獲取新腳本,還將更新尚未編輯的現有腳本。
(1)此套接字服務器將將RAW腳本從數據庫發送到手冊審核程序(請參見下文)。然後,它將接收這些審核的腳本,並使用最終腳本更新數據庫,其中包括縮略圖,描述和標題。服務器可以處理多個客戶端,因此多個人可以編輯這些腳本。
(2)視頻生成器服務器目前僅旨在處理一個視頻生成器客戶端。該服務器的原始計劃是處理多個視頻生成器客戶端分佈在多台計算機之間的。但是,我發現一台計算機足以滿足我的所有視頻生成需求,因此我決定將其硬編碼僅為一個客戶。該服務器的目的是將最終腳本從數據庫發送到視頻生成器客戶端。
該程序將從YouTube Bot Video Generator Server接收最終的視頻腳本,其中包括縮略圖,描述,標籤和標題。這些腳本將生成一個MP4文件中,然後在計劃發佈時間上傳到YouTube(當前在GMT下午6點,下午6點隨機隨機 - 推薦的時間上傳到YouTube)。收到腳本後,它將生成,然後該程序將等到它具有足夠的API信用來上傳,請檢查最後6個視頻何時上傳。
GMT上午8點重置API配額。我已經計算出,上傳每個視頻將花費1658個積分。您每天最多可以使用10 000個學分。這意味著從理論上講,您每天可以上傳6個視頻。但是,實際上,我能夠上傳5個視頻,有時第六個視頻會上傳,但是沒有足夠的配額可以上傳縮略圖,在這種情況下,這將需要手動干預以手動上傳縮略圖。這些視頻已上傳到我只能與Python 2.7合作的YouTube-Upload上傳。它使用subprocess.check_call調用,並根據需要指定Python版本和參數(下面的鏈接)。
一旦視頻成功上傳,其狀態就可以完成,並在上傳時間內完成,以便該程序可以在當天上載了多少視頻,以避免超過配額使用情況。
YouTube數據API信息https://developers.google.com/youtube/v3/getting-started youtube-upload(python 2.7)
迄今為止,該項目最具挑戰性的方面之一是將文本置於語音上正常工作。我想使用Daniel MLG軟掃描文本進行語音語音 - 在大多數文本中發現的語音reddit視頻。我認為這是該項目的重要組成部分,因為這種聲音非常可識別,並且(在我看來)是可用演講的最佳聲音文字之一。我使用balabolka的命令行版本生成.wav文件,然後在視頻生成程序中與不同的幀同步。
Balabolka http://www.cross-plus-a.com/balabolka.htm有關如何獲得Daniel MLG語音https://www.youtube.com/watch?v=yj3dhtnyoty
客戶端程序是類似火種的左右滑動過程,可以過濾視頻中不包含的註釋。它還允許用戶編寫標題並上傳視頻的縮略圖以及編輯描述和標籤,儘管標題,描述和標籤部分生成如下:標題:默認值是帖子標題說明:默認情況下是一個帶有其內部標題的生成模板,並且夫婦標籤上的所有基本標籤:我從流行的文本complion等counterred等等等等。這些可以編輯。縮略圖的模板也是部分生成的。有支票可以確保所有這些字段的字符數量不超過,例如標題必須低於100個字符
視頻的最終內容包括編輯腳本,縮略圖,標籤,描述和視頻設置(可以在編輯過程中更改視頻生成器模板的某些功能,例如背景顏色,文本大小,線條寬度等。我通常保留默認值,因此並沒有真正使用過它),然後將其發送到該服務器上的服務器,從而將其發送到該數據庫中。
mysql
腳本的存儲和它們相關信息是通過MySQL數據庫完成的。這是我第一次將MySQL數據庫用於一個項目,我在SQL上並不出色,我學會了讓事情變得有效的必要條件。我使用了三張表“用戶”,“視頻生物”和“腳本”
“用戶”表
最初,我計劃創建一個廣泛的登錄系統,用戶擁有編輯統計信息,查看誰在線等。現在唯一的用途是跟踪哪些用戶正在編輯哪些視頻以防止相同的視頻編輯和上傳兩次。密碼在客戶端加密MD5
“腳本”表
最重要的表包含所有腳本信息。狀態字段對於跟踪腳本應該在哪裡非常重要。
-raw:腳本可用於編輯
-editing:在此狀態下,該腳本正在編輯,無法由任何其他用戶編輯
-Complete:腳本已完成編輯,並將發送到視頻生成器客戶端
-successupload:該腳本已成功上傳到YouTube
“ Videogogenerators”表
像用戶一樣,我設計了客戶端以使用用戶名和密碼登錄。密碼在客戶端加密MD5
如果這些表尚不存在,這些表將在稱為“ YouTubebot”的數據庫中自動創建。
一次登錄後,將自動下載並自動保存您的Google API帳戶的憑據(您的瀏覽器窗口將打開,請求Google帳戶登錄):viveouploader.py-py-> get_credentials()