哪裡可以看代碼直播?

編程 代碼 學習


← 超過 256 個贊我就去 bilibili 直播填坑 be5invis/jk: Just consider if Markdown has macro?(一個宏語言的完整實現)。不開玩笑。

———————————————————————————————————————————

周五晚上 19:30 開始第一期 BelleveInvis的直播間


貼我之前寫過的一個回答

有個幾十年經驗的程序員前輩線上直播寫一個完整的遊戲,帶解說。

可以在Twitch看到直播,之前的視頻存檔在Youtube上

官網:Handmade Hero

What is Handmade Hero?

Handmade Hero is an ongoing project to create a complete, professional-quality game accompanied by videos that explain every single line of its source code.

======

收藏時順便點下贊...讓更多的人看到..


也想開一個技術、找工作、出國和留學、或者直接回答問題的直播頻道。不知道各位的興趣如何?

另外有具體的建議或者問題也可以評論。

--- 2017年更新 ---

[超哥說] 計算機娛樂直播預告 - 知乎專欄 已經開播

鬥魚地址:http://www.douyu.com/qinchao


辦公室


http://www.watchpeoplecode.com


http://Livecoding.tv

WP客戶端不能加圖,等會晚自習回來加。

資源不算太多,但有直播有錄像,分類也還算齊全,只是電子郵件通知有點煩人。

圖:

好像不需要梯子。


我都是在 livecode.tv, 已經直播過幾次了,一邊寫一邊和觀眾聊天,挺好玩的。https://www.livecoding.tv/metrowind/


什麼?GPL?開放源代碼?

我這個開源項目用的是live協議

什麼?這都不知道?

就是你引用或者修改我的項目代碼必須要直播≥→_→


明天B站會有直播ACM世界總決賽

去年是叉姐在鬥魚直播的。

以前有xiao dao直播tc,大牛們直播寫project code會在twitch


http://www.panda.tv/225170


在熊貓TV嘗試播了一段時間的代碼,說一下個人體驗。發現直播寫代碼的一些問題,如果有其他朋友想直播寫代碼的話最好提前考慮一下這些坑應該怎麼解決。

首先,受眾少,很多人是非軟體行業的,為了看熱鬧,覺得新鮮,但點進來看了幾分鐘就會覺得很枯燥,然後就走了,直播間里大部分的人都是這種類型。

其次,需要的基礎很難達到。直播寫代碼,哪怕是最基礎的基礎教程,都需要用戶看過你前面的直播,因為你肯定是一環扣一環的,比如你直播寫個遊戲,你前面的設計都沒說清楚,或者說清楚了但是新進來的用戶沒看過,那麼人家很難跟上你後面寫代碼的思路。所以這裡最好是錄像,最後放到優酷或者B站,而目前直播平台基本不支持看錄像的功能。看錄像也失去了看直播的趣味。

然後,缺乏趣味性。需要一直跟觀眾聊天,否則他們會覺得沒意思,不如去看球(捂臉)。但是一直跟觀眾聊天又無法集中精神,這個需要很強大的能力才能平衡。

最後,還是挺有意思的。直播的時候會遇到懂的或者不懂的,甚至水平比你還高的,有時候會問一些問題,說一下終於看到有直播寫代碼的,基本上都是表示支持,有時候會送一些禮物。

等我沒這麼忙,然後有好的項目,會繼續直播的~

這裡吐槽一下,直播平台真是對直播寫代碼不友好,要求必須有分類,但是根本沒有任何跟代碼有關的分類,超管發現你的直播內容與該分類不符會進來提示,不換分類會封號。我暫時停止直播寫代碼99%的原因就是這個!!!

---------------------------------20160524------------------------------------------

感謝評論區提醒,去直播平台看了一下,多了一個科技前沿分類,應該就是它沒錯了


最近剛發覺的東西

http://livecoding.tv


Twitch: Twitch

據說國內可能會比較卡


我們大一的時候C語言老師做過一個系列的 Coding C in Action。

還有就是前面說過的 Livecoding.tv


我擦,這會不會是個商機~


http://live.bilibili.com/live/81101.html

直播擼碼,最近一直在弄編譯原理和Java WebSocket工程。興許晚上就開播了呢。


將我們團隊的直播開發文檔貼出來,各位大神多多指教

要獲取直播的sdk包、api介面、demo源碼,請私聊我

視頻雲Sever Http API介面文檔

API調用說明

本文檔中,所有調用視頻雲服務端介面的請求都需要按此規則校驗。

API token校驗

以下參數需要放在Http Request Header中

參數類型必須說明AppKeyString是開發者平台分配的appkeyNonceString是隨機數(隨機數,最大長度128個字元)CurTimeString是當前UTC時間戳,從1970年1月1日0點0分0秒開始到現在的秒數CheckSumString是伺服器認證需要,SHA1(AppSecret+Nonce+CurTime),16進位字元小寫

重要提示: 本文檔中提供的所有介面均面向開發者伺服器端調用,用於計算CheckSum的secretkey開發者應妥善保管,可在應用的伺服器端存儲和使用,但不應存儲或傳遞到客戶端,也不應在網頁等前端代碼中嵌入。

計算CheckSum的java代碼舉例如下:

複製import java.security.MessageDigest;

public class CheckSumBuilder {
public static String getCheckSum(String appSecret, String nonce, String curTime) {
return encode("sha1", appSecret + nonce + curTime);
}
private static String encode(String algorithm, String value) {
if (value == null) {
return null;
}
try {
MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
messageDigest.update(value.getBytes());
return getFormattedText(messageDigest.digest());
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private static String getFormattedText(byte[] bytes) {
int len = bytes.length;
StringBuilder buf = new StringBuilder(len * 2);
for (int j = 0; j &< len; j++) { buf.append(HEX_DIGITS[(bytes[j] &>&> 4) 0x0f]);
buf.append(HEX_DIGITS[bytes[j] 0x0f]);
}
return buf.toString();
}
private static final char[] HEX_DIGITS = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
}

介面說明

所有介面都只支持POST請求 所有介面請求Content-Type類型為:application/json;charset=utf-8 所有介面返回類型為JSON,同時進行UTF-8編碼

頻道管理創建頻道介面說明

創建一個直播頻道

請求說明

複製POST https://vcloud.163.com/app/channel/create HTTP/1.1
Content-Type: application/json;charset=utf-8

參數說明參數類型說明必須nameString頻道名稱是typeint頻道類型(0:rtmp;1:hls;2:http)是curl請求示例

複製curl -X POST -H "Content-Type: application/json" -H "AppKey: XXXX" -H "Nonce: XXXX" -H "CurTime: xxxx" -H "CheckSum: XXXX" -d "{"name":"netease_vcloud", "type":0}" https://vcloud.163.com/app/channel/create

以下各介面的HttpClient調用方式參考此處

複製import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class Test {
public static void main(String[] args) throws Exception{
DefaultHttpClient httpClient = new DefaultHttpClient();
String url = "https://vcloud.163.com/app/channel/create";
HttpPost httpPost = new HttpPost(url);

String appKey = "94kid09c9ig9k1loimjg012345123456";
String appSecret = "123456789012";
String nonce = "1";
String curTime = String.valueOf((new Date()).getTime() / 1000L);
String checkSum = CheckSumBuilder.getCheckSum(appSecret, nonce ,curTime);//參考 計算CheckSum的java代碼

// 設置請求的header
httpPost.addHeader("AppKey", appKey);
httpPost.addHeader("Nonce", nonce);
httpPost.addHeader("CurTime", curTime);
httpPost.addHeader("CheckSum", checkSum);
httpPost.addHeader("Content-Type", "application/json;charset=utf-8");

// 設置請求的參數
StringEntity params = new StringEntity("{"name":"netease_vcloud", "type":0}");
httpPost.setEntity(params);

// 執行請求
HttpResponse response = httpClient.execute(httpPost);

// 列印執行結果
System.out.println(EntityUtils.toString(response.getEntity(), "utf-8"));
}
}

返回說明

http 響應:json

參數類型說明codeint錯誤碼cidString頻道ID,32位字元串ctimeLong創建頻道的時間戳pushUrlString推流地址httpPullUrlStringhttp拉流地址hlsPullUrlStringhls拉流地址rtmpPullUrlStringrtmp拉流地址msgString錯誤信息

複製"Content-Type": "application/json; charset=utf-8"
{
"code" : XXX,
"msg" : XXX,
"ret" : {
"cid" : XXX,
"ctime" : XXX,
"pushurl" : XXX,
"httpPullUrl" : XXX,
"hlsPullUrl" : XXX,
"rtmpPullUrl" : XXX
}
}

code參考code狀態表

修改頻道介面說明

修改直播頻道信息

請求說明

複製POST https://vcloud.163.com/app/channel/update HTTP/1.1
Content-Type: application/json;charset=utf-8

參數說明參數類型說明必須nameString頻道名是cidString頻道ID,32位字元串是typeint頻道類型 ( 0 : rtmp, 1 : hls, 2 : http)是curl請求示例

複製curl -X POST -H "Content-Type: application/json" -H "AppKey: XXXX" -H "Nonce: XXXX" -H "CurTime: xxxx" -H "CheckSum: XXXX" -d "{"name":"netease_vcloud", "cid":"XXXXX", "type":0}" https://vcloud.163.com/app/channel/update

返回說明

http 響應:json

參數類型說明codeint錯誤碼msgString錯誤信息

複製"Content-Type": "application/json; charset=utf-8"
{
"code" : XXX,
"msg" : XXX,
"ret" : {

}
}

code參考code狀態表

刪除頻道介面說明

刪除一個直播頻道

請求說明

複製POST https://vcloud.163.com/app/channel/delete HTTP/1.1
Content-Type: application/json;charset=utf-8

參數說明參數類型說明必須cidString頻道ID,32位字元串是curl請求示例

複製curl -X POST -H "Content-Type: application/json" -H "AppKey: XXXX" -H "Nonce: XXXX" -H "CurTime: xxxx" -H "CheckSum: XXXX" -d "{"cid":"XXXXX"}" https://vcloud.163.com/app/channel/delete

返回說明

http 響應:json

參數類型說明codeint錯誤碼msgString錯誤信息

複製"Content-Type": "application/json; charset=utf-8"
{
"code" : XXX,
"msg" : XXX,
"ret" : {

}
}

code參考code狀態表

獲取頻道狀態介面說明

獲取一個直播頻道的信息

請求說明

複製POST https://vcloud.163.com/app/channelstats HTTP/1.1
Content-Type: application/json;charset=utf-8

參數說明參數類型說明必須cidString頻道ID,32位字元串是curl請求示例

複製curl -X POST -H "Content-Type: application/json" -H "AppKey: XXXX" -H "Nonce: XXXX" -H "CurTime: xxxx" -H "CheckSum: XXXX" -d "{"cid":"XXXXX", "name":"netease_vcloud"}" https://vcloud.163.com/app/channelstats

返回說明

http 響應:json

參數類型說明ctimeLong創建頻道的時間戳cidString頻道ID,32位字元串nameString頻道名稱statusString頻道狀態typeint頻道狀態(0:rtmp; 1:hls; 2:http )msgString錯誤信息

複製"Content-Type": "application/json; charset=utf-8"
{
"code" : XXX,
"msg" : XXX,
"ret" : {
"ctime" : XXX,
"cid" : XXX,
"name" : XXX,
"type" : XXX,
"status" : XXX
}
}

code參考code狀態表

獲取頻道列表介面說明

獲取用戶直播頻道列表

請求說明

複製POST https://vcloud.163.com/app/channellist HTTP/1.1
Content-Type: application/json;charset=utf-8

參數說明參數類型說明必須recordsint單頁記錄數,默認值為10否pnumint要取第幾頁,默認值為1否ofieldString排序的域,支持的排序域為:ctime(默認)否sortint升序還是降序,1升序,0降序,默認為desc否curl請求示例

複製curl -X POST -H "Content-Type: application/json" -H "AppKey: XXXX" -H "Nonce: XXXX" -H "CurTime: xxxx" -H "CheckSum: XXXX" -d "{"records":XXX, "pnum":XXX, "ofield": "XXX", "sort": XXX}" https://vcloud.163.com/app/channellist

返回說明

http 響應:json

參數類型說明ctimeLong創建頻道的時間戳cidString頻道ID,32位字元串nameString頻道名稱statusint頻道狀態(0:正常;1:直播中;2:暫停)msgString錯誤信息

複製"Content-Type": "application/json; charset=utf-8"
{
"code" : XXX,
"msg" : XXX,
"ret" : {
"list : [
{
"ctime" : XXX,
"cid" : XXX,
"name" : XXX,
"status" : XXX
},

{
"ctime" : XXX,
"cid" : XXX,
"name" : XXX,
"status" : XXX
},

...

]
}
}

code參考code狀態表

重新獲取推流地址介面說明

用戶創建頻道時獲取的推流地址失效時,重新獲取推流地址。

請求說明

複製POST https://vcloud.163.com/app/address HTTP/1.1
Content-Type: application/json;charset=utf-8

參數說明參數類型說明必須cidString頻道ID是curl請求示例

複製curl -X POST -H "Content-Type: application/json" -H "AppKey: XXXX" -H "Nonce: XXXX" -H "CurTime: xxxx" -H "CheckSum: XXXX" -d "{"cid": "xxxx"}" https://vcloud.163.com/app/address

返回說明

http 響應:json

參數類型說明codeint錯誤碼pushUrlString推流地址httpPullUrlStringhttp拉流地址hlsPullUrlStringhls拉流地址rtmpPullUrlStringrtmp拉流地址msgString錯誤信息

複製"Content-Type": "application/json; charset=utf-8"
{
"code" : XXX,
"msg" : XXX,
"ret" : {
"pushUrl" : XXX,
"httpPullUrl" : XXX,
"hlsPullUrl" : XXX,
"rtmpPullUrl" : XXX
}
}

code參考code狀態表

code狀態表code詳細描述200操作成功402驗證碼錯誤403請求信息不完整404用戶已存在405激活碼不存在406用戶未激活407用戶不存在408密碼錯誤409認證失敗410用戶已激活411郵箱不存在501內部錯誤602頻道查詢失敗603頻道刪除失敗604頻道添加失敗605頻道更新失敗607AppKey不存在609頻道ID為空610頻道名稱為空611頻道名稱已經存在612頻道類型錯誤613CheckSum為空614AppKey為空615CurTime為空617cid或uid錯誤618uid不存在或該uid下無頻道


感覺挺有趣啊。。等這段時間忙過了我直播去!


先放個鏈接,工作日每晚十點開播,再早都是送的,周末看起床時間。https://www.douyu.com/clantu

努力做一個比遊戲直播更有趣的代碼直播。


國內的遊戲直播平台如鬥魚、戰旗、虎牙等等,可以進入主頁搜索關鍵字「寫代碼」、「代碼」,不過試了下發現基本上沒有活躍的主播,我現在是工作日中午,估計不大會有人直播寫代碼,可以周末或者晚上再找找看。

國外的話可以試下這個WatchPeopleCode,現在打開可以看到有四個直播,如果這些人是美國的,那現在也差不多是半夜,活躍的程序員也不多了啊。。不過這個網站應該是要翻牆的,且網速估計不會太好,我用的這個小水管看得比較吃力。

另外,要說的是,這個問題的標籤是「編程 代碼 學習」,如果是以學習為目的的話,看直播寫代碼我覺得效果肯定不會太好,因為正在直播的人肯定不會像專業的講師一樣給你講解知識點啊,api功能啊,以及為啥要這麼寫啊等等。如果有比較好的編程基礎基礎,對直播的領域有一定的認識,再去看這個人寫代碼,自己才能對寫代碼的人的能力有一個認識,對自己和對方的能力高低有一個評判。就像大家看遊戲直播一樣,有時會覺得這個人操作好牛逼,有時會覺得這個人好水,主要還是需要自己對這個領域有一定的了解才行。

如果是抱著學習的心態的話,還是建議直接看文檔、教學視頻比較好。


推薦閱讀:

什麼時候讓你體會到大學專業沒白學?
上大學時一時衝動觸犯了法律,在監獄住了10年出來,以後想奉公守法、從頭再來,大家有什麼好的建議嗎?
喝茶不多,識茶甚少。想更加系統的學習茶葉相關的知識,請問各位茶人茶友有什麼好的書籍可以推薦的嗎?
一位優秀的編劇需要具備怎樣的能力,如何在日常生活中培養這種能力?
如何每天利用15分鐘學好英語?

TAG:學習 | 編程 | 代碼 |